enigmare/v2-crawler
1904
1{"id":"doc-code_coverage_foundry_ethereum_development_frame-72d5c8c2","source":"documentation","title":"Code Coverage – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/guides/coverage","text":"GuidesOverviewDeploymentDeploying ContractsBrowser Wallet SigningDeterministic Deployments (CREATE2)Multi-Chain DeploymentsUpgrading ContractsTestingCode CoverageFork TestingFuzz Corpus WorkflowMutation TestingInvariant TestingSymbolic TestingBranching Tree TechniqueNetworks & PaymentsTempoMPP-backed RPC EndpointsDebugging & OptimizationDebugging TransactionsGas OptimizationStack Too DeepEnvironmentDocker & ContainersMigrationsFoundry v1.0\n\nExample:\n```text\n$ forge coverage\n```\n\nExample:\n```text\n[profile.default.coverage]\nreport = [\"summary\", \"lcov\"]\nlcov_version = \"1\"\nreport_file = \"lcov.info\"\nexclude_tests = true\nskip_files = [\"script/**\", \"src/mocks/**\"]\n```\n\nExample:\n```text\n$ forge coverage --report summary --report lcov\n```\n\nExample:\n```text\npragma solidity ^0.8.20;\n \ncontract Pricing {\n function fee(uint256 amount, bool preferred) external pure returns (uint256) {\n if (preferred) {\n return amount / 100;\n }\n if (amount >= 100 ether) {\n return amount * 2 / 100;\n }\n return amount * 3 / 100;\n }\n}\n```\n\nExample:\n```text\npragma solidity ^0.8.20;\n \nimport {Pricing} from \"../src/Pricing.sol\";\n \ncontract PricingTest {\n Pricing internal pricing;\n \n function setUp() public {\n pricing = new Pricing();\n }\n \n function test_preferredFee() public view {\n assert(pricing.fee(100 ether, true) == 1 ether);\n }\n \n function test_largeFee() public view {\n assert(pricing.fee(100 ether, false) == 2 ether);\n }\n \n function test_standardFee() public view {\n assert(pricing.fee(10 ether, false) == 0.3 ether);\n }\n}\n```\n\nExample:\n```text\n$ forge coverage --report lcov --report-file lcov.info\n```\n\nExample:\n```text\n$ forge coverage --report attribution \\\n --report-file coverage-attribution.json\n```\n\nExample:\n```text\n$ jq --arg source \"src/Pricing.sol\" \\\n '.tests[] | select(any(.covered[]; .source == $source)) | .test' \\\n coverage-attribution.json\n```\n\nExample:\n```text\n$ forge coverage --ir-minimum\n```\n\nExample:\n```text\n[profile.ci.fuzz]\nruns = 512\n \n[profile.ci.coverage]\nreport = [\"lcov\", \"attribution\"]\nexclude_tests = true\nskip_files = [\"script/**\", \"src/mocks/**\"]\n```\n\nExample:\n```text\n$ FOUNDRY_PROFILE=ci forge coverage\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.179Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":11,"totalLines":106,"estimatedTokens":569}}2{"id":"doc-config_overview_foundry_ethereum_development_fra-5977fdba","source":"documentation","title":"Config Overview – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/config/reference/overview","text":"ConfigurationOverviewProjectSolidity CompilerTestingTracingAdvanced TestingBuild, Runtime, and RPCTool-specific ConfigurationIn-line Test ConfigFormatterLinterDocumentation GeneratorEtherscan\n\nExample:\n```text\n[profile.local]\n```\n\nExample:\n```text\n$ FOUNDRY_CONFIG=./custom-config.toml forge build\n```\n\nExample:\n```text\n$ forge config\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.205Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":18,"estimatedTokens":88}}3{"id":"doc-stopbroadcast_foundry_ethereum_development_frame-92ab74c3","source":"documentation","title":"stopBroadcast – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/stop-broadcast","text":"Example:\n```text\nfunction stopBroadcast() external;\n```\n\nExample:\n```text\nfunction deploy() public {\n // Broadcast a single call\n vm.broadcast();\n Test test1 = new Test();\n \n // Broadcast all calls until stopBroadcast\n vm.startBroadcast();\n Test test2 = new Test();\n test2.initialize();\n vm.stopBroadcast();\n \n // This call is not broadcast\n test2.doSomething();\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.258Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":24,"estimatedTokens":104}}4{"id":"doc-parseuint_foundry_ethereum_development_framework-99a96f36","source":"documentation","title":"parseUint – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/parse-uint","text":"Example:\n```text\nfunction parseUint(string calldata stringifiedValue) external pure returns (uint256 parsedValue);\n```\n\nExample:\n```text\nstring memory uintAsString = \"12345\";\nuint256 result = vm.parseUint(uintAsString);\nassertEq(result, 12345);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.261Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":66}}5{"id":"doc-randomuint_foundry_ethereum_development_framewor-7046ef87","source":"documentation","title":"randomUint – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/random-uint","text":"Example:\n```text\nfunction randomUint() external view returns (uint256);\nfunction randomUint(uint256 min, uint256 max) external view returns (uint256);\nfunction randomUint(uint256 bits) external view returns (uint256);\n```\n\nExample:\n```text\nfunction testRandomUint() public view {\n uint256 any = vm.randomUint();\n \n uint256 inRange = vm.randomUint(1, 100);\n assertGe(inRange, 1);\n assertLe(inRange, 100);\n \n uint256 small = vm.randomUint(8);\n assertLe(small, type(uint8).max);\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.264Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":22,"estimatedTokens":129}}6{"id":"doc-expectemit_foundry_ethereum_development_framewor-8ecc1d38","source":"documentation","title":"expectEmit – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/expect-emit","text":"Example:\n```text\nfunction expectEmit() external;\nfunction expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData) external;\nfunction expectEmit(address emitter) external;\nfunction expectEmit(bool checkTopic1, bool checkTopic2, bool checkTopic3, bool checkData, address emitter) external;\n```\n\nExample:\n```text\nevent Transfer(address indexed from, address indexed to, uint256 amount);\n \nfunction testEmitsTransfer() public {\n vm.expectEmit();\n emit Transfer(address(this), address(1), 10);\n \n myToken.transfer(address(1), 10);\n}\n```\n\nExample:\n```text\nfunction testEmitsTransferFromToken() public {\n vm.expectEmit(address(myToken));\n emit Transfer(address(this), address(1), 10);\n \n myToken.transfer(address(1), 10);\n}\n```\n\nExample:\n```text\nfunction testEmitsBatchTransfer() public {\n for (uint256 i = 0; i < users.length; i++) {\n // Check topic0, topic1, topic2, but NOT topic3, and check data\n vm.expectEmit(true, true, false, true);\n emit Transfer(address(this), users[i], 10);\n }\n \n vm.expectEmit(false, false, false, true);\n emit BatchTransfer(users.length);\n \n myToken.batchTransfer(users, 10);\n}\n```\n\nExample:\n```text\nfunction testFails() public {\n vm.expectEmit(address(myToken));\n emit Transfer(address(this), address(1), 10);\n \n // This unrelated call causes the expectation to fail\n myToken.approve(address(this), 1e18);\n \n // This call has no effect - expectation already failed\n myToken.transfer(address(1), 10);\n}\n```\n\nExample:\n```text\ncontract Example {\n event Foo();\n \n function reverting() external pure { revert(); }\n function emitFoo() external { emit Foo(); }\n}\n \nfunction testLeaks() public {\n Example example = new Example();\n \n vm.expectEmit();\n emit Example.Foo();\n \n // This call is the one expectEmit applies to. It reverts before emitting Foo,\n // but the parent catches the revert, so the expectation remains active.\n (bool ok,) = address(example).call(abi.encodeCall(example.reverting, ()));\n require(!ok);\n \n // This call emits Foo and satisfies the still-active expectation, so the test passes.\n example.emitFoo();\n}\n```\n\nExample:\n```text\nfunction testCorrect() public {\n Example example = new Example();\n \n (bool ok,) = address(example).call(abi.encodeCall(example.reverting, ()));\n require(!ok);\n \n vm.expectEmit();\n emit Example.Foo();\n example.emitFoo();\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.269Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":100,"estimatedTokens":617}}7{"id":"doc-chainid_foundry_ethereum_development_framework-537175e9","source":"documentation","title":"chainId – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/chain-id","text":"Example:\n```text\nfunction chainId(uint256 chainId) external;\n```\n\nExample:\n```text\nfunction testChainId() public {\n vm.chainId(31337);\n assertEq(block.chainid, 31337);\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.271Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":14,"estimatedTokens":49}}8{"id":"doc-expectrevert_foundry_ethereum_development_framew-05a0d21b","source":"documentation","title":"expectRevert – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/expect-revert","text":"Example:\n```text\nfunction expectRevert() external;\nfunction expectRevert(bytes4 revertData) external;\nfunction expectRevert(bytes4 revertData, address reverter) external;\nfunction expectRevert(bytes4 revertData, uint64 count) external;\nfunction expectRevert(bytes4 revertData, address reverter, uint64 count) external;\nfunction expectRevert(bytes calldata revertData) external;\nfunction expectRevert(bytes calldata revertData, address reverter) external;\nfunction expectRevert(bytes calldata revertData, uint64 count) external;\nfunction expectRevert(bytes calldata revertData, address reverter, uint64 count) external;\nfunction expectRevert(address reverter) external;\nfunction expectRevert(uint64 count) external;\nfunction expectRevert(address reverter, uint64 count) external;\nfunction expectPartialRevert(bytes4 revertData) external;\nfunction expectPartialRevert(bytes4 revertData, address reverter) external;\n```\n\nExample:\n```text\nfunction testRevertWithMessage() public {\n vm.expectRevert(\"insufficient balance\");\n vault.withdraw(1000);\n}\n```\n\nExample:\n```text\nfunction testRevertWithCustomError() public {\n vm.expectRevert(InsufficientBalance.selector);\n vault.withdraw(1000);\n}\n```\n\nExample:\n```text\nfunction testRevertWithEncodedError() public {\n vm.expectRevert(\n abi.encodeWithSelector(InsufficientBalance.selector, 100, 1000)\n );\n vault.withdraw(1000);\n}\n```\n\nExample:\n```text\nfunction testPartialRevert() public {\n // Only checks the selector, ignores the uint256 argument\n vm.expectPartialRevert(WrongNumber.selector);\n counter.count();\n}\n```\n\nExample:\n```text\nfunction testRevertWithoutMessage() public {\n vm.expectRevert(bytes(\"\"));\n reverter.revertWithoutReason();\n}\n```\n\nExample:\n```text\nfunction testMultipleReverts() public {\n vm.expectRevert(\"INVALID_AMOUNT\");\n vault.send(user, 0);\n \n vm.expectRevert(\"INVALID_ADDRESS\");\n vault.send(address(0), 200);\n}\n```\n\nExample:\n```text\n/// forge-config: default.allow_internal_expect_revert = true\n```\n\nExample:\n```text\nfunction testLowLevelCallRevert() public {\n vm.expectRevert(bytes(\"error message\"));\n (bool revertsAsExpected, ) = address(myContract).call(myCalldata);\n assertTrue(revertsAsExpected, \"expectRevert: call did not revert\");\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.276Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":87,"estimatedTokens":572}}9{"id":"doc-https_bun_sh_docs_runtime_html_rewriter_md-a4fe59f3","source":"documentation","title":"https://bun.sh/docs/runtime/html-rewriter.md","url":"https://bun.sh/docs/runtime/html-rewriter.md","text":"', { , }); img.after(\"\n\n) console.log(el.canHaveContent); // Whether element can contain content (false for void elements like ) console.log(el.removed); // Whether element was removed // Attributes iteration for (const [name, value] of el.attributes) { console.log(name, value); } // End tag handling el.onEndTag(endTag => { endTag.before(\"Before end tag\"); endTag.after(\"After end tag\"); endTag.remove(); // Remove the end tag console.log(endTag.name); // Tag name in lowercase }); }, }); ``` ### Text Operations Text chunks represent portions of text content and report their position in the text node: ```ts rewriter.on(\"p\", { text(text) { // Content console.log(text.text); // Text content console.log(text.lastInTextNode); // Whether this is the last chunk console.log(text.removed); // Whether text was removed // Manipulation text.before(\"Before text\").after(\"After text\").replace(\"New text\").remove(); // HTML content insertion text ) ) ); }, }); ``` ### Comment Operations Comments support similar methods to text nodes: ```ts rewriter.on(\"*\", { comments(comment) { // Content console.log(comment.text); // Comment text comment.text = \"New comment text\"; // Set comment text console.log(comment.removed); // Whether comment was removed // Manipulation comment.before(\"Before comment\").after(\"After comment\").replace(\"New comment\").remove(); // HTML content insertion comment ) ) ); }, }); ``` ### Document Handlers The `onDocument(handlers)` method registers handlers for events at the document level rather than within specific elements: ```ts rewriter.onDocument({ // Handle doctype doctype(doctype) { console.log(doctype.name); // \"html\" console.log(doctype.publicId); // public identifier if present console.log(doctype.systemId); // system identifier if present }, // Handle text nodes text(text) { console.log(text.text); }, // Handle comments comments(comment) { console.log(comment.text); }, // Handle document end end(end) { end.append(\"\", { }); }, }); ``` ### Response Handling When transforming a Response, Preserves the status code, headers, and other response properties - Transforms the body while maintaining streaming capabilities - Handles content-encoding (like gzip) automatically - Marks the original response body as used after transformation - Clones headers to the new response ## Error Handling The overload you called decides which channel an error takes. Timing never does. `transform()` itself throws Invalid selector syntax in the `on()` method - Invalid input types (for example, passing a Symbol) - Body already used errors, and input bodies that have already failed or aborted - Anything a content handler raises on a `string` / `ArrayBuffer` input, since those have to produce their result before `transform()` returns. The same goes for a handler that needs the event loop (see [Element Handlers](#element-handlers)) ```ts try { const result = rewriter.transform(\"\"); } catch (error) { console.error(\"HTMLRewriter error:\", error); } ``` For a `Response` input, `transform()` returns before the rewrite finishes, so everything the rewrite discovers surfaces on the output body An error thrown by a content handler, or a rejected Promise one returned - Malformed or truncated input - Stream errors reading the input body - Memory allocation failures ```ts try { const output = await rewriter.transform(new Response(html)).text(); } catch (error) { console.error(\"the rewrite failed:\", error); } ``` If a handler creates a Promise but neither returns nor awaits it, a rejection from that Promise reaches neither channel. Like any detached rejection, it goes to the process-global `unhandledRejection` path. Earlier versions of Bun could surface it from `transform()` itself. --- ## See also You can also read the [Cloudflare documentation](https://developers.cloudflare.com/workers/runtime-apis/html-rewriter/), which this API is intended to be compatible with.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.552Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":979}}10{"id":"doc-https_bun_sh_docs_project_benchmarking_md-95ccb1e7","source":"documentation","title":"https://bun.sh/docs/project/benchmarking.md","url":"https://bun.sh/docs/project/benchmarking.md","text":"```ts expandable icon=\"/icons/typescript.svg\" { , , , , , , , // A count of every object type in the heap objectTypeCounts: { , , , 'RegExp String Iterator': 1, , , , , , , , , , , , , , , , , , 'Array Iterator': 1, , , , , , , , , 'String Iterator': 1, , , , , , , , , , 'Immutable Butterfly': 103, , 'Set Iterator': 1, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , 'Map Iterator': 1 }, protectedObjectTypeCounts: { , , , , , , , } } ```\n\n` | Set output filename | | `--cpu-prof-dir ` | Set output directory | ## Heap profiling Write a heap profile on exit to analyze memory usage and find memory leaks. ```sh terminal icon=\"terminal\" bun --heap-prof script.js ``` `--heap-prof` writes a full V8-format heap snapshot on exit, using Node.js's diagnostic filename format (`Heap......heapprofile`). The extension follows Node's `--heap-prof` filename contract. The content is the same as `v8.writeHeapSnapshot()` / `Bun.generateHeapSnapshot(\"v8\")`. Load it in Chrome DevTools via Memory tab → Load. Pick \"All Files\", or rename the file to `.heapsnapshot`. ### Markdown output Use `--heap-prof-md` to generate a markdown heap profile for CLI analysis: ```sh terminal icon=\"terminal\" bun --heap-prof-md script.js ``` If you specify both `--heap-prof` and `--heap-prof-md`, Bun uses the markdown format. ### Options ```sh terminal icon=\"terminal\" bun --heap-prof --heap-prof-name my-profile.heapprofile script.js bun --heap-prof --heap-prof-dir ./profiles script.js ``` | Flag | Description | | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | | `--heap-prof` | Write a `.heapprofile` file on exit | | `--heap-prof-md` | Generate a markdown heap profile on exit | | `--heap-prof-name ` | Set output filename | | `--heap-prof-dir ` | Set output directory | | `--heap-prof-interval ` | Accepted for Node.js compatibility (the snapshot is taken once at exit; JavaScriptCore has no allocation sampling to apply an interval to) |\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.554Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":520}}11{"id":"doc-my_app-f60e927a","source":"documentation","title":"My App","url":"https://bun.sh/docs/bundler/executables.md","text":"```bash terminal icon=\"terminal\" bun build ./cli.ts --compile --outfile mycli ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./cli.ts\"], compile: { outfile: \"./mycli\", }, }); ```\n\n```bash icon=\"terminal\" terminal bun build --compile --target=bun-linux-x64 ./index.ts --outfile myapp # To support CPUs from before 2013, use the baseline version (nehalem) bun build --compile --target=bun-linux-x64-baseline ./index.ts --outfile myapp # To explicitly only support CPUs from 2013 and later, use the modern version (haswell) # modern is faster, but baseline is more compatible. bun build --compile --target=bun-linux-x64-modern ./index.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" // Standard Linux x64 await Bun.build({ entrypoints: [\"./index.ts\"], compile: { target: \"bun-linux-x64\", outfile: \"./myapp\", }, }); // Baseline (pre-2013 CPUs) await Bun.build({ entrypoints: [\"./index.ts\"], compile: { target: \"bun-linux-x64-baseline\", outfile: \"./myapp\", }, }); // Modern (2013+ CPUs, faster) await Bun.build({ entrypoints: [\"./index.ts\"], compile: { target: \"bun-linux-x64-modern\", outfile: \"./myapp\", }, }); ```\n\n```bash icon=\"terminal\" terminal # default architecture is x64 if no architecture is specified. bun build --compile --target=bun-linux-arm64 ./index.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./index.ts\"], compile: { target: \"bun-linux-arm64\", outfile: \"./myapp\", }, }); ```\n\n```bash icon=\"terminal\" terminal bun build --compile --target=bun-windows-x64 ./path/to/my/app.ts --outfile myapp # To support CPUs from before 2013, use the baseline version (nehalem) bun build --compile --target=bun-windows-x64-baseline ./path/to/my/app.ts --outfile myapp # To explicitly only support CPUs from 2013 and later, use the modern version (haswell) bun build --compile --target=bun-windows-x64-modern ./path/to/my/app.ts --outfile myapp # no ); // Baseline or modern variants await Bun.build({ entrypoints: [\"./path/to/my/app.ts\"], compile: { target: \"bun-windows-x64-baseline\", outfile: \"./myapp\", }, }); ```\n\n```bash icon=\"terminal\" terminal bun build --compile --target=bun-windows-arm64 ./path/to/my/app.ts --outfile myapp # no ); ```\n\n```bash icon=\"terminal\" terminal bun build --compile --target=bun-darwin-arm64 ./path/to/my/app.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./path/to/my/app.ts\"], compile: { target: \"bun-darwin-arm64\", outfile: \"./myapp\", }, }); ```\n\n```bash icon=\"terminal\" terminal bun build --compile --target=bun-darwin-x64 ./path/to/my/app.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./path/to/my/app.ts\"], compile: { target: \"bun-darwin-x64\", outfile: \"./myapp\", }, }); ```\n\nOn x64 platforms, Bun uses SIMD optimizations that require a CPU with AVX2 instructions. The `-baseline` build of Bun is for older CPUs without them. The Bun installer detects which version to use, but when cross-compiling you might not know the target CPU. This mostly matters on Windows x64 and Linux x64, rarely on Darwin x64. If you or your users see `\"Illegal instruction\"` errors, you might need to use the baseline version.\n\n```bash icon=\"terminal\" terminal bun build --compile --define BUILD_VERSION='\"1.2.3\"' --define BUILD_TIME='\"2024-01-15T10:30:00Z\"' src/cli.ts --outfile mycli ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./src/cli.ts\"], compile: { outfile: \"./mycli\", }, define: { (\"1.2.3\"), (\"2024-01-15T10:30:00Z\"), }, }); ```\n\nFor more examples and patterns, see the [Build-time constants guide](/guides/runtime/build-time-constants).\n\n```bash icon=\"terminal\" terminal bun build --compile --minify --sourcemap ./path/to/my/app.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./path/to/my/app.ts\"], compile: { outfile: \"./myapp\", }, , sourcemap: \"linked\", }); ```\n\n```bash icon=\"terminal\" terminal bun build --compile --minify --sourcemap --bytecode ./path/to/my/app.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./path/to/my/app.ts\"], compile: { outfile: \"./myapp\", }, , sourcemap: \"linked\", , }); ```\n\nBytecode compilation supports both `cjs` and `esm` formats when used with `--compile`.\n\n```bash icon=\"terminal\" terminal bun build --compile --compile-exec-argv=\"--smol --user-agent=MyBot\" ./app.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./app.ts\"], compile: { execArgv: [\"--smol\", \"--user-agent=MyBot\"], outfile: \"./myapp\", }, }); ```\n\nIn a future version of Bun, `.env` and `bunfig.toml` may also be disabled by default for more deterministic behavior.\n\n```bash icon=\"terminal\" terminal # Disable ); ```\n\nNew in Bun v1.2.16\n\nNew in Bun v1.2.17\n\n```ts server.ts icon=\"/icons/typescript.svg\" import { serve } from \"bun\"; import index from \"./index.html\"; const server = serve({ routes: { \"/\": index, \"/api/hello\": { GET: () => Response.json({ message: \"Hello from API\" }) }, }, }); console.log(`Server running at http://localhost:${server.port}`); ``` ```html index.html icon=\"file-code\" My App Hello World ``` ```ts app.ts icon=\"file-code\" console.log(\"Hello from the client!\"); ``` ```css styles.css icon=\"file-code\" body { } ```\n\n```bash terminal icon=\"terminal\" bun build --compile ./server.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./server.ts\"], compile: { outfile: \"./myapp\", }, }); ```\n\n```bash terminal icon=\"terminal\" bun build --compile ./index.ts ./my-worker.ts --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./index.ts\", \"./my-worker.ts\"], compile: { outfile: \"./myapp\", }, }); ```\n\nThe database file must exist on disk when you run `bun build --compile`. The `embed: \"true\"` attribute tells the bundler to include the database contents inside the compiled executable. When running normally with `bun run`, Bun loads the database file from disk like a regular SQLite import.\n\n```bash terminal icon=\"terminal\" bun build --compile ./index.ts --asset ./public --outfile myapp ``` ```ts build.ts icon=\"/icons/typescript.svg\" await Bun.build({ entrypoints: [\"./index.ts\"], compile: { outfile: \"./myapp\", assets: [\"./public\"], }, }); ```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.571Z","totalSectionsIncluded":23,"totalCodeBlocksIncluded":0,"totalLines":47,"estimatedTokens":1604}}12{"id":"doc-error_handling_bun_docs-b7e08d0d","source":"documentation","title":"Error Handling | Bun Docs","url":"https://bun.sh/docs/runtime/http/error-handling","text":"Example:\n```text\nBun.serve({\n development: true, \n fetch(req) {\n throw new Error(\"woops!\");\n },\n});\n```\n\nExample:\n```text\nBun.serve({\n fetch(req) {\n throw new Error(\"woops!\");\n },\n error(error) {\n return new Response(`<pre>${error}\\n${error.stack}</pre>`, {\n headers: {\n \"Content-Type\": \"text/html\",\n },\n });\n },\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.577Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":27,"estimatedTokens":93}}13{"id":"doc-workers_bun_docs-6cd21aac","source":"documentation","title":"Workers | Bun Docs","url":"https://bun.sh/docs/runtime/workers","text":"Example:\n```text\nconst worker = new Worker(\"./worker.ts\");\n\nworker.postMessage(\"hello\");\nworker.onmessage = event => {\n console.log(event.data);\n};\n```\n\nExample:\n```text\n// prevents TS errors\ndeclare var self: Worker;\n\nself.onmessage = (event: MessageEvent) => {\n console.log(event.data);\n postMessage(\"world\");\n};\n```\n\nExample:\n```text\ndeclare var self: Worker;\n```\n\nExample:\n```text\nconst worker = new Worker(\"/not-found.js\");\nworker.addEventListener(\"error\", event => {\n console.log(event.message);\n});\n```\n\nExample:\n```text\nconst worker = new Worker(\"./worker.ts\", {\n preload: [\"./load-sentry.js\"],\n});\n```\n\nExample:\n```text\nconst worker = new Worker(\"./worker.ts\", {\n preload: \"./load-sentry.js\",\n});\n```\n\nExample:\n```text\nconst blob = new Blob([`self.onmessage = (event: MessageEvent) => postMessage(event.data)`], {\n type: \"application/typescript\",\n});\nconst url = URL.createObjectURL(blob);\nconst worker = new Worker(url);\n```\n\nExample:\n```text\nconst file = new File([`self.onmessage = (event: MessageEvent) => postMessage(event.data)`], \"worker.ts\");\nconst url = URL.createObjectURL(file);\nconst worker = new Worker(url);\n```\n\nExample:\n```text\nconst worker = new Worker(new URL(\"worker.ts\", import.meta.url).href);\n\nworker.addEventListener(\"open\", () => {\n console.log(\"worker is ready\");\n});\n```\n\nExample:\n```text\npostMessage({ prop: 11 chars string, ...9 more props }) - 648ns\npostMessage({ prop: 14 KB string, ...9 more props }) - 719ns\npostMessage({ prop: 3 MB string, ...9 more props }) - 1.26µs\n```\n\nExample:\n```text\npostMessage({ prop: 11 chars string, ...9 more props }) - 1.19µs\npostMessage({ prop: 14 KB string, ...9 more props }) - 2.69µs\npostMessage({ prop: 3 MB string, ...9 more props }) - 304µs\n```\n\nExample:\n```text\n// String fast path - optimized\npostMessage(\"Hello, worker!\");\n\n// Simple object fast path - optimized\npostMessage({\n message: \"Hello\",\n count: 42,\n enabled: true,\n data: null,\n});\n\n// Complex objects still work but use standard structured clone\npostMessage({\n nested: { deep: { object: true } },\n date: new Date(),\n buffer: new ArrayBuffer(8),\n});\n```\n\nExample:\n```text\n// On the worker thread, `postMessage` is automatically \"routed\" to the parent thread.\npostMessage({ hello: \"world\" });\n\n// On the main thread\nworker.postMessage({ hello: \"world\" });\n```\n\nExample:\n```text\n// Worker thread:\nself.addEventListener(\"message\", event => {\n console.log(event.data);\n});\n// or use the setter:\n// self.onmessage = fn\n\n// if on the main thread\nworker.addEventListener(\"message\", event => {\n console.log(event.data);\n});\n// or use the setter:\n// worker.onmessage = fn\n```\n\nExample:\n```text\nconst worker = new Worker(new URL(\"worker.ts\", import.meta.url).href);\n\n// ...some time later\nworker.terminate();\n```\n\nExample:\n```text\nconst worker = new Worker(new URL(\"worker.ts\", import.meta.url).href);\n\nworker.addEventListener(\"close\", event => {\n console.log(\"worker is being closed\");\n});\n```\n\nExample:\n```text\nconst worker = new Worker(new URL(\"worker.ts\", import.meta.url).href);\nworker.unref();\n```\n\nExample:\n```text\nconst worker = new Worker(new URL(\"worker.ts\", import.meta.url).href);\nworker.unref();\n// later...\nworker.ref();\n```\n\nExample:\n```text\nconst worker = new Worker(new URL(\"worker.ts\", import.meta.url).href, {\n ref: false,\n});\n```\n\nExample:\n```text\nconst worker = new Worker(\"./i-am-smol.ts\", {\n smol: true,\n});\n```\n\nExample:\n```text\nimport { setEnvironmentData, getEnvironmentData } from \"worker_threads\";\n\n// In main thread\nsetEnvironmentData(\"config\", { apiUrl: \"https://api.example.com\" });\n\n// In worker\nconst config = getEnvironmentData(\"config\");\nconsole.log(config); // => { apiUrl: \"https://api.example.com\" }\n```\n\nExample:\n```text\nprocess.on(\"worker\", worker => {\n console.log(\"New worker created:\", worker.threadId);\n});\n```\n\nExample:\n```text\nif (Bun.isMainThread) {\n console.log(\"I'm the main thread\");\n} else {\n console.log(\"I'm in a worker\");\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.597Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":23,"totalLines":208,"estimatedTokens":991}}14{"id":"doc-forge_soldeer_version_foundry_ethereum_developme-50936d98","source":"documentation","title":"forge soldeer version – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/forge/soldeer/version","text":"ReferenceforgeBuild CommandsDeploy CommandsGeneral CommandsProject CommandsTest CommandsUtility Commandsforge bindforge bind-jsonforge cacheforge cache lsforge compilerforge compiler resolveforge docforge eip712forge fmtforge fuzzforge fuzz cminforge fuzz replayforge fuzz runforge fuzz showforge fuzz tminforge lintforge scriptforge selectorsforge selectors cacheforge selectors collisionforge selectors findforge selectors listforge selectors uploadforge soldeerforge soldeer loginforge soldeer pushforge soldeer uninstallforge soldeer versionforge verify-bytecode\n\nExample:\n```text\n$ forge soldeer version --help\n```\n\nExample:\n```text\nUsage: forge soldeer version [OPTIONS]\n\nOptions:\n -h, --help\n Print help (see a summary with '-h')\n\n -j, --threads <THREADS>\n Number of threads to use. Specifying 0 defaults to the number of\n logical cores\n \n [alias: --jobs]\n\n --profile <PROFILE>\n The configuration profile to use\n\nDisplay options:\n --color <COLOR>\n The color of the log messages\n\n Possible values:\n - auto: Intelligently guess whether to use color output (default)\n - always: Force color output\n - never: Force disable color output\n\n --json\n Format log messages as JSON\n\n --md\n Format log messages as Markdown\n\n -q, --quiet\n Do not print log messages\n\n -v, --verbosity...\n Verbosity level of the log messages.\n \n Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv).\n \n Depending on the context the verbosity levels have different meanings.\n \n For example, the verbosity levels of the EVM are:\n - 2 (-vv): Print logs for all tests.\n - 3 (-vvv): Print execution traces for failing tests.\n - 4 (-vvvv): Print execution traces for all tests, and setup traces\n for failing tests.\n - 5 (-vvvvv): Print execution and setup traces for all tests,\n including storage changes and\n backtraces with line numbers.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.318Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":60,"estimatedTokens":530}}15{"id":"doc-serializejsontype_foundry_ethereum_development_f-88f1533c","source":"documentation","title":"serializeJsonType – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cheatcodes/serialize-json-type","text":"Example:\n```text\nfunction serializeJsonType(string calldata typeDescription, bytes calldata value) external pure returns (string memory json);\nfunction serializeJsonType(string calldata objectKey, string calldata valueKey, string calldata typeDescription, bytes calldata value) external returns (string memory json);\n```\n\nExample:\n```text\nstruct Item {\n uint256 amount;\n string name;\n}\n \nstring constant ITEM_SCHEMA = \"Item(uint256 amount,string name)\";\n \nfunction test_serializeJsonType() public view {\n Item memory item = Item({amount: 42, name: \"widget\"});\n \n string memory json = vm.serializeJsonType(ITEM_SCHEMA, abi.encode(item));\n assertEq(json, '{\"amount\":42,\"name\":\"widget\"}');\n}\n \nfunction test_roundtrip() public view {\n Item memory item = Item({amount: 1, name: \"gadget\"});\n \n string memory json = vm.serializeJsonType(ITEM_SCHEMA, abi.encode(item));\n Item memory decoded = abi.decode(vm.parseJsonType(json, ITEM_SCHEMA), (Item));\n \n assertEq(decoded.amount, item.amount);\n assertEq(decoded.name, item.name);\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.322Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":34,"estimatedTokens":268}}16{"id":"doc-https_bun_sh_docs_runtime_jsonl_md-f87c712a","source":"documentation","title":"https://bun.sh/docs/runtime/jsonl.md","url":"https://bun.sh/docs/runtime/jsonl.md","text":") { for await (const chunk of stream) { buffer += chunk; const result = Bun.JSONL.parseChunk(buffer); for (const value of result.values) { handleRecord(value); } // Keep only the unconsumed portion buffer = buffer.slice(result.read); } // Handle any remaining data if (buffer.length > 0) { const final = Bun.JSONL.parseChunk(buffer); for (const value of final.values) { handleRecord(value); } if (final.error) { console.error(\"Parse error in final chunk:\", final.error.message); } } } ``` ### Byte offsets with `Uint8Array` When the input is a `Uint8Array`, you can pass optional `start` and `end` byte offsets: ```ts const buf = new TextEncoder().encode('{\"a\":1}\\n{\"b\":2}\\n{\"c\":3}\\n'); // Parse starting from byte 8 const result = Bun.JSONL.parseChunk(buf, 8); console.log(result.values); // [{ }, { }] console.log(result.read); // 23 // Parse a specific range const partial = Bun.JSONL.parseChunk(buf, 0, 8); console.log(partial.values); // [{ }] ``` The `read` value is always a byte offset into the original buffer. Use it with `TypedArray.subarray()` for zero-copy streaming: ```ts let buf = new Uint8Array(0); async function processBinaryStream(stream: ReadableStream) { for await (const chunk of stream) { // Append chunk to buffer const newBuf = new Uint8Array(buf.length + chunk.length); newBuf.set(buf); newBuf.set(chunk, buf.length); buf = newBuf; const result = Bun.JSONL.parseChunk(buf); for (const value of result.values) { handleRecord(value); } // Keep unconsumed bytes buf = buf.subarray(result.read); } } ``` ### Error recovery Unlike `parse()`, `parseChunk()` does not throw on invalid JSON. Instead, it returns the error in the `error` property, along with any values that were successfully parsed before the error: ```ts const input = '{\"a\":1}\\n{invalid}\\n{\"b\":2}\\n'; const result = Bun.JSONL.parseChunk(input); console.log(result.values); // [{ }] — values parsed before the error console.log(result.error); // SyntaxError console.log(result.read); // 7 — position up to last successful parse ``` --- ## Supported value types Each line can be any valid JSON value, not just objects: ```ts const input = '42\\n\"hello\"\\ntrue\\nnull\\n[1,2,3]\\n{\"key\":\"value\"}\\n'; const values = Bun.JSONL.parse(input); // [42, \"hello\", true, null, [1, 2, 3], { key: \"value\" }] ``` --- ## Performance notes - **ASCII fast path**: Bun parses pure ASCII input directly without copying, using a zero-allocation `StringView`. - **UTF-8 support**: Bun decodes non-ASCII `Uint8Array` input to UTF-16. - **BOM handling**: Bun automatically skips a UTF-8 BOM (`0xEF 0xBB 0xBF`) at the start of a `Uint8Array`. - **Pre-built object shape**: The result object from `parseChunk` uses a cached structure for fast property access.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.636Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":683}}17{"id":"doc-bun_apis_bun_docs-27ecde89","source":"documentation","title":"Bun APIs | Bun Docs","url":"https://bun.sh/docs/runtime/bun-apis","text":"Example:\n```text\nBun.serve({\n fetch(req: Request) {\n return new Response(\"Success!\");\n },\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.652Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":29}}18{"id":"doc-enable_packed_slots_foundry_ethereum_development-a3733eed","source":"documentation","title":"enable_packed_slots – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/forge-std/enable_packed_slots","text":"ReferenceOverviewStd LogsStd AssertionsStd CheatsStd ConfigStd ErrorsStd Storagetargetsigwith_keydepthenable_packed_slotschecked_writefindreadStd MathScript UtilsConsole Logging\n\nExample:\n```text\nfunction enable_packed_slots(StdStorage storage self) internal returns (StdStorage storage);\n```\n\nExample:\n```text\n// Write arbitrary balances even on gas-optimized contracts like AUSD\nstdstore\n .enable_packed_slots()\n .target(_tokenAddress)\n .sig(\"balanceOf(address)\")\n .with_key(_to)\n .checked_write(\n _amount\n );\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.324Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":21,"estimatedTokens":139}}19{"id":"doc-assertnoteqdecimal_foundry_ethereum_development_-ff66e21d","source":"documentation","title":"assertNotEqDecimal – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/forge-std/assertNotEqDecimal","text":"ReferenceOverviewStd LogsStd AssertionsfailassertTrueassertFalseassertEqassertEqDecimalassertNotEqassertNotEqDecimalassertLtassertLtDecimalassertGtassertGtDecimalassertLeassertLeDecimalassertGeassertGeDecimalassertApproxEqAbsassertApproxEqAbsDecimalassertApproxEqRelassertApproxEqRelDecimalStd CheatsStd ConfigStd ErrorsStd StorageStd MathScript UtilsConsole Logging\n\nExample:\n```text\nfunction assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals) internal\n```\n\nExample:\n```text\nfunction assertNotEqDecimal(uint256 left, uint256 right, uint256 decimals, string memory err) internal;\n```\n\nExample:\n```text\nfunction assertNotEqDecimal(int256 left, int256 right, uint256 decimals) internal;\n```\n\nExample:\n```text\nfunction assertNotEqDecimal(int256 left, int256 right, uint256 decimals, string memory err) internal;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.325Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":23,"estimatedTokens":211}}20{"id":"doc-assertapproxeqabsdecimal_foundry_ethereum_develo-4b95e6f6","source":"documentation","title":"assertApproxEqAbsDecimal – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/forge-std/assertApproxEqAbsDecimal","text":"ReferenceOverviewStd LogsStd AssertionsfailassertTrueassertFalseassertEqassertEqDecimalassertNotEqassertNotEqDecimalassertLtassertLtDecimalassertGtassertGtDecimalassertLeassertLeDecimalassertGeassertGeDecimalassertApproxEqAbsassertApproxEqAbsDecimalassertApproxEqRelassertApproxEqRelDecimalStd CheatsStd ConfigStd ErrorsStd StorageStd MathScript UtilsConsole Logging\n\nExample:\n```text\nfunction assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals) internal;\n```\n\nExample:\n```text\nfunction assertApproxEqAbsDecimal(uint256 left, uint256 right, uint256 maxDelta, uint256 decimals, string memory err) internal;\n```\n\nExample:\n```text\nfunction assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals) internal;\n```\n\nExample:\n```text\nfunction assertApproxEqAbsDecimal(int256 left, int256 right, uint256 maxDelta, uint256 decimals, string memory err) internal;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.326Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":23,"estimatedTokens":235}}21{"id":"doc-cast_wallet_foundry_ethereum_development_framewo-4b371a01","source":"documentation","title":"cast wallet – foundry - Ethereum Development Framework","url":"https://book.getfoundry.sh/reference/cast/wallet","text":"ReferencecastABI CommandsAccount CommandsBlock CommandsChain CommandsConversion CommandsENS CommandsEtherscan CommandsGeneral CommandsTransaction CommandsUtility CommandsWallet Commandscast wallet\n\nExample:\n```text\n$ cast wallet --help\n```\n\nExample:\n```text\nUsage: cast wallet [OPTIONS] <COMMAND>\n\nCommands:\n new Create a new random keypair [alias: n]\n new-mnemonic Generates a random BIP39 mnemonic phrase [alias: nm]\n vanity Generate a vanity address [alias: va]\n address Convert a private key to an address [aliases: a, addr]\n derive Derive accounts from a mnemonic [alias: d]\n sign Sign a message or typed data [alias: s]\n sign-auth EIP-7702 sign authorization [alias: sa]\n verify Verify the signature of a message [alias: v]\n import Import a private key into an encrypted keystore [alias: i]\n list List all the accounts in the keystore default directory\n [alias: ls]\n session Manage temporary Tempo wallet sessions\n remove Remove a wallet from the keystore [alias: rm]\n private-key Derives private key from mnemonic [alias: pk]\n public-key Get the public key for the given private key [alias: pubkey]\n decrypt-keystore Decrypt a keystore file to get the private key [alias: dk]\n change-password Change the password of a keystore file [alias: cp]\n help Print this message or the help of the given subcommand(s)\n\nOptions:\n -h, --help\n Print help (see a summary with '-h')\n\n -j, --threads <THREADS>\n Number of threads to use. Specifying 0 defaults to the number of\n logical cores\n \n [alias: --jobs]\n\n --profile <PROFILE>\n The configuration profile to use\n\nDisplay options:\n --color <COLOR>\n The color of the log messages\n\n Possible values:\n - auto: Intelligently guess whether to use color output (default)\n - always: Force color output\n - never: Force disable color output\n\n --json\n Format log messages as JSON\n\n --md\n Format log messages as Markdown\n\n -q, --quiet\n Do not print log messages\n\n -v, --verbosity...\n Verbosity level of the log messages.\n \n Pass multiple times to increase the verbosity (e.g. -v, -vv, -vvv).\n \n Depending on the context the verbosity levels have different meanings.\n \n For example, the verbosity levels of the EVM are:\n - 2 (-vv): Print logs for all tests.\n - 3 (-vvv): Print execution traces for failing tests.\n - 4 (-vvvv): Print execution traces for all tests, and setup traces\n for failing tests.\n - 5 (-vvvvv): Print execution and setup traces for all tests,\n including storage changes and\n backtraces with line numbers.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:13.331Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":80,"estimatedTokens":738}}22{"id":"doc-chrome_extension_quickstart_plasmo_getting_start-0252db27","source":"documentation","title":"Chrome Extension Quickstart (Plasmo) - Getting started | Clerk Docs","url":"https://clerk.com/docs/chrome-extension/getting-started/quickstart","text":"Copy as markdownCopy as markdown\n\nExample:\n```typescript\npnpm create plasmo --with-tailwindcss --with-src clerk-chrome-extension\ncd clerk-chrome-extension\n```\n\nExample:\n```typescript\npnpm add @clerk/chrome-extension\n```\n\nExample:\n```typescript\nPLASMO_PUBLIC_CLERK_PUBLISHABLE_KEY=YOUR_PUBLISHABLE_KEY\nCLERK_FRONTEND_API=https://YOUR_FRONTEND_API_URL\n```\n\nExample:\n```typescript\nimport {\n ClerkProvider,\n Show,\n SignInButton,\n SignUpButton,\n UserButton,\n} from '@clerk/chrome-extension'\n\nimport { CountButton } from '~features/count-button'\n\nimport '~style.css'\n\nconst PUBLISHABLE_KEY = process.env.PLASMO_PUBLIC_CLERK_PUBLISHABLE_KEY\n\nif (!PUBLISHABLE_KEY) {\n throw new Error('Please add the PLASMO_PUBLIC_CLERK_PUBLISHABLE_KEY to the .env.development file')\n}\n\nfunction IndexPopup() {\n return (\n <ClerkProvider publishableKey={PUBLISHABLE_KEY}>\n <div className=\"plasmo-flex plasmo-items-center plasmo-justify-center plasmo-h-[600px] plasmo-w-[800px] plasmo-flex-col\">\n <header className=\"plasmo-w-full\">\n <Show when=\"signed-out\">\n <SignInButton mode=\"modal\" />\n <SignUpButton mode=\"modal\" />\n </Show>\n <Show when=\"signed-in\">\n <UserButton />\n </Show>\n </header>\n <main className=\"plasmo-grow\">\n <CountButton />\n </main>\n </div>\n </ClerkProvider>\n )\n}\n\nexport default IndexPopup\n```\n\nExample:\n```typescript\nimport {\n ClerkProvider,\n Show,\n SignInButton,\n SignUpButton,\n UserButton,\n} from '@clerk/chrome-extension'\n\nimport { CountButton } from '~features/count-button'\n\nimport '~style.css'\n\nconst PUBLISHABLE_KEY = process.env.PLASMO_PUBLIC_CLERK_PUBLISHABLE_KEY\nconst EXTENSION_URL = chrome.runtime.getURL('.')\n\nif (!PUBLISHABLE_KEY) {\n throw new Error('Please add the PLASMO_PUBLIC_CLERK_PUBLISHABLE_KEY to the .env.development file')\n}\n\nfunction IndexPopup() {\n return (\n <ClerkProvider\n publishableKey={PUBLISHABLE_KEY}\n afterSignOutUrl={`${EXTENSION_URL}/popup.html`}\n signInFallbackRedirectUrl={`${EXTENSION_URL}/popup.html`}\n signUpFallbackRedirectUrl={`${EXTENSION_URL}/popup.html`}\n >\n <div className=\"plasmo-flex plasmo-items-center plasmo-justify-center plasmo-h-[600px] plasmo-w-[800px] plasmo-flex-col\">\n <header className=\"plasmo-w-full\">\n <Show when=\"signed-out\">\n <SignInButton mode=\"modal\" />\n <SignUpButton mode=\"modal\" />\n </Show>\n <Show when=\"signed-in\">\n <UserButton />\n </Show>\n </header>\n <main className=\"plasmo-grow\">\n <CountButton />\n </main>\n </div>\n </ClerkProvider>\n )\n}\n\nexport default IndexPopup\n```\n\nExample:\n```typescript\nCRX_PUBLIC_KEY=<YOUR_PUBLIC_KEY>\n```\n\nExample:\n```typescript\n{\n // The rest of your package.json file\n \"manifest\": {\n \"key\": \"$CRX_PUBLIC_KEY\",\n \"permissions\": [\"cookies\", \"storage\"],\n \"host_permissions\": [\"http://localhost/*\", \"$CLERK_FRONTEND_API/*\"]\n }\n}\n```\n\nExample:\n```typescript\npnpm dev\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:14.253Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":136,"estimatedTokens":766}}23{"id":"doc-definitions_apache_cassandra_documentation-6693fac0","source":"documentation","title":"Definitions | Apache Cassandra Documentation","url":"https://cassandra.apache.org/doc/latest/cassandra/developing/cql/definitions.html","text":"Get Started Cassandra Basics Quickstart Ecosystem Documentation Community Welcome Discussions Governance Contribute Meet the Community Catalyst Program Events Learn Cassandra 5.0 Case Studies Resources Blog Download Now\n\nwebsite 7.0 6.0 6.0-alpha2 5.0.9 5.0.8 5.0 4.1 4.0 3.11 Main Glossary How to report bugs Contact us Development Getting started Building and IDE integration Testing Contributing code changes Code style Review checklist How to commit Working on documentation Jenkins CI environment Dependency management Release process Cassandra FAQ Getting Started Cassandra Quickstart SAI Quickstart Vector Search Quickstart Installing Cassandra Configuring Cassandra Inserting and querying Client drivers Production recommendations What’s new Support for Java Architecture Overview Dynamo Storage Engine Guarantees Improved Internode Messaging Improved Streaming Data Modeling Introduction Conceptual data modeling RDBMS design Defining application queries Logical data modeling Physical data modeling Evaluating and refining data models Defining database schema Cassandra data modeling tools Cassandra Query Language (CQL) Definitions Data types Data definition (DDL) Data manipulation (DML) Dynamic Data Masking (DDM) Operators Indexing concepts SAI Overview Concepts SAI Quickstart SAI FAQ Working with SAI SAI operations Secondary indexes (2i) overview Concepts Working with 2i Rebuild 2i Materialized views Functions JSON Security Triggers Appendices Changes SASI Single file of CQL information Vector Search overview Concepts Vector Modeling Vector Search Quickstart Working with Vector Search Managing Configuring cassandra.yaml cassandra-rackdc.properties cassandra-env.sh cassandra-topologies.properties commitlog-archiving.properties logback.xml jvm-* files Liberating cassandra.yaml Parameters' Names from Their Units Operating Auto Repair Backups Bloom filters Bulk loading Change Data Capture (CDC) Compaction Compression Hardware Hints Logging Audit logging Audit logging 2 Full query logging Monitoring metrics Repair Read repair Security Snitches Topology changes Transient replication Virtual tables Tools CQL shell nodetool SSTable tools cassandra-stress Troubleshooting Finding misbehaving nodes Reading Cassandra logs Using nodetool Using external tools to deep-dive Reference CQL commands CQL specification Java 17 Native Protocol specification SAI virtual table Static columns Vector data type Plug-ins You are viewing the documentation for a prerelease version. View Latest Cassandra Cassandra Query Language (CQL) Definitions Edit Definitions Conventions To aid in specifying the CQL syntax, we will use the following conventions in this rules will be given in an informal BNF variant notation. In particular, we’ll use square brakets ([ item ]) for optional items, * and + for repeated items (where + imply at least one). The grammar will also use the following convention for term will be lowercase (and link to their definition) while terminal keywords will be provided \"all caps\". Note however that keywords are identifiers and are thus case insensitive in practice. We will also define some early construction using regexp, which we’ll indicate with re(<some regular expression>). The grammar is provided for documentation purposes and leave some minor details out. For instance, the comma on the last column definition in a CREATE TABLE statement is optional but supported if present even though the grammar in this document suggests otherwise. Also, not everything accepted by the grammar is necessarily valid CQL. References to keywords or pieces of CQL code in running text will be shown in a fixed-width font. Identifiers and keywords The CQL language uses identifiers (or names) to identify tables, columns and other objects. An identifier is a token matching the regular expression [a-zA-Z][a-zA-Z0-9_]*. A number of such identifiers, like SELECT or WITH, are keywords. They have a fixed meaning for the language and most are reserved. The list of those keywords can be found in Appendix A. Identifiers and (unquoted) keywords are case insensitive. Thus SELECT is the same than select or sElEcT, and myId is the same than myid or MYID. A convention often used (in particular by the samples of this documentation) is to use uppercase for keywords and lowercase for other identifiers. There is a second kind of identifier called a quoted identifier defined by enclosing an arbitrary sequence of characters (non-empty) in double-quotes(\"). Quoted identifiers are never keywords. Thus \"select\" is not a reserved keyword and can be used to refer to a column (note that using this is particularly ill-advised), while select would raise a parsing error. Also, unlike unquoted identifiers and keywords, quoted identifiers are case sensitive (\"My Quoted Id\" is different from \"my quoted id\"). A fully lowercase quoted identifier that matches [a-zA-Z][a-zA-Z0-9_]* is however equivalent to the unquoted identifier obtained by removing the double-quote (so \"myid\" is equivalent to myid and to myId but different from \"myId\"). Inside a quoted identifier, the double-quote character can be repeated to escape it, so \"foo \"\" bar\" is a valid identifier. The quoted identifier can declare columns with arbitrary names, and these can sometime clash with specific names used by the server. For instance, when using conditional update, the server will respond with a result set containing a special result named \"[applied]\". If you’ve declared a column with such a name, this could potentially confuse some tools and should be avoided. In general, unquoted identifiers should be preferred but if you use quoted identifiers, it is strongly advised that you avoid any name enclosed by squared brackets (like \"[applied]\") and any name that looks like a function call (like \"f(x)\"). More formally, we ::= unquoted_identifier | quoted_identifier unquoted_identifier::= re('[a-zA-Z][link:[a-zA-Z0-9]]*') quoted_identifier::= '\"' (any character where \" can appear if doubled)+ '\"' Constants CQL defines the following ::= string | integer | float | boolean | uuid | blob | NULL string::= ''' (any character where ' can appear if doubled)+ ''' : '$$' (any character other than '$$') '$$' integer::= re('-?[0-9]+') float::= re('-?[0-9]+(.[0-9]*)?([eE][+-]?[0-9+])?') | NAN | INFINITY boolean::= TRUE | FALSE uuid::= hex\\{8}-hex\\{4}-hex\\{4}-hex\\{4}-hex\\{12} hex::= re(\"[0-9a-fA-F]\") blob::= '0' ('x' | 'X') hex+ In other string constant is an arbitrary sequence of characters enclosed by single-quote('). A single-quote can be included by repeating it, e.g. 'It''s raining today'. Those are not to be confused with quoted identifiers that use double-quotes. Alternatively, a string can be defined by enclosing the arbitrary sequence of characters by two dollar characters, in which case single-quote can be used without escaping (It's raining today). That latter form is often used when defining user-defined functions to avoid having to escape single-quote characters in function body (as they are more likely to occur than $$). Integer, float and boolean constant are defined as expected. Note however than float allows the special NaN and Infinity constants. CQL supports UUID constants. The content for blobs is provided in hexadecimal and prefixed by 0x. The special NULL constant denotes the absence of value. For how these constants are typed, see the Data types section. Terms CQL has the notion of a term, which denotes the kind of values that CQL support. Terms are defined ::= constant | literal | function_call | arithmetic_operation | type_hint | bind_marker literal::= collection_literal | vector_literal | udt_literal | tuple_literal function_call::= identifier '(' [ term (',' term)* ] ')' arithmetic_operation::= '-' term | term ('+' | '-' | '*' | '/' | '%') term type_hint::= '(' cql_type ')' term bind_marker::= '?' | ':' identifier A term is thus one constant A literal for either a collection, a vector, a user-defined type or a tuple A function call, either a native function or a user-defined function An arithmetic operation between terms A type hint A bind marker, which denotes a variable to be bound at execution time. See the section on prepared-statements for details. A bind marker can be either anonymous (?) or named (:some_name). The latter form provides a more convenient way to refer to the variable for binding it and should generally be preferred. Comments A comment in CQL is a line beginning by either double dashes (--) or double slash (//). Multi-line comments are also supported through enclosure within / and / (but nesting is not supported). -- This is a comment // This is a comment too /* This is a multi-line comment */ Statements CQL consists of statements that can be divided in the following statements, to define and change how the data is stored (keyspaces and tables). data-manipulation statements, for selecting, inserting and deleting data. secondary-indexes statements. materialized-views statements. cql-roles statements. cql-permissions statements. User-Defined Functions (UDFs) statements. udts statements. cql-triggers statements. All the statements are listed below and are described in the rest of this documentation (see links above): cql_statement::= statement [ ';' ] statement:=: ddl_statement : | dml_statement | secondary_index_statement | materialized_view_statement | role_or_permission_statement | udf_statement | udt_statement | trigger_statement ddl_statement::= use_statement | create_keyspace_statement | alter_keyspace_statement | drop_keyspace_statement | create_table_statement | alter_table_statement | drop_table_statement | truncate_statement dml_statement::= select_statement | insert_statement | update_statement | delete_statement | batch_statement secondary_index_statement::= create_index_statement | drop_index_statement materialized_view_statement::= create_materialized_view_statement | drop_materialized_view_statement role_or_permission_statement::= create_role_statement | alter_role_statement | drop_role_statement | grant_role_statement | revoke_role_statement | list_roles_statement | grant_permission_statement | revoke_permission_statement | list_permissions_statement | create_user_statement | alter_user_statement | drop_user_statement | list_users_statement udf_statement::= create_function_statement | drop_function_statement | create_aggregate_statement | drop_aggregate_statement udt_statement::= create_type_statement | alter_type_statement | drop_type_statement trigger_statement::= create_trigger_statement | drop_trigger_statement Prepared Statements CQL supports prepared statements. Prepared statements are an optimization that allows to parse a query only once but execute it multiple times with different concrete values. Any statement that uses at least one bind marker (see bind_marker) will need to be prepared. After which the statement can be executed by provided concrete values for each of its marker. The exact details of how a statement is prepared and then executed depends on the CQL driver used and you should refer to your driver documentation.\n\nExample:\n```language-bnf\nidentifier::= unquoted_identifier | quoted_identifier\nunquoted_identifier::= re('[a-zA-Z][link:[a-zA-Z0-9]]*')\nquoted_identifier::= '\"' (any character where \" can appear if doubled)+ '\"'\n```\n\nExample:\n```language-bnf\nconstant::= string | integer | float | boolean | uuid | blob | NULL\nstring::= ''' (any character where ' can appear if doubled)+ ''' : '$$' (any character other than '$$') '$$'\ninteger::= re('-?[0-9]+')\nfloat::= re('-?[0-9]+(.[0-9]*)?([eE][+-]?[0-9+])?') | NAN | INFINITY\nboolean::= TRUE | FALSE\nuuid::= hex\\{8}-hex\\{4}-hex\\{4}-hex\\{4}-hex\\{12}\nhex::= re(\"[0-9a-fA-F]\")\nblob::= '0' ('x' | 'X') hex+\n```\n\nExample:\n```language-bnf\nterm::= constant | literal | function_call | arithmetic_operation | type_hint | bind_marker\nliteral::= collection_literal | vector_literal | udt_literal | tuple_literal\nfunction_call::= identifier '(' [ term (',' term)* ] ')'\narithmetic_operation::= '-' term | term ('+' | '-' | '*' | '/' | '%') term\ntype_hint::= '(' cql_type ')' term\nbind_marker::= '?' | ':' identifier\n```\n\nExample:\n```language-cql\n-- This is a comment\n// This is a comment too\n/* This is\n a multi-line comment */\n```\n\nExample:\n```language-bnf\ncql_statement::= statement [ ';' ]\nstatement:=: ddl_statement :\n | dml_statement\n | secondary_index_statement\n | materialized_view_statement\n | role_or_permission_statement\n | udf_statement\n | udt_statement\n | trigger_statement\nddl_statement::= use_statement\n | create_keyspace_statement\n | alter_keyspace_statement\n | drop_keyspace_statement\n | create_table_statement\n | alter_table_statement\n | drop_table_statement\n | truncate_statement\ndml_statement::= select_statement\n | insert_statement\n | update_statement\n | delete_statement\n | batch_statement\nsecondary_index_statement::= create_index_statement\n | drop_index_statement\nmaterialized_view_statement::= create_materialized_view_statement\n | drop_materialized_view_statement\nrole_or_permission_statement::= create_role_statement\n | alter_role_statement\n | drop_role_statement\n | grant_role_statement\n | revoke_role_statement\n | list_roles_statement\n | grant_permission_statement\n | revoke_permission_statement\n | list_permissions_statement\n | create_user_statement\n | alter_user_statement\n | drop_user_statement\n | list_users_statement\nudf_statement::= create_function_statement\n | drop_function_statement\n | create_aggregate_statement\n | drop_aggregate_statement\nudt_statement::= create_type_statement\n | alter_type_statement\n | drop_type_statement\ntrigger_statement::= create_trigger_statement\n | drop_trigger_statement\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:14.138Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":94,"estimatedTokens":3483}}24{"id":"doc-rest_resource_projects_locations_services_quotai-78309879","source":"documentation","title":"REST Resource: projects.locations.services.quotaInfos | Cloud Quotas | Google Cloud Documentation","url":"https://cloud.google.com/docs/quotas/reference/rest/v1beta/projects.locations.services.quotaInfos","text":"Example:\n```text\nContainerTypeQuotaIncreaseEligibilityDimensionsInfo\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:14.477Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":22}}25{"id":"doc-list_a_forge_successor_to_a_connect_app-99a6893c","source":"documentation","title":"List a Forge successor to a Connect app","url":"https://developer.atlassian.com/platform/marketplace/listing-forge-successor-to-connect-apps","text":"Example:\n```text\napp:\n id: ari:cloud:ecosystem::app/cxxxxxx-xxxxx-xxxx-xxxxx-xxxxxxxxx\n connect:\n key: com.example.yourappkey\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```bash\nforge deploy -e production\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.247Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":20,"estimatedTokens":56}}26{"id":"doc-deepspeed_data_efficiency_a_composable_library_t-5b6779b4","source":"documentation","title":"DeepSpeed Data Efficiency: A composable library that makes better use of data, increases training efficiency, and improves model quality - DeepSpeed","url":"https://www.deepspeed.ai/tutorials/data-efficiency/","text":"Enter your search term...\n\nExample:\n```text\nDeepSpeedExamples/data_efficiency/gpt_finetuning$ pip install -r requirement.txt\nDeepSpeedExamples/data_efficiency/gpt_finetuning$ bash ./bash_script/run_base_random_ltd.sh\nDeepSpeedExamples/data_efficiency/gpt_finetuning$ bash ./bash_script/run_medium_random_ltd.sh\n```\n\nExample:\n```text\nFor run_base_random_ltd.sh:\nEnd of training epoch 3 step 1344 consumed_token 2148032 best perplexity 22.552324221233757 time 0.17486039188173083 hr\n\nFor run_medium_random_ltd.sh:\nEnd of training epoch 3 step 1373 consumed_token 2147024 best perplexity 17.332243199130996 time 0.4661190489927928 hr\n```\n\nExample:\n```text\nDeepSpeedExamples/data_efficiency/vit_finetuning$ pip install -r requirement.txt\nDeepSpeedExamples/data_efficiency/vit_finetuning$ bash ./bash_script/run_cifar.sh\nDeepSpeedExamples/data_efficiency/vit_finetuning$ bash ./bash_script/run_imagenet.sh\n```\n\nExample:\n```text\nFor run_cifar.sh:\n13 epoch at time 480.6546013355255s | reserved_length 197\niter 5474 | LR [0.0001]| val_acc 97.97000122070312 | layer_token 305784192\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:15:40.742Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":33,"estimatedTokens":273}}27{"id":"doc-deepspeed_sparse_attention_deepspeed-339d05fd","source":"documentation","title":"DeepSpeed Sparse Attention - DeepSpeed","url":"https://www.deepspeed.ai/tutorials/sparse-attention/","text":"Enter your search term...\n\nExample:\n```text\nattention_scores = torch.matmul(query_layer, key_layer)\nattention_scores = attention_scores / math.sqrt(\n self.attention_head_size)\n\n# Apply the attention mask is (precomputed for all layers in BertModel forward() function)\nattention_scores = attention_scores + attention_mask\n\npdtype = attention_scores.dtype\n# Normalize the attention scores to probabilities.\nattention_probs = self.softmax(attention_scores)\n\n# This is actually dropping out entire tokens to attend to, which might\n# seem a bit unusual, but is taken from the original Transformer paper.\nattention_probs = self.dropout(attention_probs)\n\ncontext_layer = torch.matmul(attention_probs, value_layer)\n```\n\nExample:\n```text\ncontext_layer =\n self.sparse_self_attention(\n\tquery_layer,\n\tkey_layer,\n\tvalue_layer,\n\tkey_padding_mask=attention_mask)\n```\n\nExample:\n```text\nself.pad_token_id = config.pad_token_id if hasattr(\n config, 'pad_token_id') and config.pad_token_id is not None else 0\n# set sparse_attention_config if it has been selected\nself.sparse_attention_config = get_sparse_attention_config(\n args, config.num_attention_heads)\nself.encoder = BertEncoder(\n config, args, sparse_attention_config=self.sparse_attention_config)\n```\n\nExample:\n```text\nif sparse_attention_config is not None:\n from deepspeed.ops.sparse_attention import BertSparseSelfAttention\n\n layer.attention.self = BertSparseSelfAttention(\n config, sparsity_config=sparse_attention_config)\n```\n\nExample:\n```text\nif self.sparse_attention_config is not None:\n pad_len, input_ids, attention_mask, token_type_ids, position_ids, inputs_embeds = SparseAttentionUtils.pad_to_block_size(\n block_size=self.sparse_attention_config.block,\n input_ids=input_ids,\n attention_mask=extended_attention_mask,\n token_type_ids=token_type_ids,\n position_ids=None,\n inputs_embeds=None,\n pad_token_id=self.pad_token_id,\n model_embeddings=self.embeddings)\n.\n.\n.\n# If BertEncoder uses sparse attention, and input_ids were padded, sequence output needs to be unpadded to original length\nif self.sparse_attention_config is not None and pad_len > 0:\n encoded_layers[-1] = SparseAttentionUtils.unpad_sequence_output(\n pad_len, encoded_layers[-1])\n```\n\nExample:\n```text\n--deepspeed_sparse_attention\n```\n\nExample:\n```text\n\"sparse_attention\": {\n \"mode\": \"fixed\",\n \"block\": 16,\n \"different_layout_per_head\": true,\n \"num_local_blocks\": 4,\n \"num_global_blocks\": 1,\n \"attention\": \"bidirectional\",\n \"horizontal_global_attention\": false,\n \"num_different_global_patterns\": 4\n}\n```\n\nExample:\n```text\nfrom deepspeed.ops.sparse_attention import SparseSelfAttention\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:32.923Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":98,"estimatedTokens":679}}28{"id":"doc-handling_streaming_errors-51bc8efe","source":"documentation","title":"Handling streaming errors","url":"https://developer.atlassian.com/platform/forge/runtime-reference/forge-llms-api-errors/","text":"Example:\n```javascript\n`You were interrupted in your previous attempt.\nYour original instruction was \"${originalUserPrompt}\".\nContinue from the following interrupted output: ${storedOutput}`\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```typescript\nlet isStreamComplete = false;\nlet response;\nconst checkIfFinishReasonExists = (chunk) =>\n !!chunk.choices.find(({ finish_reason }) => finish_reason !== undefined);\n\ntry {\n response = await stream(myPrompt);\n\n for await (const chunk of response) {\n if (checkIfFinishReasonExists(chunk)) {\n isStreamComplete = true;\n }\n }\n} catch (e) {\n // Exceptions are not thrown for finishing streams with incomplete responses.\n} finally {\n response?.close();\n}\n\nconsole.log(`Is the stream complete? ${isStreamComplete}`);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.280Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":38,"estimatedTokens":197}}29{"id":"doc-async_events_api-402eff98","source":"documentation","title":"Async Events API","url":"https://developer.atlassian.com/platform/forge/runtime-reference/async-events-api/","text":"Example:\n```javascript\nimport { Queue } from '@forge/events';\n\nconst queue = new Queue({ key: 'queue-name' });\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```typescript\nimport { Queue } from '@forge/events';\n\ninterface IssueEventBody {\n issueKey: string;\n}\n\nconst queue = new Queue<IssueEventBody>({ key: 'queue-name' });\n\nawait queue.push({ body: { issueKey: 'ABC-123' } }); // Allowed\n// await queue.push({ body: { foo: 'bar' } }); // Type error\n```\n\nExample:\n```typescript\nexport type Body = Record<string, unknown>;\nexport interface Concurrency {\n key: string;\n limit: number;\n}\nexport interface PushEvent {\n body: Body;\n delayInSeconds?: number;\n concurrency?: Concurrency;\n}\nexport interface PushResult {\n jobId: string;\n}\n\nconst result: PushResult = await queue.push(PushEvent | PushEvent[]);\n```\n\nExample:\n```javascript\n// Push a single event\nawait queue.push({ body: { hello: 'world' } });\n\n// Push multiple events\nawait queue.push([\n { body: { greeting: 'hello' } },\n { body: { farewell: 'goodbye' } }\n]);\n\n// Delay the processing of the event by 5 seconds\nawait queue.push({\n body: { hello: 'world' },\n delayInSeconds: 5\n});\n```\n\nExample:\n```text\nmodules:\n consumer:\n - key: queue-consumer\n # Name of the queue for which this consumer will be invoked\n queue: queue-name\n # Function to be called with payload\n function: consumer-function\n function:\n - key: consumer-function\n handler: consumer.handler\n timeoutSeconds: 600\n```\n\nExample:\n```typescript\nimport { AsyncEvent } from '@forge/events';\n\nexport async function handler(event: AsyncEvent, context) {\n // Access the event body\n const data = event.body;\n // Process the event\n}\n```\n\nExample:\n```typescript\nimport { AsyncEvent } from '@forge/events';\n\ninterface IssueEventBody {\n issueKey: string;\n}\n\nexport async function handler(event: AsyncEvent<IssueEventBody>, context) {\n // event.body is typed as IssueEventBody\n const { issueKey } = event.body;\n // Process the event\n}\n```\n\nExample:\n```javascript\nexport async function handler(event, context) {\n // Access the event body\n const data = event.body;\n // Process the event\n}\n```\n\nExample:\n```javascript\n// Get the job ID\nconst { jobId } = await queue.push([\n { body: { event: 'event1' } },\n { body: { event: 'event2' } }\n]);\n\n// Get the JobProgress object\nconst jobProgress = queue.getJob(jobId);\n\n// Get stats of a particular job\nconst { success, inProgress, failed } = await jobProgress.getStats();\n```\n\nExample:\n```typescript\nimport { Queue, AsyncEvent } from '@forge/events';\n\nconst queue = new Queue({ key: 'queue-name' });\n\nexport async function handler(event: AsyncEvent, context) {\n const jobProgress = queue.getJob(event.jobId);\n\n try {\n // process the event\n } catch (error) {\n // You can cancel the job when an error happens\n await jobProgress.cancel();\n }\n}\n```\n\nExample:\n```javascript\nawait queue.push({\n body: { ... },\n concurrency: {\n key: 'my-key',\n limit: 1\n }\n});\n```\n\nExample:\n```typescript\ninterface RetryContext {\n retryCount: number;\n retryReason: string;\n retryData: any;\n retentionWindow?: RetentionWindow;\n}\n\ninterface RetentionWindow {\n startTime: string;\n remainingTimeMs: number;\n}\n```\n\nExample:\n```typescript\nimport { AsyncEvent } from '@forge/events';\n\nexport async function handler(event: AsyncEvent) {\n // retryContext is only present on retries\n if (event.retryContext) {\n const {\n retryCount,\n retryData,\n retryReason,\n retentionWindow: {\n startTime,\n remainingTimeMs\n }\n } = event.retryContext;\n //...\n }\n}\n```\n\nExample:\n```typescript\ninterface RetryOptions {\n retryAfter: number;\n retryReason: InvocationErrorCode;\n retryData?: any;\n}\n```\n\nExample:\n```typescript\nimport { AsyncEvent, InvocationError, InvocationErrorCode } from '@forge/events';\n\nexport async function handler(event: AsyncEvent) {\n const userName = event.body.userName;\n const response = await callExternalApi(userName);\n\n if (response.headers.has('Retry-After')) {\n return new InvocationError({\n retryAfter: parseInt(response.headers.get('Retry-After')),\n retryReason: InvocationErrorCode.FUNCTION_UPSTREAM_RATE_LIMITED,\n retryData: {\n userName: userName\n }\n });\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.282Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":224,"estimatedTokens":1103}}30{"id":"doc-build_a_custom_ui_app_in_confluence-5b034789","source":"documentation","title":"Build a Custom UI app in Confluence","url":"https://developer.atlassian.com/platform/forge/build-a-custom-ui-app-in-confluence/","text":"Example:\n```bash\nforge create\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```bash\ncd hello-world-custom-ui\n```\n\nExample:\n```bash\nhello-world-custom-ui\n|-- src\n| `-- index.js\n|-- static\n| `-- hello-world\n| `-- src\n| `-- index.js\n| `-- App.js\n| `-- public\n| `-- index.html\n| `-- package.json\n| `-- package-lock.json\n|-- manifest.yml\n|-- package.json\n|-- package-lock.json\n`-- README.md\n```\n\nExample:\n```text\nmodules:\n confluence:contentBylineItem:\n - key: hello-world-content-byline\n resource: main\n resolver:\n function: resolver\n title: Hello World from Emma Richards\n function:\n - key: resolver\n handler: index.handler\nresources:\n - key: main\n path: static/hello-world/build\napp:\n id: '<your app id>'\n```\n\nExample:\n```bash\nnpm install\n```\n\nExample:\n```bash\nnpm run build\n```\n\nExample:\n```bash\nforge deploy\n```\n\nExample:\n```bash\nforge install\n```\n\nExample:\n```javascript\nimport React, { useEffect, useState } from 'react';\nimport { invoke } from '@forge/bridge';\n\nfunction App() {\n const [data, setData] = useState(null);\n\n useEffect(() => {\n invoke('getText', { example: 'my-invoke-variable' }).then(setData);\n }, []);\n\n return (\n <div>\n {data ? data : 'Loading...'}\n </div>\n );\n}\n\nexport default App;\n```\n\nExample:\n```bash\nforge tunnel\n```\n\nExample:\n```javascript\nimport Resolver from '@forge/resolver';\n\nconst resolver = new Resolver();\n\nresolver.define('getText', (req) => {\n console.log(req);\n\n return 'Hello, world!';\n});\n\nexport const handler = resolver.getDefinitions();\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.355Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":12,"totalLines":118,"estimatedTokens":403}}31{"id":"doc-create_a_giphy_app_using_the_ui_kit_on_confluenc-21fd7df9","source":"documentation","title":"Create a GIPHY app using the UI Kit on Confluence","url":"https://developer.atlassian.com/platform/forge/create-a-giphy-app-using-the-ui-kit/","text":"Example:\n```bash\nforge create\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```bash\ncd giphy-app\n```\n\nExample:\n```bash\npermissions:\n external:\n images:\n - address: <GIPHY source link >\n```\n\nExample:\n```text\nmodules:\n macro:\n - key: giphy\n resource: main\n render: native\n resolver:\n function: resolver\n title: GIPHY\n function:\n - key: resolver\n handler: index.handler\nresources:\n - key: main\n path: src/frontend/index.jsx\npermissions:\n external:\n images:\n - address: https://media3.giphy.com/media/26vUJR5VABcUJaCTm/200.gif?cid=74f3ab6481fcd606c80e02418b301c17130050edc03b7521&rid=200.gif\napp:\n runtime:\n name: nodejs24.x\n id: '<your-app-id>'\n```\n\nExample:\n```javascript\nimport React from 'react';\nimport ForgeReconciler, { Text, Image } from '@forge/react';\n\n// ImageCard component containing text and image\nconst ImageCard = ({title, src}) => (\n <>\n <Text>{title}</Text>\n <Image src={src} alt={title}/>\n </>\n);\n\nconst App = () => {\n const { title, url } = {\n title: \"awesome avalanche GIF\",\n url: \"https://media3.giphy.com/media/26vUJR5VABcUJaCTm/200.gif?cid=74f3ab6481fcd606c80e02418b301c17130050edc03b7521&rid=200.gif\"\n };\n\n return (\n <>\n <Text>Random GIF!</Text>\n <ImageCard src={url} title={title}/>\n </>\n );\n};\n\nForgeReconciler.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n```\n\nExample:\n```bash\nforge deploy\n```\n\nExample:\n```bash\nforge install\n```\n\nExample:\n```text\npermissions:\n external:\n images:\n - address: *.giphy.com\n fetch:\n backend:\n - 'api.giphy.com'\n```\n\nExample:\n```bash\nforge variables set --encrypt GIPHY_API_KEY your-key\n```\n\nExample:\n```bash\nforge tunnel\n```\n\nExample:\n```javascript\nimport Resolver from '@forge/resolver';\nimport api from \"@forge/api\";\n\nconst resolver = new Resolver();\n\n// GIPHY API base URL\nconst GIPHY_API_BASE = 'https://api.giphy.com/v1/gifs/';\n\n// getRandomGif function makes the GIPHY API call to get a random GIF and filter out title and url\nresolver.define('getRandomGif', async() => {\nconst response = await api.fetch(\n `${GIPHY_API_BASE}random?api_key=${process.env.GIPHY_API_KEY}&rating=g`,\n);\n\nconst {\n data: {\n title,\n images: {\n fixed_height: { url },\n },\n },\n} = await response.json();\n\nreturn {\n title,\n url,\n};\n});\n\nexport const handler = resolver.getDefinitions();\n```\n\nExample:\n```javascript\nconst [title, setTitle] = useState('');\nconst [url, setURL] = useState('');\ninvoke('getRandomGif', {}).then((title, url) => {\n setTitle(title);\n setURL(url);\n});\n```\n\nExample:\n```javascript\nimport React, { useEffect, useState } from 'react';\nimport ForgeReconciler, { Text, Image } from '@forge/react';\nimport { invoke } from '@forge/bridge';\n\n// ImageCard component containing text and image\nconst ImageCard = ({ title, url }) => {\n return (\n <>\n <Text>{title}</Text>\n <Image src={url} alt={title}/>\n </>\n )\n};\n\nconst App = () => {\n const [title, setTitle] = useState('');\n const [url, setURL] = useState('');\n\n useEffect(() => {\n invoke('getRandomGif', {}).then((data) => {\n setTitle(data.title);\n setURL(data.url);\n });\n }, [setTitle, setURL, invoke]);\n\n return (\n <>\n <Text>Random GIF!</Text>\n <ImageCard url={url} title={title}/>\n </>\n );\n};\n\nForgeReconciler.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n```\n\nExample:\n```javascript\nreturn (\n <>\n <Text>Random GIF!</Text>\n <Button\n onClick={() => {\n invoke('getRandomGif', {}).then((data) => {\n setTitle(data.title);\n setURL(data.url);\n })\n }}\n >{url ? '🔀 Shuffle!' : 'Generate!'}\n </Button>\n {url ? <ImageCard url={url} title={title}/> : <></>}\n </>\n);\n```\n\nExample:\n```javascript\nimport React, { useState } from 'react';\nimport ForgeReconciler, { Text, Image, Button } from '@forge/react';\nimport { invoke } from '@forge/bridge';\n\n// ImageCard component containing text and image\nconst ImageCard = ({ title, url }) => {\n return (\n <>\n <Text>{title}</Text>\n <Image src={url} alt={title}/>\n </>\n )\n};\n\nconst App = () => {\n const [title, setTitle] = useState('');\n const [url, setURL] = useState('');\n\n return (\n <>\n <Text>Random GIF!</Text>\n <Button\n onClick={() => {\n invoke('getRandomGif', {}).then((data) => {\n setTitle(data.title);\n setURL(data.url);\n })\n }}\n >{url ? '🔀 Shuffle!' : 'Generate!'}\n </Button>\n {url ? <ImageCard url={url} title={title}/> : <></>}\n </>\n );\n};\n\nForgeReconciler.render(\n <React.StrictMode>\n <App />\n </React.StrictMode>\n);\n```\n\nExample:\n```text\n``` shell\nforge deploy\n```\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.357Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":17,"totalLines":272,"estimatedTokens":1211}}32{"id":"doc-debugging-65bed899","source":"documentation","title":"Debugging","url":"https://developer.atlassian.com/platform/forge/debugging/","text":"Example:\n```bash\nINFO 2020-01-22T06:36:33.843Z f93rfad-1234-d920-a98r-9aendas93 Number of comments on this page: 2\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```bash\nINFO 2020-01-22T06:36:33.843Z 194b0adb-7362-4f0d-8fc9-6ee950bea769 Number of comments on this page: 2\n App version: 1001000\n Function name: main\n```\n\nExample:\n```bash\ninvocation: 194b0adb-7362-4f0d-8fc9-6ee950bea769\nINFO 06:36:33.843Z Number of comments on this page: 2\n\ninvocation: b3d763d0-2ebd-40fe-88a4-79e8170f8c48\nINFO 01:09:26.988Z Number of comments on this page: 0\n```\n\nExample:\n```bash\n┌─────────────────────────────────────────────────────┐\n│ App version 1001000 │\n│ Invocation ID 194b0adb-7362-4f0d-8fc9-6ee950bea769 │\n│ Function name main │\n└─────────────────────────────────────────────────────┘\n\nINFO 2020-01-22T06:36:33.843Z 194b0adb-7362-4f0d-8fc9-6ee950bea769 Number of comments on this page: 2\n App version: 1001000\n Function name: main\n\n┌─────────────────────────────────────────────────────┐\n│ App version 6 │\n│ Invocation ID b3d763d0-2ebd-40fe-88a4-79e8170f8c48 │\n│ Function name main │\n└─────────────────────────────────────────────────────┘\n\nINFO 2020-02-21T01:09:26.988Z b3d763d0-2ebd-40fe-88a4-79e8170f8c48 Number of comments on this page: 0\n App version: 6\n Function name: main\n```\n\nExample:\n```bash\n✕ Deploying hello-world-app to development...\nℹ Packaging app files\nError: Bundling failed: ./src/index.jsx\nModule build failed (from /usr/local/lib/node_modules/@forge/cli/node_modules/babel-loader/lib/index.js):\nSyntaxError: /Users/alui/src/forge/hello-world-app/src/index.jsx: Unexpected token (19:6)\n 17 | <Fragment>\n 18 | <Text>Number of comments on this page: {comments.length}</Text>\n> 19 | <Image\n | ^\n 20 | src=\"https://media.giphy.com/media/jUwpNzg9IcyrK/source.gif\"\n 21 | alt=\"homer\"\n 22 | />\n at Object.raise (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:7017:17)\n at Object.unexpected (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:8395:16)\n at Object.jsxParseIdentifier (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:3894:12)\n at Object.jsxParseNamespacedName (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:3904:23)\n at Object.jsxParseAttribute (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:3988:22)\n at Object.jsxParseOpeningElementAfterName (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:4009:28)\n at Object.jsxParseOpeningElementAfterName (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:6459:18)\n at Object.jsxParseOpeningElementAt (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:4002:17)\n at Object.jsxParseElementAt (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:4034:33)\n at Object.jsxParseElementAt (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:4050:32)\n at Object.jsxParseElement (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:4108:17)\n at Object.parseExprAtom (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:4115:19)\n at Object.parseExprSubscripts (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:9259:23)\n at Object.parseMaybeUnary (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:9239:21)\n at Object.parseMaybeUnary (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:6269:20)\n at Object.parseExprOps (/usr/local/lib/node_modules/@forge/cli/node_modules/@babel/parser/lib/index.js:9109:23)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.426Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":83,"estimatedTokens":993}}33{"id":"doc-external_authentication-e24270d5","source":"documentation","title":"External authentication","url":"https://developer.atlassian.com/platform/forge/runtime-reference/external-fetch-api/","text":"Example:\n```javascript\nimport api from \"@forge/api\";\n\nconst response = await api\n .asUser()\n .withProvider(\"google\", \"google-apis\")\n .fetch(\"/userinfo/v2/me\");\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```javascript\nexport interface ExternalAuthAccount {\n id: string;\n displayName: string;\n avatarUrl?: string;\n scopes: string[];\n}\nexport interface ExternalAuthAccountMethods {\n hasCredentials: (scopes?: string[]) => Promise<boolean>;\n requestCredentials: (scopes?: string[]) => Promise<boolean>;\n fetch: FetchMethodAllowingRoute;\n getAccount: () => Promise<ExternalAuthAccount | undefined>;\n}\nexport interface ExternalAuthFetchMethods extends ExternalAuthAccountMethods {\n listAccounts: () => Promise<ExternalAuthAccount[]>;\n asAccount: (externalAccountId: string) => ExternalAuthAccountMethods;\n}\nexport interface ExternalAuthFetchMethodsProvider {\n withProvider: (\n provider: string,\n remoteName?: string\n ) => ExternalAuthFetchMethods;\n}\n```\n\nExample:\n```javascript\napi.asUser().withProvider(provider).hasCredentials(scopes?: string[]) => Promise<boolean>\n```\n\nExample:\n```javascript\nconst [data] = useState(async () => {\n const google = api.asUser().withProvider('google', 'google-apis');\n if (!await google.hasCredentials()) {\n await google.requestCredentials();\n }\n const response = await google.fetch('/userinfo/v2/me');\n ...\n})\n```\n\nExample:\n```javascript\napi.asUser().withProvider(provider).requestCredentials(scopes?: string[])\n```\n\nExample:\n```javascript\nconst google = api.asUser().withProvider(\"google\", \"google-apis\");\nif (!(await google.hasCredentials())) {\n await google.requestCredentials();\n}\n\n//another example with scopes provided\nconst profileScopes = [\n \"https://www.googleapis.com/auth/userinfo.profile\",\n \"https://www.googleapis.com/auth/userinfo.email\",\n];\nif (!(await google.hasCredentials(profileScopes))) {\n //ask for profileScopes and any scope that user already granted\n await google.requestCredentials([\n ...new Set([...profileScopes, ...google.getAccount().scopes]),\n ]);\n}\n``;\n```\n\nExample:\n```javascript\nfetch(url[, options])\n```\n\nExample:\n```javascript\napi.asUser().withProvider(provider).getAccount();\n```\n\nExample:\n```javascript\napi.asUser().withProvider(provider).listAccounts();\n```\n\nExample:\n```javascript\napi.asUser().withProvider(provider).asAccount(externalAccountId: string)\n```\n\nExample:\n```javascript\n// example on how to switch to account whose displayName is `example@gmail.com` to make API call\nconst selectedDisplayName = \"example@gmail.com\";\nconst selectedAccount = (await google.listAccounts()).find(\n (account) => account.displayName == selectedDisplayName\n);\nconst response = await google\n .asAccount(selectedAccount.id)\n .fetch(\"/userinfo/v2/me\");\n```\n\nExample:\n```javascript\nAuthProfile({ id, displayName, avatarUrl });\n```\n\nExample:\n```typescript\ninterface ProfileRetrieverParameters {\n status: number;\n body: {\n [key: string]: any;\n };\n}\n\nexport const retriever = (response: ProfileRetrieverParameters) => {\n const { status, body: externalProfile } = response;\n\n if (status === 200) {\n return new AuthProfile({\n id: externalProfile.user.id,\n displayName: externalProfile.user.name,\n });\n } else {\n // handle error\n }\n};\n```\n\nExample:\n```javascript\nwithProvider(provider[, remoteName])\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.435Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":15,"totalLines":151,"estimatedTokens":833}}34{"id":"doc-use_the_forge_cli_on_a_corporate_network-0255e59b","source":"documentation","title":"Use the Forge CLI on a corporate network","url":"https://developer.atlassian.com/platform/forge/enterprise/use-forge-cli-on-corporate-network/","text":"Example:\n```bash\nnpm config set registry ${yourRegistry}\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```bash\nrequest to https://api.atlassian.com/graphql failed, reason: read ECONNRESET`\n```\n\nExample:\n```bash\nnpm config set proxy ${yourProxyServer}\n```\n\nExample:\n```bash\nnpm config set proxy http://proxy.example.com:8888\n```\n\nExample:\n```bash\nnpm install -g global-agent\n```\n\nExample:\n```bash\nexport GLOBAL_AGENT_HTTP_PROXY=${yourProxyServer}\n```\n\nExample:\n```javascript\nrequire('global-agent/bootstrap');\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.516Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":42,"estimatedTokens":130}}35{"id":"doc-ussd-d64feb42","source":"documentation","title":"USSD","url":"https://developer.flutterwave.com/edit/ussd","text":"For AI https://developer.flutterwave.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI.\n\nJump to ContentDocumentationAPI ReferencesSupportBlogAsk AIHomeDocumentationRecipesAPI Referencesv2.0.0v3.0.0v4.0.0DocumentationAPI ReferencesSupportBlogAsk AIDocumentationv4.0.0DocumentationUSSDIntroductionGetting StartedQuickstartCharging a CardMaking a TransferIntegration JourneyCore ConceptsEnvironmentsAuthenticationSupported Request HeadersEncryptionErrorsWebhooksIdempotencyTestingBest PracticesCollections - inflowIntroductionGeneral FlowOrchestrator FlowCard PaymentsMobile MoneyPay With Bank TransferPay with Bank (NG)USSDOPayPayouts - OutflowsIntroductionGeneral Transfer FlowTransfer OrchestratorBank Account TransfersMobile Money TransfersWallet-to-WalletStablecoinsPayment OperationsSettlementsRefundsChargebacksReporting VATUse casesFintechsBanks and OFIsTravel and HospitalityE-CommerceRemittanceTelecommunicationsAPI WorkflowsLoan disbursementsReal-time FX conversionSuggestGenerate USSD string for offline payments.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.795Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":269}}36{"id":"doc-general_flow-6f521992","source":"documentation","title":"General Flow","url":"https://developer.flutterwave.com/edit/main-payment-flow","text":"For AI https://developer.flutterwave.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI.\n\nJump to ContentDocumentationAPI ReferencesSupportBlogAsk AIHomeDocumentationRecipesAPI Referencesv2.0.0v3.0.0v4.0.0DocumentationAPI ReferencesSupportBlogAsk AIDocumentationv4.0.0DocumentationGeneral FlowIntroductionGetting StartedQuickstartCharging a CardMaking a TransferIntegration JourneyCore ConceptsEnvironmentsAuthenticationSupported Request HeadersEncryptionErrorsWebhooksIdempotencyTestingBest PracticesCollections - inflowIntroductionGeneral FlowOrchestrator FlowCard PaymentsMobile MoneyPay With Bank TransferPay with Bank (NG)USSDOPayPayouts - OutflowsIntroductionGeneral Transfer FlowTransfer OrchestratorBank Account TransfersMobile Money TransfersWallet-to-WalletStablecoinsPayment OperationsSettlementsRefundsChargebacksReporting VATUse casesFintechsBanks and OFIsTravel and HospitalityE-CommerceRemittanceTelecommunicationsAPI WorkflowsLoan disbursementsReal-time FX conversionSuggestGet started with Flutterwave payments.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.797Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":270}}37{"id":"doc-bank_account_transfers-0ee48024","source":"documentation","title":"Bank Account Transfers","url":"https://developer.flutterwave.com/edit/bank-transfer","text":"For AI https://developer.flutterwave.com/llms.txt for an index of all pages formatted in Markdown and endpoints in OpenAPI.\n\nJump to ContentDocumentationAPI ReferencesSupportBlogAsk AIHomeDocumentationRecipesAPI Referencesv2.0.0v3.0.0v4.0.0DocumentationAPI ReferencesSupportBlogAsk AIDocumentationv4.0.0DocumentationBank Account TransfersIntroductionGetting StartedQuickstartCharging a CardMaking a TransferIntegration JourneyCore ConceptsEnvironmentsAuthenticationSupported Request HeadersEncryptionErrorsWebhooksIdempotencyTestingBest PracticesCollections - inflowIntroductionGeneral FlowOrchestrator FlowCard PaymentsMobile MoneyPay With Bank TransferPay with Bank (NG)USSDOPayPayouts - OutflowsIntroductionGeneral Transfer FlowTransfer OrchestratorBank Account TransfersMobile Money TransfersWallet-to-WalletStablecoinsPayment OperationsSettlementsRefundsChargebacksReporting VATUse casesFintechsBanks and OFIsTravel and HospitalityE-CommerceRemittanceTelecommunicationsAPI WorkflowsLoan disbursementsReal-time FX conversionSuggestLearn how to make bank account transfers.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.808Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":273}}38{"id":"doc-provision_infrastructure_with_cloud_init_terrafo-d6362de0","source":"documentation","title":"Provision infrastructure with Cloud-Init | Terraform | HashiCorp Developer","url":"https://developer.hashicorp.com/terraform/tutorials/provision/cloud-init","text":"HashiConf 2025 Don't miss the live stream of HashiConf Day 2 happening now View live stream\n\nExample:\n```text\n$ git clone -b cloudinit https://github.com/hashicorp-education/learn-terraform-provisioning\n```\n\nExample:\n```text\n$ cd learn-terraform-provisioning\n```\n\nExample:\n```text\n$ ssh-keygen -t rsa -C \"your_email@example.com\" -f ./tf-cloud-init\n```\n\nExample:\n```text\n##...\nusers:\n - default\n - name: terraform\n gecos: terraform\n primary_group: hashicorp\n sudo: ALL=(ALL) NOPASSWD:ALL\n groups: users, admin\n ssh_import_id:\n lock_passwd: false\n ssh_authorized_keys:\n - # Paste your created SSH key here\n##...\n```\n\nExample:\n```text\nresource \"aws_instance\" \"web\" {\n ami = data.aws_ami.ubuntu.id\n instance_type = \"t2.micro\"\n subnet_id = aws_subnet.subnet_public.id\n vpc_security_group_ids = [aws_security_group.sg_22_80.id]\n associate_public_ip_address = true\n user_data = file(\"../scripts/add-ssh-web-app.yaml\")\n\n tags = {\n Name = \"Learn-CloudInit\"\n }\n}\n```\n\nExample:\n```text\n$ cd instances\n```\n\nExample:\n```text\n$ terraform init\n```\n\nExample:\n```text\n$ terraform apply\n```\n\nExample:\n```text\n$ ssh terraform@$(terraform output -raw public_ip) -i ../tf-cloud-init\nThe authenticity of host '54.196.121.30 (54.196.121.30)' can't be established.\nED25519 key fingerprint is SHA256:wCXmWHhTiGwmZ0V2IhNMXgEwx/lSyDRH7JHMHrT8Jb4.\nThis key is not known by any other names.\nAre you sure you want to continue connecting (yes/no/[fingerprint])? yes\nWarning: Permanently added '54.196.121.30' (ED25519) to the list of known hosts.\nWelcome to Ubuntu 24.04 LTS (GNU/Linux 6.8.0-1008-aws x86_64)\n##...\nterraform@ip-10-1-0-100:~$\n```\n\nExample:\n```text\n$ ~/go/bin/learn-go-webapp-demo\n54.196.121.30\n```\n\nExample:\n```text\n$ terraform destroy\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:39.575Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":11,"totalLines":90,"estimatedTokens":465}}39{"id":"doc-user_privacy_guide_for_app_developers-3bf7b58c","source":"documentation","title":"User privacy guide for app developers","url":"https://developer.atlassian.com/cloud/jira/platform/user-privacy-developer-guide/","text":"Example:\n```json\n{\n\"accounts\": [{\n \"accountId\": \"account-id-a\",\n \"updatedAt\": \"2017-05-27T16:22:09.000Z\"\n }, {\n \"accountId\": \"account-id-b\",\n \"updatedAt\": \"2017-04-27T16:23:32.000Z\"\n }, {\n \"accountId\": \"account-id-c\",\n \"updatedAt\": \"2017-02-27T16:22:11.000Z\"\n }]\n}\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```json\n{\n \"accounts\": [{\n \"accountId\": \"account-id-a\",\n \"status\": \"closed\"\n }, {\n \"accountId\": \"account-id-c\",\n \"status\": \"updated\"\n }]\n}\n```\n\nExample:\n```json\n{\n \"errorType\": \"string\",\n \"errorMessage\": \"string\"\n}\n```\n\nExample:\n```json\n{\n\"accounts\": [{\n \"accountId\": \"account-id-a\",\n \"updatedAt\": \"2018-10-25T23:08:51.382Z\"\n }, {\n \"accountId\": \"account-id-b\",\n \"updatedAt\": \"2018-10-25T23:14:44.231Z\"\n }, {\n \"accountId\": \"account-id-c\",\n \"updatedAt\": \"2018-12-01T02:44:21.020Z\"\n }]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.544Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":60,"estimatedTokens":217}}40{"id":"doc-command_eligibility-a2a93e91","source":"documentation","title":"Command: eligibility","url":"https://developer.atlassian.com/platform/forge/cli-reference/eligibility/","text":"Example:\n```text\nUsage: forge eligibility [options]\n```\n\nExample:\n```text\n1\n2\n```\n\nExample:\n```text\n--verbose enable verbose mode\n-e, --environment [environment] specify the environment (see your default\n environment by running forge settings list)\n--non-interactive run the command without input prompts\n-v, --major-version [version] specify a major version\n-h, --help display help for command\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:38.569Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":22,"estimatedTokens":127}}41{"id":"doc-module_creation_recommended_pattern_terraform_ha-3b7fbd57","source":"documentation","title":"Module creation - recommended pattern | Terraform | HashiCorp Developer","url":"https://developer.hashicorp.com/terraform/tutorials/modules/pattern-module-creation","text":"HashiConf 2025 Don't miss the live stream of HashiConf Day 2 happening now View live stream\n\nExample:\n```text\nroot-module-directory\n├── README.md\n├── main.tf\n└── ec2-instances\n └── main.tf\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:39.593Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":12,"estimatedTokens":53}}42{"id":"doc-manage_aws_auto_scaling_groups_terraform_hashico-c2dcf77d","source":"documentation","title":"Manage AWS Auto Scaling Groups | Terraform | HashiCorp Developer","url":"https://developer.hashicorp.com/terraform/tutorials/aws/aws-asg","text":"HashiConf 2025 Don't miss the live stream of HashiConf Day 2 happening now View live stream\n\nExample:\n```text\n$ git clone https://github.com/hashicorp-education/learn-terraform-aws-asg\n```\n\nExample:\n```text\n$ cd learn-terraform-aws-asg\n```\n\nExample:\n```text\nresource \"aws_lb_target_group\" \"hashicups\" {\n name = \"learn-asg-hashicups\"\n port = 80\n protocol = \"HTTP\"\n vpc_id = module.vpc.vpc_id\n}\n```\n\nExample:\n```text\nresource \"aws_launch_configuration\" \"terramino\" {\n name_prefix = \"learn-terraform-aws-asg-\"\n image_id = data.aws_ami.amazon_linux.id\n instance_type = \"t2.micro\"\n user_data = file(\"user-data.sh\")\n security_groups = [aws_security_group.terramino_instance.id]\n\n lifecycle {\n create_before_destroy = true\n }\n}\n```\n\nExample:\n```text\nresource \"aws_autoscaling_group\" \"terramino\" {\n min_size = 1\n max_size = 3\n desired_capacity = 1\n launch_configuration = aws_launch_configuration.terramino.name\n vpc_zone_identifier = module.vpc.public_subnets\n}\n```\n\nExample:\n```text\nresource \"aws_lb\" \"terramino\" {\n name = \"learn-asg-terramino-lb\"\n internal = false\n load_balancer_type = \"application\"\n security_groups = [aws_security_group.terramino_lb.id]\n subnets = module.vpc.public_subnets\n}\n```\n\nExample:\n```text\nresource \"aws_lb_listener\" \"terramino\" {\n load_balancer_arn = aws_lb.terramino.arn\n port = \"80\"\n protocol = \"HTTP\"\n\n default_action {\n type = \"forward\"\n target_group_arn = aws_lb_target_group.terramino.arn\n }\n}\n```\n\nExample:\n```text\nresource \"aws_lb_target_group\" \"terramino\" {\n name = \"learn-asg-terramino\"\n port = 80\n protocol = \"HTTP\"\n vpc_id = module.vpc.vpc_id\n }\n\nresource \"aws_autoscaling_attachment\" \"terramino\" {\n autoscaling_group_name = aws_autoscaling_group.terramino.id\n alb_target_group_arn = aws_lb_target_group.terramino.arn\n}\n```\n\nExample:\n```text\nresource \"aws_security_group\" \"terramino_instance\" {\n name = \"learn-asg-terramino-instance\"\n ingress {\n from_port = 80\n to_port = 80\n protocol = \"tcp\"\n security_groups = [aws_security_group.terramino_lb.id]\n }\n\n egress {\n from_port = 0\n to_port = 0\n protocol = \"-1\"\n cidr_blocks = [\"0.0.0.0/0\"]\n }\n\n vpc_id = module.vpc.vpc_id\n}\n\nresource \"aws_security_group\" \"terramino_lb\" {\n name = \"learn-asg-terramino-lb\"\n ingress {\n from_port = 80\n to_port = 80\n protocol = \"tcp\"\n cidr_blocks = [\"0.0.0.0/0\"]\n }\n\n egress {\n from_port = 0\n to_port = 0\n protocol = \"-1\"\n cidr_blocks = [\"0.0.0.0/0\"]\n }\n\n vpc_id = module.vpc.vpc_id\n}\n```\n\nExample:\n```text\n$ terraform init\n\nInitializing the backend...\n\nInitializing provider plugins...\n- Reusing previous version of hashicorp/aws from the dependency lock file\n- Installing hashicorp/aws v3.50.0...\n- Installed hashicorp/aws v3.50.0 (signed by HashiCorp)\n\nTerraform has been successfully initialized!\n\nYou may now begin working with Terraform. Try running \"terraform plan\" to see\nany changes that are required for your infrastructure. All Terraform commands\nshould now work.\n\nIf you ever set or change modules or backend configuration for Terraform,\nrerun this command to reinitialize your working directory. If you forget, other\ncommands will detect it and remind you to do so if necessary.\n```\n\nExample:\n```text\n$ terraform apply\nTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\n + create\n\nTerraform will perform the following actions:\n##...\nPlan: 18 to add, 0 to change, 0 to destroy.\n\nChanges to Outputs:\n + lb_endpoint = (known after apply)\nDo you want to perform these actions in workspace \"rita-asg\"?\n Terraform will perform the actions described above.\n Only 'yes' will be accepted to approve.\n\n Enter a value: yes\n##...\n\nApply complete! Resources: 18 added, 0 changed, 0 destroyed.\n\nOutputs:\n\napplication_endpoint = \"http://learn-asg-terramino-lb-1572171601.us-east-2.elb.amazonaws.com/index.php\"\nasg_name = \"terramino\"\nlb_endpoint = \"http://learn-asg-terramino-lb-1572171601.us-east-2.elb.amazonaws.com\"\n```\n\nExample:\n```text\n$ curl $(terraform output -raw lb_endpoint)\ni-0735ecca64f49e5e1\n```\n\nExample:\n```text\n$ aws autoscaling set-desired-capacity --auto-scaling-group-name $(terraform output -raw asg_name) --desired-capacity 2\n```\n\nExample:\n```text\n$ for i in `seq 1 5`; do curl $(terraform output -raw lb_endpoint); echo; done\ni-0ae5296368d386a56\ni-084167eee4ef1bce0\ni-084167eee4ef1bce0\ni-084167eee4ef1bce0\ni-0ae5296368d386a56\n```\n\nExample:\n```text\n$ terraform plan\n...\nNote: Objects have changed outside of Terraform\n\nTerraform detected the following changes made outside of Terraform since the\nlast \"terraform apply\":\n\n # aws_autoscaling_group.terramino has changed\n ~ resource \"aws_autoscaling_group\" \"terramino\" {\n ~ desired_capacity = 1 -> 2\n + enabled_metrics = []\n id = \"terramino\"\n + load_balancers = []\n name = \"terramino\"\n + suspended_processes = []\n + target_group_arns = [\n + \"arn:aws:elasticloadbalancing:us-east-2:561656980159:targetgroup/learn-asg-terramino/29d2f819df0d2494\",\n ]\n + termination_policies = []\n # (17 unchanged attributes hidden)\n }\n\n\nUnless you have made equivalent changes to your configuration, or ignored the\nrelevant attributes using ignore_changes, the following plan may include\nactions to undo or respond to these changes.\n\n─────────────────────────────────────────────────────────────────────────────\n\nTerraform used the selected providers to generate the following execution\nplan. Resource actions are indicated with the following symbols:\n ~ update in-place\n\nTerraform will perform the following actions:\n\n # aws_autoscaling_group.terramino will be updated in-place\n ~ resource \"aws_autoscaling_group\" \"terramino\" {\n ~ desired_capacity = 2 -> 1\n id = \"terramino\"\n name = \"terramino\"\n ~ target_group_arns = [\n - \"arn:aws:elasticloadbalancing:us-east-2:561656980159:targetgroup/learn-asg-terramino/29d2f819df0d2494\",\n ]\n # (21 unchanged attributes hidden)\n }\n\nPlan: 0 to add, 1 to change, 0 to destroy.\n```\n\nExample:\n```text\nresource \"aws_autoscaling_group\" \"terramino\" {\n min_size = 1\n max_size = 3\n desired_capacity = 1\n launch_configuration = aws_launch_configuration.terramino.name\n vpc_zone_identifier = module.vpc.public_subnets\n}\n\n lifecycle {\n ignore_changes = [desired_capacity, target_group_arns]\n }\n}\n```\n\nExample:\n```text\n$ terraform apply\nNo changes. Your infrastructure matches the configuration.\n```\n\nExample:\n```text\n$ terraform state list\ndata.aws_ami.amazon_linux\ndata.aws_availability_zones.available\naws_autoscaling_attachment.terramino\naws_autoscaling_group.terramino\naws_launch_configuration.terramino\naws_lb.terramino\naws_lb_listener.terramino\naws_lb_target_group.terramino\naws_security_group.terramino_instance\naws_security_group.terramino_lb\nmodule.vpc.aws_internet_gateway.this[0]\nmodule.vpc.aws_route.public_internet_gateway[0]\nmodule.vpc.aws_route_table.public[0]\nmodule.vpc.aws_route_table_association.public[0]\nmodule.vpc.aws_route_table_association.public[1]\nmodule.vpc.aws_route_table_association.public[2]\nmodule.vpc.aws_subnet.public[0]\nmodule.vpc.aws_subnet.public[1]\nmodule.vpc.aws_subnet.public[2]\nmodule.vpc.aws_vpc.this[0]\n```\n\nExample:\n```text\nresource \"aws_autoscaling_policy\" \"scale_down\" {\n name = \"terramino_scale_down\"\n autoscaling_group_name = aws_autoscaling_group.terramino.name\n adjustment_type = \"ChangeInCapacity\"\n scaling_adjustment = -1\n cooldown = 120\n}\n\nresource \"aws_cloudwatch_metric_alarm\" \"scale_down\" {\n alarm_description = \"Monitors CPU utilization for Terramino ASG\"\n alarm_actions = [aws_autoscaling_policy.scale_down.arn]\n alarm_name = \"terramino_scale_down\"\n comparison_operator = \"LessThanOrEqualToThreshold\"\n namespace = \"AWS/EC2\"\n metric_name = \"CPUUtilization\"\n threshold = \"10\"\n evaluation_periods = \"2\"\n period = \"120\"\n statistic = \"Average\"\n\n dimensions = {\n AutoScalingGroupName = aws_autoscaling_group.terramino.name\n }\n}\n```\n\nExample:\n```text\n$ terraform apply\nTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\n + create\n\nTerraform will perform the following actions:\n##...\nPlan: 2 to add, 0 to change, 0 to destroy.\n\nDo you want to perform these actions?\n Terraform will perform the actions described above.\n Only 'yes' will be accepted to approve.\n\n Enter a value: yes\n\n##...\n\nApply complete! Resources: 2 added, 0 changed, 0 destroyed.\n\nOutputs:\n\napplication_endpoint = \"learn-asg-terramino-lb-196810715.us-east-2.elb.amazonaws.com/index.php\"\nasg_name = \"terramino\"\nlb_endpoint = \"learn-asg-terramino-lb-196810715.us-east-2.elb.amazonaws.com\"\n```\n\nExample:\n```text\n$ terraform destroy\nTerraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:\n - destroy\n\nTerraform will perform the following actions:\n##...\nPlan: 0 to add, 0 to change, 20 to destroy.\n\nChanges to Outputs:\n - application_endpoint = \"learn-asg-terramino-lb-196810715.us-east-2.elb.amazonaws.com/index.php\" -> null\n - asg_name = \"terramino\" -> null\n - lb_endpoint = \"learn-asg-terramino-lb-196810715.us-east-2.elb.amazonaws.com\" -> null\n\nDo you really want to destroy all resources?\n Terraform will destroy all your managed infrastructure, as shown above.\n There is no undo. Only 'yes' will be accepted to confirm.\n\n Enter a value: yes\n##...\nDestroy complete! Resources: 20 destroyed.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:39.625Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":21,"totalLines":378,"estimatedTokens":2518}}43{"id":"doc-h1_h6_html_section_heading_elements_html_mdn-ce18ce6c","source":"documentation","title":"<h1>–<h6> HTML section heading elements - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/Heading_Elements","text":"Example:\n```text\n<h1>Beetles</h1>\n<h2>External morphology</h2>\n<h3>Head</h3>\n<h4>Mouthparts</h4>\n<h3>Thorax</h3>\n<h4>Prothorax</h4>\n<h4>Pterothorax</h4>\n```\n\nExample:\n```text\nh1,\nh2,\nh3,\nh4 {\n margin: 0.1rem 0;\n}\n\nh1 {\n font-size: 2rem;\n}\n\nh2 {\n font-size: 1.5rem;\n padding-left: 20px;\n}\n\nh3 {\n font-size: 1.2rem;\n padding-left: 40px;\n}\n\nh4 {\n font-size: 1rem;\n font-style: italic;\n padding-left: 60px;\n}\n```\n\nExample:\n```text\nh1 {\n margin-block: 0.67em;\n font-size: 2em;\n}\n```\n\nExample:\n```text\n:where(h1) {\n margin-block: 0.67em;\n font-size: 2em;\n}\n```\n\nExample:\n```text\n<h1>Heading level 1</h1>\n<h3>Heading level 3</h3>\n<h4>Heading level 4</h4>\n```\n\nExample:\n```text\n<h1>Heading level 1</h1>\n<h2>Heading level 2</h2>\n<h3>Heading level 3</h3>\n```\n\nExample:\n```text\n<h1>Beetles</h1>\n\n<h2>Etymology</h2>\n\n<h2>Distribution and Diversity</h2>\n\n<h2>Evolution</h2>\n<h3>Late Paleozoic</h3>\n<h3>Jurassic</h3>\n<h3>Cretaceous</h3>\n<h3>Cenozoic</h3>\n\n<h2>External Morphology</h2>\n<h3>Head</h3>\n<h4>Mouthparts</h4>\n<h3>Thorax</h3>\n<h4>Prothorax</h4>\n<h4>Pterothorax</h4>\n<h3>Legs</h3>\n<h3>Wings</h3>\n<h3>Abdomen</h3>\n```\n\nExample:\n```text\n<h1>Heading level 1</h1>\n<h2>Heading level 2</h2>\n<h3>Heading level 3</h3>\n<h4>Heading level 4</h4>\n<h5>Heading level 5</h5>\n<h6>Heading level 6</h6>\n```\n\nExample:\n```text\n<h1>Heading elements</h1>\n<h2>Summary</h2>\n<p>Some text here…</p>\n\n<h2>Examples</h2>\n<h3>Example 1</h3>\n<p>Some text here…</p>\n\n<h3>Example 2</h3>\n<p>Some text here…</p>\n\n<h2>See also</h2>\n<p>Some text here…</p>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.538Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":124,"estimatedTokens":386}}44{"id":"doc-tbody_html_table_body_element_html_mdn-6ca8d866","source":"documentation","title":"<tbody> HTML table body element - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/tbody","text":"Example:\n```text\n<table>\n <caption>\n Council budget (in £) 2018\n </caption>\n <thead>\n <tr>\n <th scope=\"col\">Items</th>\n <th scope=\"col\">Expenditure</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th scope=\"row\">Donuts</th>\n <td>3,000</td>\n </tr>\n <tr>\n <th scope=\"row\">Stationery</th>\n <td>18,000</td>\n </tr>\n </tbody>\n <tfoot>\n <tr>\n <th scope=\"row\">Totals</th>\n <td>21,000</td>\n </tr>\n </tfoot>\n</table>\n```\n\nExample:\n```text\nthead,\ntfoot {\n background-color: #2c5e77;\n color: white;\n}\n\ntbody {\n background-color: #e4f0f5;\n}\n\ntable {\n border-collapse: collapse;\n border: 2px solid rgb(140 140 140);\n font-family: sans-serif;\n font-size: 0.8rem;\n letter-spacing: 1px;\n}\n\ncaption {\n caption-side: bottom;\n padding: 10px;\n}\n\nth,\ntd {\n border: 1px solid rgb(160 160 160);\n padding: 8px 10px;\n}\n\ntd {\n text-align: center;\n}\n```\n\nExample:\n```text\n<table>\n <tr>\n <td>3741255</td>\n <td>Jones, Martha</td>\n <td>Computer Science</td>\n <td>240</td>\n </tr>\n <tr>\n <td>3971244</td>\n <td>Nim, Victor</td>\n <td>Russian Literature</td>\n <td>220</td>\n </tr>\n <tr>\n <td>4100332</td>\n <td>Petrov, Alexandra</td>\n <td>Astrophysics</td>\n <td>260</td>\n </tr>\n</table>\n```\n\nExample:\n```text\ntbody {\n background-color: #e4f0f5;\n}\n\ntbody > tr > td:last-of-type {\n width: 60px;\n text-align: center;\n}\n```\n\nExample:\n```text\ntable {\n border-collapse: collapse;\n border: 2px solid rgb(140 140 140);\n font-family: sans-serif;\n font-size: 0.8rem;\n letter-spacing: 1px;\n}\n\ntd {\n border: 1px solid rgb(160 160 160);\n padding: 8px 10px;\n}\n```\n\nExample:\n```text\n<table>\n <thead>\n <tr>\n <th>Student ID</th>\n <th>Name</th>\n <th>Major</th>\n <th>Credits</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <td>3741255</td>\n <td>Jones, Martha</td>\n <td>Computer Science</td>\n <td>240</td>\n </tr>\n <tr>\n <td>3971244</td>\n <td>Nim, Victor</td>\n <td>Russian Literature</td>\n <td>220</td>\n </tr>\n <tr>\n <td>4100332</td>\n <td>Petrov, Alexandra</td>\n <td>Astrophysics</td>\n <td>260</td>\n </tr>\n </tbody>\n</table>\n```\n\nExample:\n```text\ntbody {\n background-color: #e4f0f5;\n}\n\ntbody > tr > td:last-of-type {\n text-align: center;\n}\n\nthead {\n border-bottom: 2px solid rgb(160 160 160);\n background-color: #2c5e77;\n color: white;\n}\n```\n\nExample:\n```text\ntable {\n border-collapse: collapse;\n border: 2px solid rgb(140 140 140);\n font-family: sans-serif;\n font-size: 0.8rem;\n letter-spacing: 1px;\n}\n\nth,\ntd {\n border: 1px solid rgb(160 160 160);\n padding: 8px 10px;\n}\n```\n\nExample:\n```text\n<table>\n <thead>\n <tr>\n <th>Student ID</th>\n <th>Name</th>\n <th>Credits</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colspan=\"3\">Computer Science</th>\n </tr>\n <tr>\n <td>3741255</td>\n <td>Jones, Martha</td>\n <td>240</td>\n </tr>\n <tr>\n <td>4077830</td>\n <td>Pierce, Benjamin</td>\n <td>200</td>\n </tr>\n <tr>\n <td>5151701</td>\n <td>Kirk, James</td>\n <td>230</td>\n </tr>\n </tbody>\n <tbody>\n <tr>\n <th colspan=\"3\">Russian Literature</th>\n </tr>\n <tr>\n <td>3971244</td>\n <td>Nim, Victor</td>\n <td>220</td>\n </tr>\n </tbody>\n <tbody>\n <tr>\n <th colspan=\"3\">Astrophysics</th>\n </tr>\n <tr>\n <td>4100332</td>\n <td>Petrov, Alexandra</td>\n <td>260</td>\n </tr>\n <tr>\n <td>8892377</td>\n <td>Toyota, Hiroko</td>\n <td>240</td>\n </tr>\n </tbody>\n</table>\n```\n\nExample:\n```text\ntbody > tr > th {\n border-top: 2px solid rgb(160 160 160);\n border-bottom: 1px solid rgb(140 140 140);\n background-color: #e4f0f5;\n font-weight: normal;\n}\n\ntbody {\n background-color: whitesmoke;\n}\n\nthead {\n background-color: #2c5e77;\n color: white;\n}\n```\n\nExample:\n```text\ntable {\n border-collapse: collapse;\n border: 2px solid rgb(140 140 140);\n font-family: sans-serif;\n font-size: 0.8rem;\n letter-spacing: 1px;\n}\n\nth,\ntd {\n border: 1px solid rgb(160 160 160);\n padding: 6px 8px;\n text-align: left;\n}\n\ntbody > tr > td:last-of-type {\n text-align: center;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.571Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":287,"estimatedTokens":1052}}45{"id":"doc-list_all_users-0c37563b","source":"documentation","title":"List all users","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/user/other/listusers","text":"Example:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/api/v1/users?search=status%20eq%20%22STAGED%22&filter=status%20eq%20%22LOCKED_OUT%22&q=string&after=string&limit=200&sortBy=string&sortOrder=asc&fields=id%2Cstatus%2Cprofile%3A(firstName%2ClastName%2Ccity)&expand=classification' \\\n -H 'Content-Type: application/json; okta-response=omitCredentials,omitCredentialsLinks'\n```\n\nExample:\n```text\n[\n {\n \"id\": \"00u118oQYT4TBTemp0g4\",\n \"status\": \"ACTIVE\",\n \"created\": \"2022-04-04T15:56:05.000Z\",\n \"activated\": null,\n \"statusChanged\": null,\n \"lastLogin\": \"2022-05-04T19:50:52.000Z\",\n \"lastUpdated\": \"2022-05-05T18:15:44.000Z\",\n \"passwordChanged\": \"2022-04-04T16:00:22.000Z\",\n \"type\": { … },\n \"profile\": { … },\n \"credentials\": { … },\n \"_links\": { … }\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.715Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":28,"estimatedTokens":205}}46{"id":"doc-li_html_list_item_element_html_mdn-b78c32c0","source":"documentation","title":"<li> HTML list item element - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/li","text":"Example:\n```text\n<p>Apollo astronauts:</p>\n\n<ul>\n <li>Neil Armstrong</li>\n <li>Alan Bean</li>\n <li>Peter Conrad</li>\n <li>Edgar Mitchell</li>\n <li>Alan Shepard</li>\n</ul>\n```\n\nExample:\n```text\np,\nli {\n font:\n 1rem \"Fira Sans\",\n sans-serif;\n}\n\np {\n font-weight: bold;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.649Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":28,"estimatedTokens":75}}47{"id":"doc-add_a_hitmap_on_top_of_an_image_html_mdn-031c89ba","source":"documentation","title":"Add a hitmap on top of an image - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/How_to/Add_a_hit_map_on_top_of_an_image","text":"Example:\n```text\n<img src=\"image-map.png\" alt=\"\" usemap=\"#example-map-1\" />\n```\n\nExample:\n```text\n<map name=\"example-map-1\"> </map>\n```\n\nExample:\n```text\n<map name=\"example-map-1\">\n <area\n shape=\"circle\"\n coords=\"200,250,25\"\n href=\"page-2.html\"\n alt=\"circle example\" />\n\n <area\n shape=\"rect\"\n coords=\"10, 5, 20, 15\"\n href=\"page-3.html\"\n alt=\"rectangle example\" />\n</map>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.658Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":28,"estimatedTokens":104}}48{"id":"doc-set_svg_mdn-8e68df31","source":"documentation","title":"<set> - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/set","text":"Example:\n```text\nhtml,\nbody,\nsvg {\n height: 100%;\n}\n```\n\nExample:\n```text\n<svg viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n <style>\n rect {\n cursor: pointer;\n }\n .round {\n rx: 5px;\n fill: green;\n }\n </style>\n\n <rect id=\"me\" width=\"10\" height=\"10\">\n <set attributeName=\"class\" to=\"round\" begin=\"me.click\" dur=\"2s\" />\n </rect>\n</svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.673Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":29,"estimatedTokens":99}}49{"id":"doc-symbol_svg_mdn-0384ccb4","source":"documentation","title":"<symbol> - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/symbol","text":"Example:\n```text\nhtml,\nbody,\nsvg {\n height: 100%;\n}\n```\n\nExample:\n```text\n<svg viewBox=\"0 0 80 20\" xmlns=\"http://www.w3.org/2000/svg\">\n <!-- Our symbol in its own coordinate system -->\n <symbol id=\"myDot\" width=\"10\" height=\"10\" viewBox=\"0 0 2 2\">\n <circle cx=\"1\" cy=\"1\" r=\"1\" />\n </symbol>\n\n <!-- A grid to materialize our symbol positioning -->\n <path\n d=\"M0,10 h80 M10,0 v20 M25,0 v20 M40,0 v20 M55,0 v20 M70,0 v20\"\n fill=\"none\"\n stroke=\"pink\" />\n\n <!-- All instances of our symbol -->\n <use href=\"#myDot\" x=\"5\" y=\"5\" opacity=\"1.0\" />\n <use href=\"#myDot\" x=\"20\" y=\"5\" opacity=\"0.8\" />\n <use href=\"#myDot\" x=\"35\" y=\"5\" opacity=\"0.6\" />\n <use href=\"#myDot\" x=\"50\" y=\"5\" opacity=\"0.4\" />\n <use href=\"#myDot\" x=\"65\" y=\"5\" opacity=\"0.2\" />\n</svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.675Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":33,"estimatedTokens":197}}50{"id":"doc-by_svg_mdn-8297ff3a","source":"documentation","title":"by - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/by","text":"Example:\n```text\nhtml,\nbody,\nsvg {\n height: 100%;\n}\n```\n\nExample:\n```text\n<svg viewBox=\"0 0 200 200\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"10\" y=\"10\" width=\"100\" height=\"100\">\n <animate attributeName=\"width\" fill=\"freeze\" by=\"50\" dur=\"3s\" />\n </rect>\n</svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.684Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":19,"estimatedTokens":73}}51{"id":"doc-fegaussianblur_svg_mdn-75883fc9","source":"documentation","title":"<feGaussianBlur> - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/feGaussianBlur","text":"Example:\n```text\n<filter x=\"-30%\" y=\"-30%\" width=\"160%\" height=\"160%\">\n```\n\nExample:\n```text\n<svg\n width=\"230\"\n height=\"120\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <filter id=\"blurMe\">\n <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"5\" />\n </filter>\n\n <circle cx=\"60\" cy=\"60\" r=\"50\" fill=\"green\" />\n\n <circle cx=\"170\" cy=\"60\" r=\"50\" fill=\"green\" filter=\"url(#blurMe)\" />\n</svg>\n```\n\nExample:\n```text\n<svg\n width=\"120\"\n height=\"120\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <filter id=\"dropShadow\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"3\" />\n <feOffset dx=\"2\" dy=\"4\" />\n <feMerge>\n <feMergeNode />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n\n <circle cx=\"60\" cy=\"60\" r=\"50\" fill=\"green\" filter=\"url(#dropShadow)\" />\n</svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.689Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":43,"estimatedTokens":223}}52{"id":"doc-svg_filters_svg_mdn-58d21803","source":"documentation","title":"SVG filters - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Guides/SVG_filters","text":"Example:\n```text\n<defs>\n <filter id=\"drop-shadow\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"3\" />\n </filter>\n</defs>\n\n<g id=\"ghost\" filter=\"url(#drop-shadow)\">\n <!--Ghost drawing in here-->\n</g>\n```\n\nExample:\n```text\n<defs>\n <filter id=\"drop-shadow\">\n <feGaussianBlur in=\"SourceAlpha\" stdDeviation=\"3\" result=\"blur\" />\n <feoffset in=\"blur\" dx=\"4\" dy=\"4\" result=\"offsetBlur\" />\n <feMerge>\n <feMergeNode in=\"offsetBlur\" />\n <feMergeNode in=\"SourceGraphic\" />\n </feMerge>\n </filter>\n</defs>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.693Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":28,"estimatedTokens":136}}53{"id":"doc-foreignobject_svg_mdn-e172bf7f","source":"documentation","title":"<foreignObject> - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Element/foreignObject","text":"Example:\n```text\nhtml,\nbody,\nsvg {\n height: 100%;\n}\n```\n\nExample:\n```text\n<svg viewBox=\"0 0 200 200\" xmlns=\"http://www.w3.org/2000/svg\">\n <style>\n div {\n color: white;\n font: 18px serif;\n height: 100%;\n overflow: auto;\n }\n </style>\n\n <polygon points=\"5,5 195,10 185,185 10,195\" />\n\n <!-- Common use case: embed HTML text into SVG -->\n <foreignObject x=\"20\" y=\"20\" width=\"160\" height=\"160\">\n <!--\n In the context of SVG embedded in an HTML document, the XHTML\n namespace could be omitted, but it is mandatory in the\n context of an SVG document\n -->\n <div xmlns=\"http://www.w3.org/1999/xhtml\">\n Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed mollis mollis\n mi ut ultricies. Nullam magna ipsum, porta vel dui convallis, rutrum\n imperdiet eros. Aliquam erat volutpat.\n </div>\n </foreignObject>\n</svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.721Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":40,"estimatedTokens":226}}54{"id":"doc-direction_svg_mdn-38bf8bb6","source":"documentation","title":"direction - SVG | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/SVG/Reference/Attribute/direction","text":"Example:\n```text\nhtml,\nbody,\nsvg {\n height: 100%;\n}\n```\n\nExample:\n```text\n<svg\n viewBox=\"0 0 600 72\"\n xmlns=\"http://www.w3.org/2000/svg\"\n direction=\"rtl\"\n lang=\"fa\">\n <text x=\"300\" y=\"50\" text-anchor=\"middle\" font-size=\"36\">\n داستان SVG 1.1 SE طولا ني است.\n </text>\n</svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.729Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":23,"estimatedTokens":75}}55{"id":"doc-retrieve_an_application-5af2db58","source":"documentation","title":"Retrieve an application","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/application/other/getapplication","text":"Example:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/api/v1/apps/0oafxqCAJWWGELFTYASJ?expand=user%2F0oa1gjh63g214q0Hq0g4'\n```\n\nExample:\n```text\n{\n \"id\": \"0oa1gjh63g214q0Hq0g4\",\n \"name\": \"testorgone_customsaml20app_1\",\n \"orn\": \"orn:okta:idp:00o1n8sbwArJ7OQRw406:apps:testorgone_customsaml20app_1:0oa1gjh63g214q0Hq0g4\",\n \"label\": \"Custom Saml 2.0 App\",\n \"status\": \"ACTIVE\",\n \"lastUpdated\": \"2016-08-09T20:12:19.000Z\",\n \"created\": \"2016-08-09T20:12:19.000Z\",\n \"accessibility\": {\n \"selfService\": false,\n \"errorRedirectUrl\": null,\n \"loginRedirectUrl\": null\n },\n \"visibility\": {\n \"autoSubmitToolbar\": false,\n \"hide\": { … },\n \"appLinks\": { … }\n },\n \"features\": [],\n \"signOnMode\": \"SAML_2_0\",\n \"credentials\": {\n \"userNameTemplate\": { … },\n \"signing\": {}\n },\n \"settings\": {\n \"app\": {},\n \"notifications\": { … },\n \"signOn\": { … }\n },\n \"universalLogout\": {\n \"status\": \"ENABLED\",\n \"supportType\": \"FULL\",\n \"identityStack\": \"NOT_SHARED\",\n \"protocol\": \"GLOBAL_TOKEN_REVOCATION\"\n },\n \"expressConfiguration\": {\n \"supportedCapabilities\": [ … ],\n \"enabledCapabilities\": [ … ]\n },\n \"_links\": {\n \"logo\": [ … ],\n \"appLinks\": [ … ],\n \"help\": { … },\n \"users\": { … },\n \"deactivate\": { … },\n \"groups\": { … },\n \"metadata\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.844Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":60,"estimatedTokens":333}}56{"id":"doc-validate_access_tokens_okta_developer-3776b4bd","source":"documentation","title":"Validate Access Tokens | Okta Developer","url":"https://developer.okta.com/docs/guides/validate-access-tokens/python/main/","text":"Example:\n```sh\npip install okta-jwt-verifier\n```\n\nExample:\n```py\nimport asyncio\n\nfrom okta_jwt_verifier import JWTVerifier\n\n\nasync def main():\n jwt_verifier = JWTVerifier('{ISSUER}', '{CLIENT_ID}', 'api://default')\n await jwt_verifier.verify_access_token('{JWT}')\n print('Token validated successfully.')\n\n\nloop = asyncio.get_event_loop()\nloop.run_until_complete(main())\n```\n\nExample:\n```py\njwt_verifier = JWTVerifier('{ISSUER}', '{CLIENT_ID}', 'api://default', leeway=60)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.852Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":28,"estimatedTokens":125}}57{"id":"doc-create_an_org-c67c14e9","source":"documentation","title":"Create an org","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/orgcreator/other/createchildorg","text":"Example:\n```text\ncurl -i -X POST \\\n https://subdomain.okta.com/api/v1/orgs \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"subdomain\": \"my-child-org-1\",\n \"name\": \"My Child Org 1\",\n \"website\": \"http://www.examplecorp.com\",\n \"edition\": \"SKU\",\n \"admin\": {\n \"profile\": {\n \"firstName\": \"First\",\n \"lastName\": \"Last\",\n \"email\": \"FirstLast@example.com\",\n \"login\": \"FirstLast@example.com\",\n \"mobilePhone\": null\n },\n \"credentials\": {\n \"password\": {\n \"value\": \"XXXX\"\n }\n }\n }\n }'\n```\n\nExample:\n```text\n{\n \"id\": \"00o1n8sbwArJ7OQRw406\",\n \"subdomain\": \"my-child-org-1\",\n \"name\": \"My Child Org 1\",\n \"website\": \"http://www.examplecorp.com\",\n \"status\": \"ACTIVE\",\n \"edition\": \"SKU\",\n \"expiresAt\": null,\n \"created\": \"2024-08-27T15:42:52.000Z\",\n \"lastUpdated\": \"2024-08-27T15:42:56.000Z\",\n \"licensing\": {\n \"apps\": []\n },\n \"settings\": {\n \"app\": { … },\n \"userAccount\": { … },\n \"portal\": { … },\n \"logs\": { … }\n },\n \"token\": \"XXXXXXXXXXXXX\",\n \"tokenType\": \"SSWS\",\n \"_links\": {\n \"administrator\": { … },\n \"uploadLogo\": { … },\n \"organization\": { … },\n \"contacts\": { … },\n \"policy\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.857Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":61,"estimatedTokens":308}}58{"id":"doc-protect_your_api_endpoints_okta_developer-31580660","source":"documentation","title":"Protect your API endpoints | Okta Developer","url":"https://developer.okta.com/docs/guides/protect-your-api/nodeexpress/main/","text":"Example:\n```shell\ncd test-api\nnpm init\n```\n\nExample:\n```shell\nnpm install express\n```\n\nExample:\n```js\nconst express = require('express');\nconst app = express();\nconst port = 3000;\n\napp\n .listen(port, () => console.log('API listening on port ' + port));\n```\n\nExample:\n```shell\nnpm install @okta/jwt-verifier\n```\n\nExample:\n```js\nconst OktaJwtVerifier = require('@okta/jwt-verifier');\nconst oktaJwtVerifier = new OktaJwtVerifier({\n issuer: 'https://{yourOktaDomain}/oauth2/{yourAuthServerName}'\n});\nconst audience = '{yourAudience}';\n```\n\nExample:\n```js\napp.get('/api/hello', (req, res) => {\n res.send('Hello world!');\n});\n\napp.get('/api/whoami', (req, res) => {\n res.json(req.jwt?.claims);\n});\n```\n\nExample:\n```js\nconst authenticationRequired = async (req, res, next) => {\n const authHeader = req.headers.authorization || '';\n const match = authHeader.match(/Bearer (.+)/);\n if (!match) {\n return res.status(401).send();\n }\n\n try {\n const accessToken = match[1];\n if (!accessToken) {\n return res.status(401, 'Not authorized').send();\n }\n req.jwt = await oktaJwtVerifier.verifyAccessToken(accessToken, audience);\n next();\n } catch (err) {\n return res.status(401).send(err.message);\n }\n};\n```\n\nExample:\n```js\napp.all('*', authenticationRequired);\n```\n\nExample:\n```js\napp.get('/api/whoami', authenticationRequired, (req, res) => {\n res.json(req.jwt?.claims);\n});\n```\n\nExample:\n```shell\nnpm install cors\n```\n\nExample:\n```js\nconst cors = require('cors');\n```\n\nExample:\n```js\napp\n .use(cors())\n .listen(port, () => console.log('API listening on port ' + port));\n```\n\nExample:\n```shell\nnode index.js\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.858Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":13,"totalLines":103,"estimatedTokens":414}}59{"id":"doc-self_service_registration_okta_developer-fc1fb9e2","source":"documentation","title":"Self-service registration | Okta Developer","url":"https://developer.okta.com/docs/guides/oie-embedded-sdk-use-case-self-reg/-/main/","text":"Example:\n```kotlin\nval beginResponse = idxAuthenticationWrapper.begin()\n```\n\nExample:\n```kotlin\nval beginProceedContext = beginResponse.getProceedContext()\nval newUserRegistrationResponse = idxAuthenticationWrapper.fetchSignUpFormValues(beginProceedContext)\n```\n\nExample:\n```kotlin\nval userProfile = UserProfile()\nuserProfile.addAttribute(\"lastName\", lastname)\nuserProfile.addAttribute(\"firstName\", firstname)\nuserProfile.addAttribute(\"email\", email)\n\nval proceedContext = newUserRegistrationResponse.getProceedContext()\n\nval authenticationResponse = idxAuthenticationWrapper.register(proceedContext, userProfile)\n```\n\nExample:\n```kotlin\nval authenticators = authenticationResponse.authenticators\n```\n\nExample:\n```kotlin\nval authenticationResponse = idxAuthenticationWrapper.selectAuthenticator(proceedContext, authenticator)\n```\n\nExample:\n```kotlin\nval verifyAuthenticatorOptions = VerifyAuthenticatorOptions(newPassword)\nval authenticationResponse = idxAuthenticationWrapper.verifyAuthenticator(proceedContext, verifyAuthenticatorOptions)\n```\n\nExample:\n```kotlin\nval verifyAuthenticatorOptions = VerifyAuthenticatorOptions(code)\nval authenticationResponse =\n idxAuthenticationWrapper.verifyAuthenticator(proceedContext, verifyAuthenticatorOptions)\n```\n\nExample:\n```kotlin\nval authenticationResponse = idxAuthenticationWrapper.skipAuthenticatorEnrollment(proceedContext)\n```\n\nExample:\n```kotlin\nval authenticationResponse =\n idxAuthenticationWrapper.verifyAuthenticator(proceedContext, verifyAuthenticatorOptions)\n```\n\nExample:\n```kotlin\nval authenticationResponse =\n idxAuthenticationWrapper.submitPhoneAuthenticator(proceedContext, phone, factor)\n```\n\nExample:\n```kotlin\nval response = authenticationWrapper.resend(proceedContext)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.859Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":69,"estimatedTokens":440}}60{"id":"doc-input_type_submit_html_attribute_value_html_mdn-c94c7f8b","source":"documentation","title":"<input type=\"submit\"> HTML attribute value - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/submit","text":"Example:\n```text\n<input type=\"submit\" value=\"Send Request\" />\n```\n\nExample:\n```text\n<input type=\"submit\" />\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"example\">Let's submit some text</label>\n <input id=\"example\" type=\"text\" name=\"text\" />\n </div>\n <div>\n <input type=\"submit\" value=\"Send\" />\n </div>\n</form>\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"example\">Let's submit some text</label>\n <input id=\"example\" type=\"text\" name=\"text\" />\n </div>\n <div>\n <input type=\"submit\" value=\"Send\" accesskey=\"s\" />\n </div>\n</form>\n```\n\nExample:\n```text\n<input type=\"submit\" value=\"Send\" disabled />\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.764Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":42,"estimatedTokens":162}}61{"id":"doc-input_type_text_html_attribute_value_html_mdn-04d12b47","source":"documentation","title":"<input type=\"text\"> HTML attribute value - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/input/text","text":"Example:\n```text\n<label for=\"name\">Name (4 to 8 characters):</label>\n\n<input\n type=\"text\"\n id=\"name\"\n name=\"name\"\n required\n minlength=\"4\"\n maxlength=\"8\"\n size=\"10\" />\n```\n\nExample:\n```text\nlabel {\n display: block;\n font:\n 1rem \"Fira Sans\",\n sans-serif;\n}\n\ninput,\nlabel {\n margin: 0.4rem 0;\n}\n```\n\nExample:\n```javascript\nlet theText = myTextInput.value;\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"uname\">Choose a username: </label>\n <input type=\"text\" id=\"uname\" name=\"name\" />\n </div>\n <div>\n <button>Submit</button>\n </div>\n</form>\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"uname\">Choose a username: </label>\n <input\n type=\"text\"\n id=\"uname\"\n name=\"name\"\n placeholder=\"Lower case, all one word\" />\n </div>\n <div>\n <button>Submit</button>\n </div>\n</form>\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"uname\">Choose a username: </label>\n <input\n type=\"text\"\n id=\"uname\"\n name=\"name\"\n placeholder=\"Lower case, all one word\"\n size=\"30\" />\n </div>\n <div>\n <button>Submit</button>\n </div>\n</form>\n```\n\nExample:\n```text\ndiv {\n margin-bottom: 10px;\n position: relative;\n}\n\ninput + span {\n padding-right: 30px;\n}\n\ninput:invalid + span::after {\n position: absolute;\n content: \"✖\";\n padding-left: 5px;\n}\n\ninput:valid + span::after {\n position: absolute;\n content: \"✓\";\n padding-left: 5px;\n}\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"uname\">Choose a username: </label>\n <input type=\"text\" id=\"uname\" name=\"name\" required />\n <span class=\"validity\"></span>\n </div>\n <div>\n <button>Submit</button>\n </div>\n</form>\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"uname\">Choose a username: </label>\n <input\n type=\"text\"\n id=\"uname\"\n name=\"name\"\n required\n size=\"10\"\n placeholder=\"Username\"\n minlength=\"4\"\n maxlength=\"8\" />\n <span class=\"validity\"></span>\n </div>\n <div>\n <button>Submit</button>\n </div>\n</form>\n```\n\nExample:\n```text\n<form>\n <div>\n <label for=\"uname\">Choose a username: </label>\n <input\n type=\"text\"\n id=\"uname\"\n name=\"name\"\n required\n size=\"45\"\n pattern=\"[a-z]{4,8}\" />\n <span class=\"validity\"></span>\n <p>Usernames must be lowercase and 4-8 characters in length.</p>\n </div>\n <div>\n <button>Submit</button>\n </div>\n</form>\n```\n\nExample:\n```text\ndiv {\n margin-bottom: 10px;\n position: relative;\n}\n\np {\n font-size: 80%;\n color: #999999;\n}\n\ninput + span {\n padding-right: 30px;\n}\n\ninput:invalid + span::after {\n position: absolute;\n content: \"✖\";\n padding-left: 5px;\n}\n\ninput:valid + span::after {\n position: absolute;\n content: \"✓\";\n padding-left: 5px;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.774Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":193,"estimatedTokens":685}}62{"id":"doc-meta_http_equiv_html_attribute_html_mdn-8f38392c","source":"documentation","title":"<meta http-equiv> HTML attribute - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta/http-equiv","text":"Example:\n```text\n<meta http-equiv=\"Refresh\" content=\"300\" />\n```\n\nExample:\n```text\n<meta http-equiv=\"Content-Security-Policy\" content=\"default-src https:\" />\n```\n\nExample:\n```text\nContent-Security-Policy: default-src https:\n```\n\nExample:\n```text\n<meta http-equiv=\"refresh\" content=\"3;url=https://www.mozilla.org\" />\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.779Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":21,"estimatedTokens":84}}63{"id":"doc-rel_prefetch_html_attribute_value_html_mdn-0f32a4e5","source":"documentation","title":"rel=\"prefetch\" HTML attribute value - HTML | MDN","url":"https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel/prefetch","text":"Example:\n```javascript\n<link rel=\"prefetch\" href=\"main.js\" />\n```\n\nExample:\n```text\n<link rel=\"prefetch\" href=\"/app/style.css\" />\n<link rel=\"prefetch\" href=\"/landing-page\" />\n```\n\nExample:\n```text\n<link rel=\"prefetch\" href=\"https://news.example/article\" />\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T10:42:06.784Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":17,"estimatedTokens":69}}64{"id":"doc-list_all_supported_security_questions-16e8a95a","source":"documentation","title":"List all supported security questions","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/userfactor/other/listsupportedsecurityquestions","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/api/v1/users/00ub0oNGTSWTBKOLGLNR/factors/questions\n```\n\nExample:\n```text\n[\n {\n \"question\": \"disliked_food\",\n \"questionText\": \"What is the food you least liked as a child?\"\n },\n {\n \"question\": \"name_of_first_plush_toy\",\n \"questionText\": \"What is the name of your first stuffed animal?\"\n },\n {\n \"question\": \"first_award\",\n \"questionText\": \"What did you earn your first medal or award for?\"\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.874Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":25,"estimatedTokens":125}}65{"id":"doc-load_the_widget_okta_developer-9cc11762","source":"documentation","title":"Load the widget | Okta Developer","url":"https://developer.okta.com/docs/guides/oie-embedded-widget-use-case-load/nodejs/main/","text":"Example:\n```html\n<script src=\"https://global.oktacdn.com/okta-signin-widget/7.48.2/js/okta-sign-in.min.js\" type=\"text/javascript\"></script>\n<link href=\"https://global.oktacdn.com/okta-signin-widget/7.48.2/css/okta-sign-in.min.css\" type=\"text/css\" rel=\"stylesheet\"/>\n```\n\nExample:\n```html\n<div id=\"content\" class=\"ui padded relaxed\">\n\n {{>formMessages}}\n\n <div id=\"okta-signin-widget-container\"></div>\n\n <script type=\"text/javascript\">\n const widgetConfig = {{{widgetConfig}}};\n const signIn = new OktaSignIn({\n el: '#okta-signin-widget-container',\n ...widgetConfig\n });\n\n // Search for URL Parameters to see if a user is being routed to the application to recover password\n var searchParams = new URL(window.location.href).searchParams;\n signIn.otp = searchParams.get('otp');\n signIn.state = searchParams.get('state');\n\n signIn.showSignInAndRedirect()\n .catch(err => {\n console.log('Error happen in showSignInAndRedirect: ', err);\n });\n </script>\n\n</div>\n```\n\nExample:\n```javascript\nconsole.log('renderLoginWithWidget: using interaction handle: ', interactionHandle);\n const { clientId, redirectUri, issuer, scopes } = getConfig().webServer.oidc;\n const widgetConfig = {\n baseUrl: issuer.split('/oauth2')[0],\n clientId: clientId,\n redirectUri: redirectUri,\n authParams: {\n issuer: issuer,\n scopes: scopes,\n },\n state,\n otp,\n interactionHandle,\n codeChallenge,\n codeChallengeMethod,\n };\n```\n\nExample:\n```javascript\nres.render('login', {\n siwVersion: '{widgetVersion}',\n widgetConfig: JSON.stringify(widgetConfig),\n });\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.877Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":64,"estimatedTokens":443}}66{"id":"doc-download_and_set_up_the_sdk_sign_in_widget_and_s-e3ea977b","source":"documentation","title":"Download and set up the SDK, Sign-In Widget, and sample apps | Okta Developer","url":"https://developer.okta.com/docs/guides/oie-embedded-common-download-setup-app/react/main/","text":"Example:\n```shell\ngit clone https://github.com/okta/okta-auth-js.git\n```\n\nExample:\n```javascript\nconst appConfig = {\n \"clientId\": \"0oa1kelclsb...\",\n \"issuer\": \"https://{yourOktaDomain}/oauth2/default\",\n \"redirectUri\": \"http://app.example.com/login/callback\",\n \"scopes\": [\n \"openid\",\n \"profile\",\n ...\n ],\n \"pkce\": true\n };\n```\n\nExample:\n```javascript\nconst oktaAuth = (() => {\n return new OktaAuth(appConfig);\n})();\n```\n\nExample:\n```javascript\nexport default {\n clientId: `0oa1kelclsb...`,\n issuer: `https://{yourOktaDomain}/oauth2/default`,\n redirectUri: `{window.location.origin}/login/callback`,\n scopes: [\n 'openid',\n 'profile',\n ...\n ],\n pkce: true\n};\n```\n\nExample:\n```javascript\nimport appConfig from './config';\n\nconst oktaAuth = (() => {\n return new OktaAuth(appConfig);\n})();\n```\n\nExample:\n```yaml\nISSUER=https://{yourOktaDomain}/oauth2/default\nCLIENT_ID=0oa1kelclsb...\n...\n```\n\nExample:\n```shell\n# Run this command in your project root folder.\n# yarn\nyarn add @okta/okta-auth-js\n\n# npm\nnpm install --save @okta/okta-auth-js\n```\n\nExample:\n```javascript\nconst oktaAuth = new OktaAuth({\n // config\n})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.881Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":76,"estimatedTokens":296}}67{"id":"doc-userinfo-7ebe1404","source":"documentation","title":"/userinfo","url":"https://developer.okta.com/docs/api/openapi/okta-oauth/oauth/customas/userinfocustomas","text":"Example:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/oauth2/{authorizationServerId}/v1/userinfo'\n```\n\nExample:\n```text\n{\n \"sub\": \"00uid4BxXw6I6TV4m0g3\",\n \"name\": \"John Doe\",\n \"nickname\": \"Jimmy\",\n \"given_name\": \"John\",\n \"middle_name\": \"James\",\n \"family_name\": \"Doe\",\n \"profile\": \"https://example.com/john.doe\",\n \"zoneinfo\": \"America/Los_Angeles\",\n \"locale\": \"en-US\",\n \"updated_at\": 1311280970,\n \"email\": \"john.doe@example.com\",\n \"email_verified\": true,\n \"address\": {\n \"street_address\": \"123 Hollywood Blvd.\",\n \"locality\": \"Los Angeles\",\n \"region\": \"CA\",\n \"postal_code\": \"90210\",\n \"country\": \"US\"\n },\n \"phone_number\": \"+1 (425) 555-1212\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.888Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":33,"estimatedTokens":175}}68{"id":"doc-well_known_apple_app_site_association-40f449b4","source":"documentation","title":"/.well-known/apple-app-site-association","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/associateddomaincustomizations/paths/~1.well-known~1apple-app-site-association/x-okta-lifecycle","text":"Example:\n```text\ncurl -i -X X-OKTA-LIFECYCLE \\\n https://subdomain.okta.com/.well-known/apple-app-site-association\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.889Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":7,"estimatedTokens":33}}69{"id":"doc-retrieve_the_customized_apple_app_site_associati-492e6e67","source":"documentation","title":"Retrieve the customized apple-app-site-association URI content","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/associateddomaincustomizations/other/getappleappsiteassociationwellknownuri","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/.well-known/apple-app-site-association\n```\n\nExample:\n```text\n{\n \"authsrv\": {\n \"apps\": [ … ],\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.889Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":19,"estimatedTokens":62}}70{"id":"doc-retrieve_the_well_known_uri_of_a_specific_brand-8afd090b","source":"documentation","title":"Retrieve the well-known URI of a specific brand","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/associateddomaincustomizations/other/getrootbrandwellknownuri","text":"Example:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/api/v1/brands/{brandId}/well-known-uris/{path}?expand=customized'\n```\n\nExample:\n```text\n{\n \"_links\": {\n \"self\": { … },\n \"customized\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.899Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":17,"estimatedTokens":59}}71{"id":"doc-build_a_scim_2_0_server_with_entitlements_okta_d-ccabe268","source":"documentation","title":"Build a SCIM 2.0 server with entitlements | Okta Developer","url":"https://developer.okta.com/docs/guides/scim-with-entitlements/main/","text":"Example:\n```json\n{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\n ],\n \"totalResults\": 3,\n \"startIndex\": 1,\n \"itemsPerPage\": 3,\n \"Resources\": [\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:ResourceType\"\n ],\n \"id\": \"Role\",\n \"name\": \"Role\",\n \"endpoint\": \"/Roles\",\n \"description\": \"Role\",\n \"schema\": \"urn:okta:scim:schemas:core:1.0:Role\",\n \"meta\": {\n \"location\": \"https://example.com/v2/ResourceTypes/Role\",\n \"resourceType\": \"ResourceType\"\n }\n },\n\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:ResourceType\"\n ],\n \"id\": \"Entitlement\",\n \"name\": \"Entitlement\",\n \"description\": \"Entitlement resource\",\n \"endpoint\": \"/Entitlements\",\n \"schema\": \"urn:okta:scim:schemas:core:1.0:Entitlement\",\n \"meta\": {\n \"location\": \"https://example.com/v2/ResourceTypes/Entitlement\",\n \"resourceType\": \"ResourceType\"\n }\n },\n\n {\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:ResourceType\"\n ],\n \"id\": \"Profile\",\n \"name\": \"Profile\",\n \"endpoint\": \"/Profiles\",\n \"description\": \"Profile\",\n \"schema\": \"urn:okta:scim:schemas:core:1.0:Entitlement\",\n \"schemaExtensions\": [\n {\n \"schema\": \"urn:isvname:scim:schemas:extension:appname:1.0:Profile\",\n \"required\": true\n }\n ],\n \"meta\": {\n \"location\": \"https://example.com/v2/ResourceTypes/Profile\",\n \"resourceType\": \"ResourceType\"\n }\n }\n ]\n}\n```\n\nExample:\n```json\n{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\n ],\n \"totalResults\": 1,\n \"startIndex\": 1,\n \"itemsPerPage\": 1,\n \"Resources\": [\n {\n \"id\": \"urn:isvname:scim:schemas:extension:appname:1.0:Profile\",\n \"name\": \"Profile\",\n \"description\": \"An example of a Profile Entitlement schema extension\",\n \"attributes\": [\n {\n \"name\": \"customProfileProperty\",\n \"type\": \"string\",\n \"multiValued\": false,\n \"description\": \"A Profile Entitlement extension field\",\n \"required\": false,\n \"caseExact\": false,\n \"mutability\": \"readWrite\",\n \"returned\": \"default\",\n \"uniqueness\": \"none\"\n }\n ],\n \"meta\": {\n \"resourceType\": \"Schema\",\n \"location\": \"/v2/Schemas/urn:isvname:scim:schemas:extension:appname:1.0:Profile\"\n }\n }\n ]\n}\n```\n\nExample:\n```json\n{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\n ],\n \"totalResults\": 2,\n \"startIndex\": 1,\n \"itemsPerPage\": 2,\n \"Resources\": [\n {\n \"schemas\": [\n \"urn:okta:scim:schemas:core:1.0:Entitlement\",\n \"urn:<isvname>:scim:schemas:extension:<appname>:1.0:Profile\"\n ],\n \"type\": \"Profile\",\n \"id\": \"profile-123\",\n \"displayName\": \"Profile 123\",\n \"description\": \"Sample text description for Profile 123\",\n \"urn:<isvname>:scim:schemas:extension:<appname>:1.0:Profile\": {\n \"customProfileProperty\": \"test-value\"\n }\n },\n {\n \"schemas\": [\n \"urn:okta:scim:schemas:core:1.0:Entitlement\",\n \"urn:<isvname>:scim:schemas:extension:<appname>:1.0:Profile\"\n ],\n \"type\": \"Profile\",\n \"id\": \"profile-321\",\n \"displayName\": \"Profile 321\",\n \"urn:<isvname>:scim:schemas:extension:<appname>:1.0:Profile\": {\n \"customProfileProperty\": \"test-value\"\n }\n }\n ]\n}\n```\n\nExample:\n```json\n{\n \"schemas\": [\n \"urn:ietf:params:scim:api:messages:2.0:ListResponse\"\n ],\n \"totalResults\": 2,\n \"startIndex\": 1,\n \"itemsPerPage\": 2,\n \"Resources\": [\n {\n \"schemas\": [\n \"urn:okta:scim:schemas:core:1.0:Role\"\n ],\n \"id\": \"role-1\",\n \"displayName\": \"First Role\",\n \"description\": \"Sample text description of First Role\"\n },\n {\n \"schemas\": [\n \"urn:okta:scim:schemas:core:1.0:Role\"\n ],\n \"id\": \"role-2\",\n \"displayName\": \"Second Role\",\n \"description\": \"Sample text description of Second Role\"\n }\n ]\n}\n```\n\nExample:\n```json\n{\n \"schemas\": [\n \"urn:ietf:params:scim:schemas:core:2.0:User\",\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\"\n ],\n \"id\": \"2819c223-7f76-453a-919d-413861904646\",\n \"externalId\": 701984,\n \"userName\": \"bjensen@example.com\",\n \"name\": null,\n \"formatted\": \"Ms. Barbara J Jensen, III\",\n \"familyName\": \"Jensen\",\n \"givenName\": \"Barbara\",\n \"middleName\": \"Jane\",\n \"honorificPrefix\": \"Ms.\",\n \"honorificSuffix\": \"III\",\n \"displayName\": \"Babs Jensen\",\n \"nickName\": \"Babs\",\n \"profileUrl\": \"https://login.example.com/bjensen\",\n \"emails\": [\n {\n \"value\": \"bjensen@example.com\",\n \"type\": \"work\",\n \"primary\": true\n },\n {\n \"value\": \"babs@jensen.org\",\n \"type\": \"home\"\n }\n ],\n \"addresses\": [\n {\n \"type\": \"work\",\n \"streetAddress\": \"100 Universal City Plaza\",\n \"locality\": \"Hollywood\",\n \"region\": \"CA\",\n \"postalCode\": 91608,\n \"country\": \"USA\",\n \"formatted\": \"100 Universal City Plaza\\nHollywood, CA 91608 USA\",\n \"primary\": true\n },\n {\n \"type\": \"home\",\n \"streetAddress\": \"456 Hollywood Blvd\",\n \"locality\": \"Hollywood\",\n \"region\": \"CA\",\n \"postalCode\": 91608,\n \"country\": \"USA\",\n \"formatted\": \"456 Hollywood Blvd\\nHollywood, CA 91608 USA\"\n }\n ],\n \"phoneNumbers\": [\n {\n \"value\": \"555-555-5555\",\n \"type\": \"work\"\n },\n {\n \"value\": \"555-555-4444\",\n \"type\": \"mobile\"\n }\n ],\n \"ims\": [\n {\n \"value\": \"someaimhandle\",\n \"type\": \"aim\"\n }\n ],\n \"photos\": [\n {\n \"value\": \"https://photos.example.com/profilephoto/72930000000Ccne/F\",\n \"type\": \"photo\"\n },\n {\n \"value\": \"https://photos.example.com/profilephoto/72930000000Ccne/T\",\n \"type\": \"thumbnail\"\n }\n ],\n \"userType\": \"Employee\",\n \"title\": \"Tour Guide\",\n \"preferredLanguage\": \"en-US\",\n \"locale\": \"en-US\",\n \"timezone\": \"America/Los_Angeles\",\n \"active\": true,\n \"password\": \"t1meMa$heen\",\n \"groups\": [\n {\n \"value\": \"e9e30dba-f08f-4109-8486-d5c6a331660a\",\n \"$ref\": \"https://example.com/v2/Groups/e9e30dba-f08f-4109-8486-d5c6a331660a\",\n \"display\": \"Tour Guides\"\n },\n {\n \"value\": \"fc348aa8-3835-40eb-a20b-c726e15c55b5\",\n \"$ref\": \"https://example.com/v2/Groups/fc348aa8-3835-40eb-a20b-c726e15c55b5\",\n \"display\": \"Employees\"\n },\n {\n \"value\": \"71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7\",\n \"$ref\": \"https://example.com/v2/Groups/71ddacd2-a8e7-49b8-a5db-ae50d0a5bfd7\",\n \"display\": \"US Employees\"\n }\n ],\n \"entitlements\": [\n {\n \"value\": \"entitlement123\",\n \"display\": \"First Entitlement\",\n \"type\": \"License\"\n },\n {\n \"value\": \"profile123\",\n \"display\": \"First Profile\",\n \"type\": \"Profile\"\n }\n ],\n \"roles\": [\n {\n \"value\": \"role123\",\n \"display\": \"First Role\"\n }\n ],\n \"x509Certificates\": [\n {\n \"value\": \"certvalue\"\n }\n ],\n \"urn:ietf:params:scim:schemas:extension:enterprise:2.0:User\": {\n \"employeeNumber\": 701984,\n \"costCenter\": 4130,\n \"organization\": \"Universal Studios\",\n \"division\": \"Theme Park\",\n \"department\": \"Tour Operations\",\n \"manager\": {\n \"value\": \"26118915-6090-4610-87e4-49d8ca9f808d\",\n \"$ref\": \"../Users/26118915-6090-4610-87e4-49d8ca9f808d\",\n \"displayName\": \"John Smith\"\n }\n },\n \"meta\": {\n \"resourceType\": \"User\",\n \"created\": \"2010-01-23T04:56:22Z\",\n \"lastModified\": \"2011-05-13T04:42:34Z\",\n \"version\": \"W/\\\"a330bc54f0671c9\\\"\",\n \"location\": \"https://example.com/v2/Users/2819c223-7f76-453a-919d-413861904646\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.902Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":317,"estimatedTokens":2100}}72{"id":"doc-delete_a_user_type-f3614501","source":"documentation","title":"Delete a user type","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/usertype/other/deleteusertype","text":"Example:\n```text\ncurl -i -X DELETE \\\n 'https://subdomain.okta.com/api/v1/meta/types/user/{typeId}'\n```\n\nExample:\n```text\nNo content\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.913Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":12,"estimatedTokens":38}}73{"id":"doc-activate_a_behavior_detection_rule-b1d0b0d8","source":"documentation","title":"Activate a behavior detection rule","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/behavior/other/activatebehaviordetectionrule","text":"Example:\n```text\ncurl -i -X POST \\\n https://subdomain.okta.com/api/v1/behaviors/abcd1234/lifecycle/activate\n```\n\nExample:\n```text\n{\n \"id\": \"abcd1234\",\n \"name\": \"My Behavior Rule\",\n \"type\": \"VELOCITY\",\n \"settings\": {\n \"velocityKph\": 805\n },\n \"status\": \"ACTIVE\",\n \"created\": \"2021-11-09 20:38:10.0\",\n \"lastUpdated\": \"2021-11-11 20:38:10.0\",\n \"_link\": {\n \"self\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:40.919Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":25,"estimatedTokens":102}}74{"id":"doc-reference_paypal_developer-eb8f9952","source":"documentation","title":"Reference | PayPal Developer","url":"https://developer.paypal.com/sdk/react/reference","text":"Copy for LLMView as MarkdownReferenceReact SDK v6 referenceLast 29, 2026React SDKTo integrate PayPal, Venmo, Pay Later, and other payment methods into React applications, use the PayPal React SDK v6 (@paypal/react-paypal-js/sdk-v6). This reference covers the provider component, hooks, payment session hooks, payment button components, card fields, server utilities, types, and common patterns. For the vanilla JavaScript SDK v6 reference, see JavaScript SDK v6 Reference. For setup and initialization, see Set up JavaScript SDK v6. If your button colors changed from an existing integration, see Button color updates. Check out our GitHub sample integration with React. PayPalProvider PayPalProvider is a context provider that initializes the PayPal SDK and provides payment functionality to child components. Props PropTypeRequiredDescriptionclientIdstring | Promise<string> | undefinedyesPayPal client ID for authenticating SDK requests. Use either clientId or clientToken, not bothclientTokenstring | Promise<string> | undefinedyesPayPal client token for authenticating SDK requests. Use either clientId or clientToken, not bothcomponentsstring[]yesArray of components to load. Values include \"paypal-payments\", \"venmo-payments\", \"paypal-subscriptions\", \"paypal-guest-payments\", \"card-fields\", \"paypal-messages\", \"applepay-payments\", and \"googlepay-payments\". Defaults to [\"paypal-payments\"]environmentstringyesTarget environment. Values are \"sandbox\" or \"production\"pageTypestringnoPage context type, for example, \"checkout\"localestringnoLocale for the SDK, for example, \"en_US\"clientMetadataIdstringnoClient metadata ID for trackingpartnerAttributionIdstringnoPartner attribution IDshopperSessionIdstringnoShopper session ID for personalizationtestBuyerCountrystringnoTest buyer country for sandbox testingmerchantIdstring | string[]noMerchant ID or array of merchant IDseligibleMethodsResponseobjectnoPre-fetched eligible methods response from server-side useFetchEligibleMethodsdebugbooleannoEnable debug modedataNamespacestringnoCustom namespace for the SDK data attribute PayPalProvider requires a clientId or clientToken to authenticate your integration. Example Replace YOUR_PAYPAL_CLIENT_ID with your app's PayPal client ID when initializing the provider. Place PayPalProvider at your app root so payment buttons render sooner. Client IDClient tokenimport { PayPalProvider } from \"@paypal/react-paypal-js/sdk-v6\"; function App() { return ( <PayPalProvider clientId=\"YOUR_PAYPAL_CLIENT_ID\" environment=\"sandbox\" components={[\"paypal-payments\", \"venmo-payments\", \"paypal-subscriptions\"]} pageType=\"checkout\" > {/* Child components */} </PayPalProvider> ); } import { useMemo } from \"react\"; import { PayPalProvider } from \"@paypal/react-paypal-js/sdk-v6\"; function App() { // Memoize the promise to prevent re-fetching on every render const tokenPromise = useMemo(() => fetchClientToken(), []); return ( <PayPalProvider clientToken={tokenPromise} environment=\"sandbox\" components={[\"paypal-payments\"]} pageType=\"checkout\" > {/* Child components */} </PayPalProvider> ); } Hooks Hooks provide access to SDK state and payment eligibility data inside your React components. Use them to check SDK internals or conditionally render UI based on which payment methods are available. usePayPal() usePayPal provides access to the PayPal SDK state and payment eligibility information. Must be used within a PayPalProvider. Returns PropertyTypeDescriptionloadingStatusINSTANCE_LOADING_STATECurrent SDK loading state. Compare against INSTANCE_LOADING_STATE enum valueseligiblePaymentMethodsobject | nullAvailable payment methods for the current usersdkInstanceobject | nullThe underlying SDK instanceerrorError | nullAny error that occurred during SDK initializationisHydratedbooleanWhether the component has been hydrated on the client Example Use usePayPal to access the SDK state and payment eligibility in any component inside PayPalProvider. import { usePayPal, INSTANCE_LOADING_STATE, } from \"@paypal/react-paypal-js/sdk-v6\"; function CheckoutForm() { const { loadingStatus, error } = usePayPal(); if (loadingStatus === INSTANCE_LOADING_STATE.PENDING) { return <div>Loading...</div>; } if (loadingStatus === INSTANCE_LOADING_STATE.REJECTED) { return <div>Failed to load PayPal SDK: {error?.message}</div>; } return <PaymentButtons />; } useEligibleMethods(options) useEligibleMethods returns eligible payment methods from the PayPal SDK. It prevents duplicate API calls across components. Parameters ParameterRequiredDescriptionpayload.amountnostring. Order amount, for example, \"95.00\"payload.currencyCodenostring. Three-letter ISO 4217 currency code, for example, \"USD\"payload.paymentFlownostring. The payment flow type. Values are \"ONE_TIME_PAYMENT\", \"RECURRING_PAYMENT\", \"VAULT_WITH_PAYMENT\", or \"VAULT_WITHOUT_PAYMENT\" Returns PropertyTypeDescriptioneligiblePaymentMethodsobject | nullAvailable payment methods for the current user. To retrieve product-specific details, call from \"@paypal/react-paypal-js/sdk-v6\"; function PayLaterCheckout(props) { const { handleClick } = usePayLaterOneTimePaymentSession(props); const { eligiblePaymentMethods, isLoading, error } = useEligibleMethods({ payload: { currencyCode: \"USD\" }, }); const payLaterDetails = eligiblePaymentMethods?.getDetails?.(\"paylater\"); const countryCode = payLaterDetails?.countryCode; const productCode = payLaterDetails?.productCode; if (isLoading) return <div>Loading...</div>; if (error) return <div>Error: {error.message}</div>; return ( <paypal-pay-later-button onClick={handleClick} countryCode={countryCode} productCode={productCode} /> ); } usePayPalMessages(options) usePayPalMessages creates a PayPal Messages session to fetch messaging content and create learn more modals. Parameters ParameterRequiredDescriptionbuyerCountrynostring. Buyer's country codecurrencyCodenostring. Currency codeshopperSessionIdnostring. Shopper session ID Returns PropertyTypeDescriptionerrorError | nullAny session errorisReadybooleanWhether the session is createdhandleFetchContentfunctionFetches message contenthandleCreateLearnMorefunctionCreates a learn more modal Example The following example uses auto-bootstrap mode to display a PayPal message with a learn more modal. import { usePayPalMessages } from \"@paypal/react-paypal-js/sdk-v6\"; function PayPalMessaging({ amount }: { }) { const { error } = usePayPalMessages({}); if (error) return null; return ( <paypal-message auto-bootstrap={true} amount={amount} currency-code=\"USD\" buyer-country=\"US\" /> ); } Payment session hooks Payment session hooks give you control over the payment flow for advanced integrations. Each button component has a session hook. All payment session hooks return a BasePaymentSessionReturn object. PropertyTypeDescriptionerrorError | nullAny session errorisPendingbooleanWhether the SDK instance is still loadinghandleClick() => PromiseStarts the payment sessionhandleCancel() => voidCancels the sessionhandleDestroy() => voidCleans up the session usePayPalOneTimePaymentSession The following example creates an order on your server and renders a custom PayPal button that starts the payment session when selected. import { usePayPalOneTimePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomPayPalButton() { const { isPending, error, handleClick } = usePayPalOneTimePaymentSession({ () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Approved:\", data.orderId); }, presentationMode: \"auto\", }); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return <paypal-button onClick={handleClick} type=\"pay\" />; } useVenmoOneTimePaymentSession The following example creates an order and renders a custom Venmo button for one-time payments. import { useVenmoOneTimePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomVenmoButton() { const { isPending, error, handleClick } = useVenmoOneTimePaymentSession({ () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Approved:\", data.orderId); }, presentationMode: \"auto\", }); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return <venmo-button onClick={handleClick} type=\"pay\" />; } usePayLaterOneTimePaymentSession The following example retrieves Pay Later eligibility details from usePayPal and passes countryCode and productCode to a custom Pay Later button. import { usePayLaterOneTimePaymentSession, usePayPal, } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomPayLaterButton() { const { eligiblePaymentMethods } = usePayPal(); const { isPending, error, handleClick } = usePayLaterOneTimePaymentSession({ () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Approved:\", data.orderId); }, presentationMode: \"auto\", }); const payLaterDetails = eligiblePaymentMethods?.getDetails(\"paylater\"); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return ( <paypal-pay-later-button onClick={handleClick} countryCode={payLaterDetails?.countryCode} productCode={payLaterDetails?.productCode} /> ); } usePayPalCreditOneTimePaymentSession The following example retrieves PayPal Credit eligibility details and renders a custom credit button with the buyer's countryCode. import { usePayPalCreditOneTimePaymentSession, usePayPal, } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomCreditButton() { const { eligiblePaymentMethods } = usePayPal(); const { isPending, error, handleClick } = usePayPalCreditOneTimePaymentSession({ () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Approved:\", data.orderId); }, presentationMode: \"auto\", }); const creditDetails = eligiblePaymentMethods?.getDetails?.(\"credit\"); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return ( <paypal-credit-button onClick={handleClick} countryCode={creditDetails?.countryCode} /> ); } usePayPalGuestPaymentSession usePayPalGuestPaymentSession returns an additional buttonRef to pass to the <paypal-basic-card-button> element. The following example renders a guest checkout button inside a <paypal-basic-card-container> wrapper. import { usePayPalGuestPaymentSession } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomGuestButton() { const { buttonRef, isPending, error, handleClick } = usePayPalGuestPaymentSession({ () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Approved:\", data.orderId); }, }); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return ( <paypal-basic-card-container> <paypal-basic-card-button ref={buttonRef} onClick={handleClick} /> </paypal-basic-card-container> ); } usePayPalSavePaymentSession The following example creates a vault setup token on your server and renders a button that saves the payment method when selected. import { usePayPalSavePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomSaveButton() { const { isPending, error, handleClick } = usePayPalSavePaymentSession({ () => { const res = await fetch(\"/api/vault-setup-token\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Saved:\", data.vaultSetupToken); }, presentationMode: \"auto\", }); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return <paypal-button onClick={handleClick} type=\"pay\" />; } usePayPalCreditSavePaymentSession The following example saves a PayPal Credit payment method to the vault and passes the buyer's countryCode from eligibility data to the credit button. import { usePayPalCreditSavePaymentSession, usePayPal, } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomCreditSaveButton() { const { eligiblePaymentMethods } = usePayPal(); const { isPending, error, handleClick } = usePayPalCreditSavePaymentSession({ () => { const res = await fetch(\"/api/vault-setup-token\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Saved:\", data.vaultSetupToken); }, presentationMode: \"auto\", }); const creditDetails = eligiblePaymentMethods?.getDetails?.(\"credit\"); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return ( <paypal-credit-button onClick={handleClick} countryCode={creditDetails?.countryCode} /> ); } usePayPalSubscriptionPaymentSession The following example creates a subscription on your server and renders a custom subscribe button that starts the subscription flow when selected. import { usePayPalSubscriptionPaymentSession } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomSubscriptionButton() { const { isPending, error, handleClick } = usePayPalSubscriptionPaymentSession( { () => { const res = await fetch(\"/api/subscriptions\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, (data) => { console.log(\"Subscription approved:\", data.payerId); }, presentationMode: \"auto\", }, ); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return <paypal-button onClick={handleClick} type=\"subscribe\" />; } useApplePayOneTimePaymentSession The following example configures an Apple Pay session with a payment request and renders a native Apple Pay button. import { useApplePayOneTimePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\"; function CustomApplePayButton({ applePayConfig }) { const { isPending, error, handleClick } = useApplePayOneTimePaymentSession({ applePayConfig, paymentRequest: { countryCode: \"US\", currencyCode: \"USD\", total: { label: \"Demo Store\", amount: \"100.00\", type: \"final\" }, }, , () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await res.json(); return { }; }, onApprove: (data) => console.log(\"Approved:\", data), onError: (err) => console.error(err), }); if (isPending) return null; if (error) return <div>Error: {error.message}</div>; return ( <apple-pay-button onClick={handleClick} buttonstyle=\"black\" type=\"pay\" /> ); } Payment components The following components render PayPal payment buttons in your React app. Each component wraps a specific payment flow and accepts callback props to handle the payment lifecycle. PayPalOneTimePaymentButton PayPalOneTimePaymentButton renders a button for one-time PayPal payments. It uses usePayPalOneTimePaymentSession internally. Props Example The following example renders a PayPal button that creates an order on your server and handles approval when the buyer completes payment. import { PayPalOneTimePaymentButton, type OnApproveDataOneTimePayments, } from \"@paypal/react-paypal-js/sdk-v6\"; function Checkout() { const handleCreateOrder = async () => { const response = await fetch(\"/api/orders\", { method: \"POST\" }); const { id } = await response.json(); return { }; }; return ( <PayPalOneTimePaymentButton createOrder={handleCreateOrder} onApprove={async (data: OnApproveDataOneTimePayments) => { console.log(\"Order approved:\", data.orderId); }} presentationMode=\"auto\" /> ); } VenmoOneTimePaymentButton VenmoOneTimePaymentButton renders a button for one-time Venmo payments (US only). It uses useVenmoOneTimePaymentSession internally. Props VenmoOneTimePaymentButton accepts the same props as PayPalOneTimePaymentButton. Example The following example renders a Venmo payment button with order creation and approval callbacks. import { VenmoOneTimePaymentButton } from \"@paypal/react-paypal-js/sdk-v6\"; <VenmoOneTimePaymentButton createOrder={handleCreateOrder} onApprove={handleApprove} presentationMode=\"auto\" />; PayLaterOneTimePaymentButton PayLaterOneTimePaymentButton renders a button for the Pay Later payment option (Pay in 4, financing). It requires useEligibleMethods to fetch eligibility data, which provides the countryCode and productCode needed for the button. Props Example The following example renders a Pay Later button that lets buyers choose financing options like Pay in 4. import { PayLaterOneTimePaymentButton, useEligibleMethods, } from \"@paypal/react-paypal-js/sdk-v6\"; function PayLaterCheckout() { const { error, isLoading } = useEligibleMethods(); return ( !error && !isLoading && ( <PayLaterOneTimePaymentButton createOrder={handleCreateOrder} onApprove={handleApprove} presentationMode=\"auto\" /> ) ); } PayPalCreditOneTimePaymentButton PayPalCreditOneTimePaymentButton renders a button for PayPal Credit one-time payments. It requires useEligibleMethods to fetch eligibility data, which provides the countryCode needed for the button. Props Example The following example checks eligibility before rendering a PayPal Credit button for one-time payments. import { PayPalCreditOneTimePaymentButton, useEligibleMethods, } from \"@paypal/react-paypal-js/sdk-v6\"; function CreditCheckout() { const { error, isLoading } = useEligibleMethods(); return ( !error && !isLoading && ( <PayPalCreditOneTimePaymentButton createOrder={handleCreateOrder} onApprove={handleApprove} presentationMode=\"auto\" /> ) ); } PayPalGuestPaymentButton PayPalGuestPaymentButton renders a button for guest checkout that does not require a PayPal account. It automatically wraps the button with <paypal-basic-card-container>. This component does not accept presentationMode. It renders a <paypal-basic-card-button> inside a <paypal-basic-card-container> automatically. Props PropTypeDescriptioncreateOrder() => Promise<{ }>Function that calls your server to create a PayPal order and returns the resulting orderId. The component calls this function when the buyer clicks the button. Use either createOrder or orderId, not bothorderIdstringOrder ID for an order you already created on your server. Use this when your app creates the order before rendering the button. Use either createOrder or orderId, not bothonApprove(data: OnApproveDataOneTimePayments) => Promise<void>Callback when payment is approvedonCancel(data: OnCancelDataOneTimePayments) => voidCallback when user cancelsonError(data: OnErrorData) => voidCallback on payment erroronComplete(data: OnCompleteData) => voidCallback when payment session completesfullPageOverlay{ }Whether to show a full-page overlayonShippingAddressChange(data: OnShippingAddressChangeData) => Promise<void>Callback when shipping address changesonShippingOptionsChange(data: OnShippingOptionsChangeData) => Promise<void>Callback when shipping options changedisabledbooleanWhether the button is disabled Example The following example renders a guest checkout button that allows buyers to pay without a PayPal account. import { PayPalGuestPaymentButton } from \"@paypal/react-paypal-js/sdk-v6\"; <PayPalGuestPaymentButton createOrder={handleCreateOrder} onApprove={handleApprove} />; PayPalSavePaymentButton PayPalSavePaymentButton renders a button that saves payment methods to a vault. Props Example The following example creates a vault setup token on your server and renders a button that saves the buyer's payment method. import { PayPalSavePaymentButton, type OnApproveDataSavePayments, } from \"@paypal/react-paypal-js/sdk-v6\"; function SavePayment() { const handleCreateVaultToken = async () => { const response = await fetch(\"/api/vault-setup-token\", { method: \"POST\" }); const { id } = await response.json(); return { }; }; return ( <PayPalSavePaymentButton createVaultToken={handleCreateVaultToken} onApprove={(data: OnApproveDataSavePayments) => { console.log(\"Payment saved with token:\", data.vaultSetupToken); }} presentationMode=\"auto\" /> ); } PayPalCreditSavePaymentButton PayPalCreditSavePaymentButton renders a button that saves PayPal Credit payment methods. It requires useEligibleMethods to fetch eligibility data, which provides the countryCode needed for the button. Props Example The following example checks eligibility before rendering a button that saves a PayPal Credit payment method to the vault. import { PayPalCreditSavePaymentButton, useEligibleMethods, } from \"@paypal/react-paypal-js/sdk-v6\"; function CreditSavePayment() { const { error, isLoading } = useEligibleMethods(); return ( !error && !isLoading && ( <PayPalCreditSavePaymentButton createVaultToken={handleCreateVaultToken} onApprove={handleApprove} presentationMode=\"auto\" /> ) ); } PayPalSubscriptionButton PayPalSubscriptionButton renders a button that creates subscriptions. Subscriptions only support \"auto\", \"popup\", \"modal\", or \"payment-handler\" presentation modes. Props PropTypeDescriptioncreateSubscription() => Promise<{ }>Function that creates a subscription and returns an object with subscriptionIdonApprove(data: OnApproveDataSubscriptions) => Promise<void>Callback when subscription is approved. Receives subscriptionId and payerIdonCancel(data: OnCancelDataOneTimePayments) => voidCallback when user cancelsonError(data: OnErrorData) => voidCallback on erroronComplete(data: OnCompleteData) => voidCallback when session completespresentationModestringstring. Controls how the payment interface is displayed to the buyer.Available — Recommended. SDK automatically selects the best experience. Tries popup first and falls back to modal if popups are blocked.popup — Opens PayPal in a popup window. May be blocked by popup blockers.modal — Creates an iframe overlay on the current page. Recommended only for WebView scenarios. Do not use in desktop web scenarios as this integration has limitations on cookies, which can affect user authentication.redirect — Full page redirect to PayPal. Recommended for mobile devices. Requires a return/cancel URL.payment-handler — Experimental. Uses the browser's Payment Handler API. Provides a native payment experience. Modern browsers only.Default: autoThe SDK will automatically fall back to alternative modes if the requested mode is unavailable.typestringButton type. Defaults to \"subscribe\"disabledbooleanWhether the button is disabled Example The following example creates a subscription on your server and renders a button that starts the subscription approval flow. import { PayPalSubscriptionButton, type OnApproveDataSubscriptions, } from \"@paypal/react-paypal-js/sdk-v6\"; function Subscription() { const handleCreateSubscription = async () => { const response = await fetch(\"/api/subscriptions\", { method: \"POST\" }); const { id } = await response.json(); return { }; }; return ( <PayPalSubscriptionButton createSubscription={handleCreateSubscription} onApprove={(data: OnApproveDataSubscriptions) => { console.log(\"Subscription ID:\", data.subscriptionId); }} presentationMode=\"auto\" /> ); } ApplePayOneTimePaymentButton ApplePayOneTimePaymentButton renders a native <apple-pay-button> element for Apple Pay payments with Safari-compatible styling. Props PropTypeDescriptionapplePayConfigApplePayConfigApple Pay configuration from findEligibleMethodspaymentRequestApplePayPaymentRequestPayment request with country, currency, and totalapplePaySessionVersionnumberApple Pay JS API version (4 or later)createOrder() => Promise<{ }>Function that creates an orderonApprove(data: ConfirmOrderResponse) => voidCallback when payment is approvedonCancel() => voidCallback when payment is cancelledonError(error: Error) => voidCallback on errordisplayNamestringMerchant display namedomainNamestringMerchant domain namebuttonstylestringButton style, for example, \"black\" (default) or \"white\"typestringButton type, for example, \"pay\" (default)localestringLocale, such as \"en\" (default)disabledbooleanWhether the button is disabled Example The following example renders an Apple Pay button configured with a payment request and order creation callback. import { ApplePayOneTimePaymentButton } from \"@paypal/react-paypal-js/sdk-v6\"; <ApplePayOneTimePaymentButton applePayConfig={applePayConfig} paymentRequest={{ countryCode: \"US\", currencyCode: \"USD\", total: { label: \"Demo Store\", amount: \"100.00\", type: \"final\" }, }} applePaySessionVersion={4} createOrder={async () => { const res = await fetch(\"/api/orders\", { method: \"POST\" }); const data = await res.json(); return { }; }} onApprove={(data) => console.log(\"Approved:\", data)} onError={(err) => console.error(err)} />; Card fields components Card fields let you render individual, PCI-compliant input fields for card number, expiration, and CVV within your checkout form. PayPalCardFieldsProvider PayPalCardFieldsProvider creates a Card Fields session and provides it to child field components. Only the children prop is required. All other props are optional and can be used to configure the session and listen to field events. Props PropTypeDescriptionchildren (required)ReactNodeChild componentsamount { value?: string, currencyCode?: string }Order amount, which you can update dynamicallyisCobrandedEligiblebooleanWhether co-branded card eligibility is enabledblur(event) => voidCallback when a card field loses focusvaliditychange(event) => voidCallback when field validity changescardtypechange(event) => voidCallback when card type changes or is detectedfocus(event) => voidCallback when a card field gains focuschange(event) => voidCallback when card field value changesempty(event) => voidCallback when a card field is emptyinputsubmit(event) => voidCallback when a card field is submittednotempty(event) => voidCallback when a card field is not empty Example The following example renders card number, expiry, and CVV fields inside a provider that listens for validity and card type changes. import { PayPalCardFieldsProvider, PayPalCardNumberField, PayPalCardExpiryField, PayPalCardCvvField, } from \"@paypal/react-paypal-js/sdk-v6\"; function CardFieldsCheckout() { return ( <PayPalCardFieldsProvider amount={{ value: \"10.00\", currencyCode: \"USD\" }} validitychange={(event) => console.log(\"Validity change event:\", event)} cardtypechange={(event) => console.log(\"Card type change event:\", event)} > <PayPalCardNumberField placeholder=\"Card number\" /> <PayPalCardExpiryField placeholder=\"MM/YY\" /> <PayPalCardCvvField placeholder=\"CVV\" /> <SubmitButton /> </PayPalCardFieldsProvider> ); } PayPalCardNumberField PayPalCardNumberField renders a card number input field. Use within a PayPalCardFieldsProvider. All props are optional. Props PayPalCardExpiryField PayPalCardExpiryField renders a card expiry input field. Use within a PayPalCardFieldsProvider. All props are optional. Props PayPalCardCvvField PayPalCardCvvField renders a CVV input field. Use within a PayPalCardFieldsProvider. All props are optional. Props usePayPalCardFields() usePayPalCardFields returns the Card Fields state from the PayPalCardFieldsProvider context. Use within a PayPalCardFieldsProvider. usePayPalCardFieldsOneTimePaymentSession() usePayPalCardFieldsOneTimePaymentSession submits card field data for one-time payments. Returns PropertyTypeDescriptionsubmit(orderId: string | Promise<string>, options?) => Promise<void>Submit the card fields for paymentsubmitResponseobject | nullThe response from the submit operationerrorError | nullAny error that occurred Example The following example renders styled card fields, submits the card data for a one-time payment, and handles both success and failure responses. import { PayPalCardCvvField, PayPalCardExpiryField, PayPalCardNumberField, usePayPalCardFields, usePayPalCardFieldsOneTimePaymentSession, } from \"@paypal/react-paypal-js/sdk-v6\"; import { useEffect } from \"react\"; import { captureOrder } from \"../../../utils\"; const PayPalCardFieldsOneTimePayment = () => { const { } = usePayPalCardFields(); const { , submit, submitResponse, } = usePayPalCardFieldsOneTimePaymentSession(); useEffect(() => { if (!submitResponse) { return; } const { orderId, message } = submitResponse.data; switch (submitResponse.state) { case \"succeeded\": console.log(`One time payment : ${orderId}`); captureOrder({ orderId }).then((captureResult) => { console.log(\"Payment capture result:\", captureResult); }); break; case \"failed\": console.error( `One time payment : ${orderId}, message: ${message}`, ); break; } }, [submitResponse]); useEffect(() => { if (cardFieldsError) { console.error(\"Error loading PayPal Card Fields\", cardFieldsError); } if (submitError) { console.error(\"Error submitting PayPal Card Fields payment\", submitError); } }, [cardFieldsError, submitError]); const handleSubmit = async () => { const { orderId } = await handleCreateOrder(); await submit(orderId); }; return ( <div> <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"1rem\", }} > <PayPalCardNumberField containerStyles={{ height: \"3rem\", }} placeholder=\"Enter card number\" /> <PayPalCardExpiryField containerStyles={{ height: \"3rem\", }} placeholder=\"MM/YY\" /> <PayPalCardCvvField containerStyles={{ height: \"3rem\", }} placeholder=\"Enter CVV\" /> </div> {!cardFieldsError && ( <button className=\"card-fields-pay-button\" onClick={handleSubmit}> Pay </button> )} </div> ); }; export default PayPalCardFieldsOneTimePayment; usePayPalCardFieldsSavePaymentSession() usePayPalCardFieldsSavePaymentSession submits card field data to save a payment method. Returns PropertyTypeDescriptionsubmit(vaultSetupToken: string | Promise<string>, options?) => Promise<void>Submit the card fields for vaultingsubmitResponseobject | nullThe response from the submit operationerrorError | nullAny error that occurred Example The following example renders card fields and submits the card data to save it as a vaulted payment method. import { PayPalCardCvvField, PayPalCardExpiryField, PayPalCardNumberField, usePayPalCardFields, usePayPalCardFieldsSavePaymentSession, } from \"@paypal/react-paypal-js/sdk-v6\"; import { useEffect } from \"react\"; import { createCardVaultToken } from \"../../../utils\"; const PayPalCardFieldsSavePayment = () => { const { } = usePayPalCardFields(); const { , submit, submitResponse, } = usePayPalCardFieldsSavePaymentSession(); useEffect(() => { if (!submitResponse) { return; } const { vaultSetupToken, message } = submitResponse.data; switch (submitResponse.state) { case \"succeeded\": console.log( `Save payment method : ${vaultSetupToken}`, ); break; case \"failed\": console.error( `Save payment method : ${vaultSetupToken}, message: ${message}`, ); break; } }, [submitResponse]); useEffect(() => { if (cardFieldsError) { console.error(\"Error loading PayPal Card Fields\", cardFieldsError); } if (submitError) { console.error(\"Error submitting PayPal Card Fields payment\", submitError); } }, [cardFieldsError, submitError]); const handleSubmit = async () => { const { vaultSetupToken } = await createCardVaultToken(); await submit(vaultSetupToken); }; return ( <div> <div style={{ display: \"flex\", flexDirection: \"column\", gap: \"1rem\", }} > <PayPalCardNumberField containerStyles={{ height: \"3rem\", }} placeholder=\"Enter card number\" /> <PayPalCardExpiryField containerStyles={{ height: \"3rem\", }} placeholder=\"MM/YY\" /> <PayPalCardCvvField containerStyles={{ height: \"3rem\", }} placeholder=\"Enter CVV\" /> </div> {!cardFieldsError && ( <button className=\"card-fields-pay-button\" onClick={handleSubmit}> Save Payment Method </button> )} </div> ); }; export default PayPalCardFieldsSavePayment; Server utilities useFetchEligibleMethods(options) useFetchEligibleMethods pre-fetches eligible payment methods on the server. Import from @paypal/react-paypal-js/sdk-v6/server. Parameters ParameterRequiredDescriptionoptions.headersnoHeadersInit. HTTP headers including the Authorization bearer tokenoptions.environmentyesstring. Target environment (\"sandbox\" or \"production\")options.payloadnoobject. Optional request payload with customer and purchase detailsoptions.signalnoAbortSignal. Optional abort signal Example The following example pre-fetches eligible payment methods on the server and passes the result to PayPalProvider. ImplementationTypesimport { useFetchEligibleMethods } from \"@paypal/react-paypal-js/sdk-v6/server\"; // In a server component or loader const eligibleMethodsResponse = await useFetchEligibleMethods({ headers: { \"Content-Type\": \"application/json\", Authorization: `Bearer ${clientToken}`, }, environment: \"sandbox\", payload: { purchase_units: [{ amount: { currency_code: \"USD\", value: \"100.00\" } }], }, }); // Pass to provider <PayPalProvider eligibleMethodsResponse={eligibleMethodsResponse} clientToken={token} pageType=\"checkout\" > <Checkout /> </PayPalProvider>;type FindEligiblePaymentMethodsRequestPayload = { customer?: { channel?: { browser_type?: string; client_os?: string; device_type?: string; }; country_code?: string; id?: string; email?: string; phone?: PhoneNumber; }; purchase_units?: ReadonlyArray<{ amount: { value?: string; }; payee?: { client_id?: string; display_data?: { business_email?: string; business_phone?: PhoneNumber & { }; brand_name?: string; }; email_address?: string; merchant_id?: string; }; }>; preferences?: { // runs advanced customer eligibility checks when set to true include_account_details?: boolean; include_vault_tokens?: boolean; payment_flow?: PaymentFlow; payment_source_constraint?: { <EligiblePaymentMethods>[]; }; }; shopper_session_id?: string; }; Types The following types define the data structures passed to and from SDK callbacks. OnApproveDataOneTimePayments Data passed to onApprove for one-time payments. PropertyTypeDescriptionorderIdstringThe PayPal order IDpayerIdstring (optional)The PayPal payer IDbillingTokenstring (optional)The billing token OnApproveDataSubscriptions Data passed to onApprove for subscription payments. PropertyTypeDescriptionsubscriptionIdstringThe PayPal subscription IDpayerIdstring (optional)The PayPal payer ID OnApproveDataSavePayments Data passed to onApprove for save payment operations. PropertyTypeDescriptionvaultSetupTokenstringToken representing the saved payment methodpayerIdstring (optional)The PayPal payer ID OnCancelDataOneTimePayments Data passed to onCancel for one-time payments. PropertyTypeDescriptionorderIdstring (optional)The PayPal order ID OnCancelDataSavePayments Data passed to onCancel for save payment operations. PropertyTypeDescriptionvaultSetupTokenstring (optional)The vault setup token OnErrorData Data passed to onError when an error occurs. Extends Error. PropertyTypeDescriptioncodestringError codenamestringError namemessagestringError messageisRecoverablebooleanWhether the error is recoverable OnCompleteData Data passed to onComplete when payment session completes. PropertyTypeDescriptionpaymentSessionStatestringSession result. Values are \"approved\", \"canceled\", or \"error\" BasePaymentSessionReturn Return type for all payment session hooks. PropertyTypeDescriptionerrorError | nullAny session errorisPendingbooleanWhether the SDK instance is still loadinghandleClick() => Promise<{ redirectURL?: string } | void>Starts the payment sessionhandleCancel() => voidCancels the sessionhandleDestroy() => voidCleans up the session EventPayload Data passed to Card Fields event callbacks such as blur, focus, change, and validitychange. PropertyTypeDescriptiondataEventStateThe state of the card fields when the event was triggeredsenderCardFieldTypesThe card field that triggered the event: \"number\", \"expiry\", or \"cvv\" EventState The state of all card fields at the time an event is triggered. PropertyTypeDescriptioncardsCard[]Detected card types based on the current card number inputemittedByCardFieldTypesThe card field that emitted the event: \"number\", \"expiry\", or \"cvv\"numberFieldStateState of the card number fieldcvvFieldStateState of the CVV fieldexpiryFieldStateState of the expiry field FieldState The state of an individual card field. PropertyTypeDescriptionisFocusedbooleanWhether the field currently has focusisValidbooleanWhether the field value is validisEmptybooleanWhether the field is emptyisPotentiallyValidbooleanWhether the field value could become valid with additional input Card Represents a detected card type based on the current card number input. PropertyTypeDescriptionniceTypestringHuman-readable card name, for example, \"Visa\"typestringMachine-readable card type, for example, \"visa\"code.namestringSecurity code label for the card type, for example, \"CVV\" or \"CID\"code.sizenumberExpected length of the security code, for example, 3 or 4 INSTANCE_LOADING_STATE Enum for SDK loading states. Use with usePayPal() to check SDK readiness. ValueDescriptionINSTANCE_LOADING_STATE.PENDINGSDK is loadingINSTANCE_LOADING_STATE.RESOLVEDSDK loaded successfullyINSTANCE_LOADING_STATE.REJECTEDSDK failed to load Example The following example checks the SDK loading state and renders different UI for each state. import { INSTANCE_LOADING_STATE, usePayPal, } from \"@paypal/react-paypal-js/sdk-v6\"; function Component() { const { loadingStatus } = usePayPal(); if (loadingStatus === INSTANCE_LOADING_STATE.PENDING) { return <div>Loading...</div>; } if (loadingStatus === INSTANCE_LOADING_STATE.REJECTED) { return <div>Failed to load PayPal SDK</div>; } return <div>Ready to process payments</div>; } Common patterns The following examples cover common integration patterns for error handling, eligibility checks, and conditional rendering. Error handling The following example shows how to capture error details, log them, and conditionally prompt a retry if the error is recoverable. import { PayPalOneTimePaymentButton, type OnErrorData, } from \"@paypal/react-paypal-js/sdk-v6\"; function Payment() { const handleError = (error: OnErrorData) => { console.error(\"Payment failed:\", error.message); if (error.isRecoverable) { // Prompt user to retry } }; return ( <PayPalOneTimePaymentButton createOrder={createOrder} onApprove={handleApprove} onError={handleError} presentationMode=\"auto\" /> ); } Checking payment eligibility The following example checks payment method availability for the current user and conditionally renders payment buttons based on eligibility. import { useEligibleMethods } from \"@paypal/react-paypal-js/sdk-v6\"; function CheckoutFlow() { const { eligiblePaymentMethods, isLoading } = useEligibleMethods(); if (isLoading) return <div>Loading...</div>; return ( <> <PayPalOneTimePaymentButton {...props} /> {eligiblePaymentMethods?.isEligible(\"venmo\") && ( <VenmoOneTimePaymentButton {...props} /> )} {eligiblePaymentMethods?.isEligible(\"paylater\") && ( <PayLaterOneTimePaymentButton {...props} /> )} </> ); } Conditional rendering based on loading state The following example renders loading indicators while the PayPal SDK initializes and displays payment components only when ready. function Checkout() { const { loadingStatus } = usePayPal(); const isLoading = loadingStatus === INSTANCE_LOADING_STATE.PENDING; return isLoading ? ( <div>Initializing payment methods...</div> ) : ( <PaymentButtons /> ); } Using orderId instead of createOrder All one-time payment buttons support passing a pre-created orderId directly instead of a createOrder callback. <PayPalOneTimePaymentButton orderId=\"ORDER-123\" onApprove={handleApprove} presentationMode=\"auto\" /> Using vaultSetupToken instead of createVaultToken Save payment buttons support passing a pre-created vaultSetupToken directly. <PayPalSavePaymentButton vaultSetupToken=\"VAULT-TOKEN-123\" onApprove={handleApprove} presentationMode=\"auto\" />On this pageOn this pagePayPalProviderPropsExampleHooksusePayPal()ReturnsExampleuseEligibleMethods(options)ParametersReturnsExampleusePayPalMessages(options)ParametersReturnsExamplePayment session hooksusePayPalOneTimePaymentSessionuseVenmoOneTimePaymentSessionusePayLaterOneTimePaymentSessionusePayPalCreditOneTimePaymentSessionusePayPalGuestPaymentSessionusePayPalSavePaymentSessionusePayPalCreditSavePaymentSessionusePayPalSubscriptionPaymentSessionuseApplePayOneTimePaymentSessionPayment componentsPayPalOneTimePaymentButtonPropsExampleVenmoOneTimePaymentButtonPropsExamplePayLaterOneTimePaymentButtonPropsExamplePayPalCreditOneTimePaymentButtonPropsExamplePayPalGuestPaymentButtonPropsExamplePayPalSavePaymentButtonPropsExamplePayPalCreditSavePaymentButtonPropsExamplePayPalSubscriptionButtonPropsExampleApplePayOneTimePaymentButtonPropsExampleCard fields componentsPayPalCardFieldsProviderPropsExamplePayPalCardNumberFieldPropsPayPalCardExpiryFieldPropsPayPalCardCvvFieldPropsusePayPalCardFields()usePayPalCardFieldsOneTimePaymentSession()ReturnsExampleusePayPalCardFieldsSavePaymentSession()ReturnsExampleServer utilitiesuseFetchEligibleMethods(options)ParametersExampleTypesOnApproveDataOneTimePaymentsOnApproveDataSubscriptionsOnApproveDataSavePaymentsOnCancelDataOneTimePaymentsOnCancelDataSavePaymentsOnErrorDataOnCompleteDataBasePaymentSessionReturnEventPayloadEventStateFieldStateCardINSTANCE_LOADING_STATEExampleCommon patternsError handlingChecking payment eligibilityConditional rendering based on loading stateUsing orderId instead of createOrderUsing vaultSetupToken instead of createVaultToken\n\nExample:\n```text\nimport { PayPalProvider } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction App() {\nreturn (\n\n<PayPalProvider\n clientId=\"YOUR_PAYPAL_CLIENT_ID\"\n environment=\"sandbox\"\n components={[\"paypal-payments\", \"venmo-payments\", \"paypal-subscriptions\"]}\n pageType=\"checkout\"\n>\n {/* Child components */}\n</PayPalProvider>\n); }\n```\n\nExample:\n```text\nimport { useMemo } from \"react\";\nimport { PayPalProvider } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction App() {\n // Memoize the promise to prevent re-fetching on every render\n const tokenPromise = useMemo(() => fetchClientToken(), []);\n\n return (\n <PayPalProvider\n clientToken={tokenPromise}\n environment=\"sandbox\"\n components={[\"paypal-payments\"]}\n pageType=\"checkout\"\n >\n {/* Child components */}\n </PayPalProvider>\n );\n}\n```\n\nExample:\n```text\nimport {\n usePayPal,\n INSTANCE_LOADING_STATE,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CheckoutForm() {\n const { loadingStatus, error } = usePayPal();\n\n if (loadingStatus === INSTANCE_LOADING_STATE.PENDING) {\n return <div>Loading...</div>;\n }\n\n if (loadingStatus === INSTANCE_LOADING_STATE.REJECTED) {\n return <div>Failed to load PayPal SDK: {error?.message}</div>;\n }\n\n return <PaymentButtons />;\n}\n```\n\nExample:\n```text\nimport {\n useEligibleMethods,\n usePayLaterOneTimePaymentSession,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction PayLaterCheckout(props) {\n const { handleClick } = usePayLaterOneTimePaymentSession(props);\n const { eligiblePaymentMethods, isLoading, error } = useEligibleMethods({\n payload: { currencyCode: \"USD\" },\n });\n\n const payLaterDetails = eligiblePaymentMethods?.getDetails?.(\"paylater\");\n const countryCode = payLaterDetails?.countryCode;\n const productCode = payLaterDetails?.productCode;\n\n if (isLoading) return <div>Loading...</div>;\n if (error) return <div>Error: {error.message}</div>;\n\n return (\n <paypal-pay-later-button\n onClick={handleClick}\n countryCode={countryCode}\n productCode={productCode}\n />\n );\n}\n```\n\nExample:\n```text\nimport { usePayPalMessages } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction PayPalMessaging({ amount }: { amount: string }) {\n const { error } = usePayPalMessages({});\n\n if (error) return null;\n\n return (\n <paypal-message\n auto-bootstrap={true}\n amount={amount}\n currency-code=\"USD\"\n buyer-country=\"US\"\n />\n );\n}\n```\n\nExample:\n```text\nimport { usePayPalOneTimePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomPayPalButton() {\n const { isPending, error, handleClick } = usePayPalOneTimePaymentSession({\n createOrder: async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await res.json();\n return { orderId: id };\n },\n onApprove: async (data) => {\n console.log(\"Approved:\", data.orderId);\n },\n presentationMode: \"auto\",\n });\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return <paypal-button onClick={handleClick} type=\"pay\" />;\n}\n```\n\nExample:\n```text\nimport { useVenmoOneTimePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomVenmoButton() {\n const { isPending, error, handleClick } = useVenmoOneTimePaymentSession({\n createOrder: async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await res.json();\n return { orderId: id };\n },\n onApprove: async (data) => {\n console.log(\"Approved:\", data.orderId);\n },\n presentationMode: \"auto\",\n });\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return <venmo-button onClick={handleClick} type=\"pay\" />;\n}\n```\n\nExample:\n```text\nimport {\n usePayLaterOneTimePaymentSession,\n usePayPal,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomPayLaterButton() {\n const { eligiblePaymentMethods } = usePayPal();\n const { isPending, error, handleClick } = usePayLaterOneTimePaymentSession({\n createOrder: async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await res.json();\n return { orderId: id };\n },\n onApprove: async (data) => {\n console.log(\"Approved:\", data.orderId);\n },\n presentationMode: \"auto\",\n });\n\n const payLaterDetails = eligiblePaymentMethods?.getDetails(\"paylater\");\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return (\n <paypal-pay-later-button\n onClick={handleClick}\n countryCode={payLaterDetails?.countryCode}\n productCode={payLaterDetails?.productCode}\n />\n );\n}\n```\n\nExample:\n```text\nimport {\n usePayPalCreditOneTimePaymentSession,\n usePayPal,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomCreditButton() {\n const { eligiblePaymentMethods } = usePayPal();\n const { isPending, error, handleClick } =\n usePayPalCreditOneTimePaymentSession({\n createOrder: async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await res.json();\n return { orderId: id };\n },\n onApprove: async (data) => {\n console.log(\"Approved:\", data.orderId);\n },\n presentationMode: \"auto\",\n });\n\n const creditDetails = eligiblePaymentMethods?.getDetails?.(\"credit\");\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return (\n <paypal-credit-button\n onClick={handleClick}\n countryCode={creditDetails?.countryCode}\n />\n );\n}\n```\n\nExample:\n```text\nimport { usePayPalGuestPaymentSession } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomGuestButton() {\n const { buttonRef, isPending, error, handleClick } =\n usePayPalGuestPaymentSession({\n createOrder: async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await res.json();\n return { orderId: id };\n },\n onApprove: async (data) => {\n console.log(\"Approved:\", data.orderId);\n },\n });\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return (\n <paypal-basic-card-container>\n <paypal-basic-card-button ref={buttonRef} onClick={handleClick} />\n </paypal-basic-card-container>\n );\n}\n```\n\nExample:\n```text\nimport { usePayPalSavePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomSaveButton() {\n const { isPending, error, handleClick } = usePayPalSavePaymentSession({\n createVaultToken: async () => {\n const res = await fetch(\"/api/vault-setup-token\", { method: \"POST\" });\n const { id } = await res.json();\n return { vaultSetupToken: id };\n },\n onApprove: async (data) => {\n console.log(\"Saved:\", data.vaultSetupToken);\n },\n presentationMode: \"auto\",\n });\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return <paypal-button onClick={handleClick} type=\"pay\" />;\n}\n```\n\nExample:\n```text\nimport {\n usePayPalCreditSavePaymentSession,\n usePayPal,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomCreditSaveButton() {\n const { eligiblePaymentMethods } = usePayPal();\n const { isPending, error, handleClick } = usePayPalCreditSavePaymentSession({\n createVaultToken: async () => {\n const res = await fetch(\"/api/vault-setup-token\", { method: \"POST\" });\n const { id } = await res.json();\n return { vaultSetupToken: id };\n },\n onApprove: async (data) => {\n console.log(\"Saved:\", data.vaultSetupToken);\n },\n presentationMode: \"auto\",\n });\n\n const creditDetails = eligiblePaymentMethods?.getDetails?.(\"credit\");\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return (\n <paypal-credit-button\n onClick={handleClick}\n countryCode={creditDetails?.countryCode}\n />\n );\n}\n```\n\nExample:\n```text\nimport { usePayPalSubscriptionPaymentSession } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomSubscriptionButton() {\n const { isPending, error, handleClick } = usePayPalSubscriptionPaymentSession(\n {\n createSubscription: async () => {\n const res = await fetch(\"/api/subscriptions\", { method: \"POST\" });\n const { id } = await res.json();\n return { subscriptionId: id };\n },\n onApprove: async (data) => {\n console.log(\"Subscription approved:\", data.payerId);\n },\n presentationMode: \"auto\",\n },\n );\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return <paypal-button onClick={handleClick} type=\"subscribe\" />;\n}\n```\n\nExample:\n```text\nimport { useApplePayOneTimePaymentSession } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CustomApplePayButton({ applePayConfig }) {\n const { isPending, error, handleClick } = useApplePayOneTimePaymentSession({\n applePayConfig,\n paymentRequest: {\n countryCode: \"US\",\n currencyCode: \"USD\",\n total: { label: \"Demo Store\", amount: \"100.00\", type: \"final\" },\n },\n applePaySessionVersion: 4,\n createOrder: async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await res.json();\n return { orderId: id };\n },\n onApprove: (data) => console.log(\"Approved:\", data),\n onError: (err) => console.error(err),\n });\n\n if (isPending) return null;\n if (error) return <div>Error: {error.message}</div>;\n\n return (\n <apple-pay-button onClick={handleClick} buttonstyle=\"black\" type=\"pay\" />\n );\n}\n```\n\nExample:\n```text\nimport {\n PayPalOneTimePaymentButton,\n type OnApproveDataOneTimePayments,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction Checkout() {\n const handleCreateOrder = async () => {\n const response = await fetch(\"/api/orders\", { method: \"POST\" });\n const { id } = await response.json();\n return { orderId: id };\n };\n\n return (\n <PayPalOneTimePaymentButton\n createOrder={handleCreateOrder}\n onApprove={async (data: OnApproveDataOneTimePayments) => {\n console.log(\"Order approved:\", data.orderId);\n }}\n presentationMode=\"auto\"\n />\n );\n}\n```\n\nExample:\n```text\nimport { VenmoOneTimePaymentButton } from \"@paypal/react-paypal-js/sdk-v6\";\n\n<VenmoOneTimePaymentButton\n createOrder={handleCreateOrder}\n onApprove={handleApprove}\n presentationMode=\"auto\"\n/>;\n```\n\nExample:\n```text\nimport {\n PayLaterOneTimePaymentButton,\n useEligibleMethods,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction PayLaterCheckout() {\n const { error, isLoading } = useEligibleMethods();\n\n return (\n !error &&\n !isLoading && (\n <PayLaterOneTimePaymentButton\n createOrder={handleCreateOrder}\n onApprove={handleApprove}\n presentationMode=\"auto\"\n />\n )\n );\n}\n```\n\nExample:\n```text\nimport {\n PayPalCreditOneTimePaymentButton,\n useEligibleMethods,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CreditCheckout() {\n const { error, isLoading } = useEligibleMethods();\n\n return (\n !error &&\n !isLoading && (\n <PayPalCreditOneTimePaymentButton\n createOrder={handleCreateOrder}\n onApprove={handleApprove}\n presentationMode=\"auto\"\n />\n )\n );\n}\n```\n\nExample:\n```text\nimport { PayPalGuestPaymentButton } from \"@paypal/react-paypal-js/sdk-v6\";\n\n<PayPalGuestPaymentButton\n createOrder={handleCreateOrder}\n onApprove={handleApprove}\n/>;\n```\n\nExample:\n```text\nimport {\n PayPalSavePaymentButton,\n type OnApproveDataSavePayments,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction SavePayment() {\n const handleCreateVaultToken = async () => {\n const response = await fetch(\"/api/vault-setup-token\", { method: \"POST\" });\n const { id } = await response.json();\n return { vaultSetupToken: id };\n };\n\n return (\n <PayPalSavePaymentButton\n createVaultToken={handleCreateVaultToken}\n onApprove={(data: OnApproveDataSavePayments) => {\n console.log(\"Payment saved with token:\", data.vaultSetupToken);\n }}\n presentationMode=\"auto\"\n />\n );\n}\n```\n\nExample:\n```text\nimport {\n PayPalCreditSavePaymentButton,\n useEligibleMethods,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CreditSavePayment() {\n const { error, isLoading } = useEligibleMethods();\n\n return (\n !error &&\n !isLoading && (\n <PayPalCreditSavePaymentButton\n createVaultToken={handleCreateVaultToken}\n onApprove={handleApprove}\n presentationMode=\"auto\"\n />\n )\n );\n}\n```\n\nExample:\n```text\nimport {\n PayPalSubscriptionButton,\n type OnApproveDataSubscriptions,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction Subscription() {\n const handleCreateSubscription = async () => {\n const response = await fetch(\"/api/subscriptions\", { method: \"POST\" });\n const { id } = await response.json();\n return { subscriptionId: id };\n };\n\n return (\n <PayPalSubscriptionButton\n createSubscription={handleCreateSubscription}\n onApprove={(data: OnApproveDataSubscriptions) => {\n console.log(\"Subscription ID:\", data.subscriptionId);\n }}\n presentationMode=\"auto\"\n />\n );\n}\n```\n\nExample:\n```text\nimport { ApplePayOneTimePaymentButton } from \"@paypal/react-paypal-js/sdk-v6\";\n\n<ApplePayOneTimePaymentButton\n applePayConfig={applePayConfig}\n paymentRequest={{\n countryCode: \"US\",\n currencyCode: \"USD\",\n total: { label: \"Demo Store\", amount: \"100.00\", type: \"final\" },\n }}\n applePaySessionVersion={4}\n createOrder={async () => {\n const res = await fetch(\"/api/orders\", { method: \"POST\" });\n const data = await res.json();\n return { orderId: data.id };\n }}\n onApprove={(data) => console.log(\"Approved:\", data)}\n onError={(err) => console.error(err)}\n/>;\n```\n\nExample:\n```text\nimport {\n PayPalCardFieldsProvider,\n PayPalCardNumberField,\n PayPalCardExpiryField,\n PayPalCardCvvField,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CardFieldsCheckout() {\n return (\n <PayPalCardFieldsProvider\n amount={{ value: \"10.00\", currencyCode: \"USD\" }}\n validitychange={(event) => console.log(\"Validity change event:\", event)}\n cardtypechange={(event) => console.log(\"Card type change event:\", event)}\n >\n <PayPalCardNumberField placeholder=\"Card number\" />\n <PayPalCardExpiryField placeholder=\"MM/YY\" />\n <PayPalCardCvvField placeholder=\"CVV\" />\n <SubmitButton />\n </PayPalCardFieldsProvider>\n );\n}\n```\n\nExample:\n```text\nimport {\n PayPalCardCvvField,\n PayPalCardExpiryField,\n PayPalCardNumberField,\n usePayPalCardFields,\n usePayPalCardFieldsOneTimePaymentSession,\n} from \"@paypal/react-paypal-js/sdk-v6\";\nimport { useEffect } from \"react\";\nimport { captureOrder } from \"../../../utils\";\n\nconst PayPalCardFieldsOneTimePayment = () => {\n const { error: cardFieldsError } = usePayPalCardFields();\n const {\n error: submitError,\n submit,\n submitResponse,\n } = usePayPalCardFieldsOneTimePaymentSession();\n\n useEffect(() => {\n if (!submitResponse) {\n return;\n }\n\n const { orderId, message } = submitResponse.data;\n\n switch (submitResponse.state) {\n case \"succeeded\":\n console.log(`One time payment succeeded: orderId: ${orderId}`);\n captureOrder({ orderId }).then((captureResult) => {\n console.log(\"Payment capture result:\", captureResult);\n });\n break;\n case \"failed\":\n console.error(\n `One time payment failed: orderId: ${orderId}, message: ${message}`,\n );\n break;\n }\n }, [submitResponse]);\n\n useEffect(() => {\n if (cardFieldsError) {\n console.error(\"Error loading PayPal Card Fields\", cardFieldsError);\n }\n if (submitError) {\n console.error(\"Error submitting PayPal Card Fields payment\", submitError);\n }\n }, [cardFieldsError, submitError]);\n\n const handleSubmit = async () => {\n const { orderId } = await handleCreateOrder();\n await submit(orderId);\n };\n\n return (\n <div>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"1rem\",\n }}\n >\n <PayPalCardNumberField\n containerStyles={{\n height: \"3rem\",\n }}\n placeholder=\"Enter card number\"\n />\n <PayPalCardExpiryField\n containerStyles={{\n height: \"3rem\",\n }}\n placeholder=\"MM/YY\"\n />\n <PayPalCardCvvField\n containerStyles={{\n height: \"3rem\",\n }}\n placeholder=\"Enter CVV\"\n />\n </div>\n {!cardFieldsError && (\n <button className=\"card-fields-pay-button\" onClick={handleSubmit}>\n Pay\n </button>\n )}\n </div>\n );\n};\n\nexport default PayPalCardFieldsOneTimePayment;\n```\n\nExample:\n```text\nimport {\n PayPalCardCvvField,\n PayPalCardExpiryField,\n PayPalCardNumberField,\n usePayPalCardFields,\n usePayPalCardFieldsSavePaymentSession,\n} from \"@paypal/react-paypal-js/sdk-v6\";\nimport { useEffect } from \"react\";\nimport { createCardVaultToken } from \"../../../utils\";\n\nconst PayPalCardFieldsSavePayment = () => {\n const { error: cardFieldsError } = usePayPalCardFields();\n const {\n error: submitError,\n submit,\n submitResponse,\n } = usePayPalCardFieldsSavePaymentSession();\n\n useEffect(() => {\n if (!submitResponse) {\n return;\n }\n\n const { vaultSetupToken, message } = submitResponse.data;\n\n switch (submitResponse.state) {\n case \"succeeded\":\n console.log(\n `Save payment method succeeded: vaultSetupToken: ${vaultSetupToken}`,\n );\n break;\n case \"failed\":\n console.error(\n `Save payment method failed: vaultSetupToken: ${vaultSetupToken}, message: ${message}`,\n );\n break;\n }\n }, [submitResponse]);\n\n useEffect(() => {\n if (cardFieldsError) {\n console.error(\"Error loading PayPal Card Fields\", cardFieldsError);\n }\n if (submitError) {\n console.error(\"Error submitting PayPal Card Fields payment\", submitError);\n }\n }, [cardFieldsError, submitError]);\n\n const handleSubmit = async () => {\n const { vaultSetupToken } = await createCardVaultToken();\n await submit(vaultSetupToken);\n };\n\n return (\n <div>\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"1rem\",\n }}\n >\n <PayPalCardNumberField\n containerStyles={{\n height: \"3rem\",\n }}\n placeholder=\"Enter card number\"\n />\n <PayPalCardExpiryField\n containerStyles={{\n height: \"3rem\",\n }}\n placeholder=\"MM/YY\"\n />\n <PayPalCardCvvField\n containerStyles={{\n height: \"3rem\",\n }}\n placeholder=\"Enter CVV\"\n />\n </div>\n {!cardFieldsError && (\n <button className=\"card-fields-pay-button\" onClick={handleSubmit}>\n Save Payment Method\n </button>\n )}\n </div>\n );\n};\n\nexport default PayPalCardFieldsSavePayment;\n```\n\nExample:\n```text\nimport { useFetchEligibleMethods } from \"@paypal/react-paypal-js/sdk-v6/server\";\n\n// In a server component or loader\nconst eligibleMethodsResponse = await useFetchEligibleMethods({\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${clientToken}`,\n },\n environment: \"sandbox\",\n payload: {\n purchase_units: [{ amount: { currency_code: \"USD\", value: \"100.00\" } }],\n },\n});\n\n// Pass to provider\n<PayPalProvider\n eligibleMethodsResponse={eligibleMethodsResponse}\n clientToken={token}\n pageType=\"checkout\"\n>\n <Checkout />\n</PayPalProvider>;\n```\n\nExample:\n```text\ntype FindEligiblePaymentMethodsRequestPayload = {\n customer?: {\n channel?: {\n browser_type?: string;\n client_os?: string;\n device_type?: string;\n };\n country_code?: string;\n id?: string;\n email?: string;\n phone?: PhoneNumber;\n };\n purchase_units?: ReadonlyArray<{\n amount: {\n currency_code: string;\n value?: string;\n };\n payee?: {\n client_id?: string;\n display_data?: {\n business_email?: string;\n business_phone?: PhoneNumber & {\n extension_number: string;\n };\n brand_name?: string;\n };\n email_address?: string;\n merchant_id?: string;\n };\n }>;\n preferences?: {\n // runs advanced customer eligibility checks when set to true\n include_account_details?: boolean;\n include_vault_tokens?: boolean;\n payment_flow?: PaymentFlow;\n payment_source_constraint?: {\n constraint_type: string;\n payment_sources: Uppercase<EligiblePaymentMethods>[];\n };\n };\n shopper_session_id?: string;\n};\n```\n\nExample:\n```text\nimport {\n INSTANCE_LOADING_STATE,\n usePayPal,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction Component() {\n const { loadingStatus } = usePayPal();\n\n if (loadingStatus === INSTANCE_LOADING_STATE.PENDING) {\n return <div>Loading...</div>;\n }\n\n if (loadingStatus === INSTANCE_LOADING_STATE.REJECTED) {\n return <div>Failed to load PayPal SDK</div>;\n }\n\n return <div>Ready to process payments</div>;\n}\n```\n\nExample:\n```text\nimport {\n PayPalOneTimePaymentButton,\n type OnErrorData,\n} from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction Payment() {\n const handleError = (error: OnErrorData) => {\n console.error(\"Payment failed:\", error.message);\n if (error.isRecoverable) {\n // Prompt user to retry\n }\n };\n\n return (\n <PayPalOneTimePaymentButton\n createOrder={createOrder}\n onApprove={handleApprove}\n onError={handleError}\n presentationMode=\"auto\"\n />\n );\n}\n```\n\nExample:\n```text\nimport { useEligibleMethods } from \"@paypal/react-paypal-js/sdk-v6\";\n\nfunction CheckoutFlow() {\n const { eligiblePaymentMethods, isLoading } = useEligibleMethods();\n\n if (isLoading) return <div>Loading...</div>;\n\n return (\n <>\n <PayPalOneTimePaymentButton {...props} />\n {eligiblePaymentMethods?.isEligible(\"venmo\") && (\n <VenmoOneTimePaymentButton {...props} />\n )}\n {eligiblePaymentMethods?.isEligible(\"paylater\") && (\n <PayLaterOneTimePaymentButton {...props} />\n )}\n </>\n );\n}\n```\n\nExample:\n```text\nfunction Checkout() {\n const { loadingStatus } = usePayPal();\n\n const isLoading = loadingStatus === INSTANCE_LOADING_STATE.PENDING;\n\n return isLoading ? (\n <div>Initializing payment methods...</div>\n ) : (\n <PaymentButtons />\n );\n}\n```\n\nExample:\n```text\n<PayPalOneTimePaymentButton\n orderId=\"ORDER-123\"\n onApprove={handleApprove}\n presentationMode=\"auto\"\n/>\n```\n\nExample:\n```text\n<PayPalSavePaymentButton\n vaultSetupToken=\"VAULT-TOKEN-123\"\n onApprove={handleApprove}\n presentationMode=\"auto\"\n/>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.046Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":34,"totalLines":961,"estimatedTokens":15853}}75{"id":"doc-list_all_clients-11368937","source":"documentation","title":"List all clients","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/userresources/other/listuserclients","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/api/v1/users/00ub0oNGTSWTBKOLGLNR/clients\n```\n\nExample:\n```text\n[\n {\n \"client_id\": \"0oabskvc6442nkvQO0h7\",\n \"client_name\": \"My App\",\n \"client_uri\": null,\n \"logo_uri\": null,\n \"_links\": { … }\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.832Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":20,"estimatedTokens":73}}76{"id":"doc-replace_the_blocked_email_domains-bc6eba5a","source":"documentation","title":"Replace the blocked email domains","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/oktapersonalsettings/other/replaceblockedemaildomains","text":"Example:\n```text\ncurl -i -X PUT \\\n https://subdomain.okta.com/okta-personal-settings/api/v1/export-blocklists \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"domains\": [\n \"yahoo.com\",\n \"google.com\"\n ]\n }'\n```\n\nExample:\n```text\nNo content\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.841Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":19,"estimatedTokens":70}}77{"id":"doc-retrieve_an_identity_source_user-cf72a59f","source":"documentation","title":"Retrieve an identity source user","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/identitysource/other/getidentitysourceuser","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/api/v1/identity-sources/0oa3l6l6WK6h0R0QW0g4/users/00u7m9p9ZT8k2S2EX1f7\n```\n\nExample:\n```text\n{\n \"id\": \"00u7m9p9ZT8k2S2EX1f7\",\n \"externalId\": \"EXT987654321Z9Y7X\",\n \"created\": \"2025-07-24T12:06:05.000Z\",\n \"lastUpdated\": \"2025-08-05T16:15:44.000Z\",\n \"profile\": {\n \"userName\": \"emily.jones@example.com\",\n \"firstName\": \"Emily\",\n \"lastName\": \"Jones\",\n \"email\": \"emily.jones@example.com\",\n \"secondEmail\": \"emily.secondary@example.com\",\n \"mobilePhone\": \"987-654-3210\",\n \"homeAddress\": \"10800 NE 8th St #600, Bellevue, WA 98004\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.859Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":26,"estimatedTokens":159}}78{"id":"doc-start_the_import_from_the_identity_source-9caf58e0","source":"documentation","title":"Start the import from the identity source","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/identitysource/other/startimportfromidentitysource","text":"Example:\n```text\ncurl -i -X POST \\\n https://subdomain.okta.com/api/v1/identity-sources/0oa3l6l6WK6h0R0QW0g4/sessions/aps1qqonvr2SZv6o70h8/start-import\n```\n\nExample:\n```text\n[\n {\n \"id\": \"aps1qqonvr2SZv6o70h8\",\n \"identitySourceId\": \"0oa3l6l6WK6h0R0QW0g4\",\n \"status\": \"TRIGGERED\",\n \"importType\": \"INCREMENTAL\",\n \"created\": \"2022-04-04T15:56:05.000Z\",\n \"lastUpdated\": \"2022-05-05T18:15:44.000Z\"\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.860Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":21,"estimatedTokens":109}}79{"id":"doc-list_all_os_accounts_for_a_device-98860595","source":"documentation","title":"List all OS accounts for a device","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/device/other/listdeviceosaccounts","text":"Example:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/api/v1/devices/guo4a5u7JHHhjXrMK0g4/os-accounts?expand=users%2Caccount_linked_enrollments'\n```\n\nExample:\n```text\n[\n {\n \"id\": \"dao3qgkIEKjhNZudR0g4\",\n \"deviceId\": \"guo4a5u7JHHhjXrMK0g4\",\n \"created\": \"2026-01-19T17:22:30.000Z\",\n \"lastUpdated\": \"2026-01-19T17:22:30.000Z\",\n \"platform\": \"WINDOWS\",\n \"profile\": { … },\n \"status\": \"ACTIVE\",\n \"lastSeenAt\": \"2026-04-09T17:22:56.000Z\",\n \"resourceAlternateId\": null,\n \"resourceDisplayName\": { … },\n \"resourceId\": \"dao3qgkIEKjhNZudR0g4\",\n \"resourceType\": \"DOSAccount\",\n \"_embedded\": { … },\n \"_links\": { … }\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.867Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":29,"estimatedTokens":169}}80{"id":"doc-activate_a_device-e1cd9b19","source":"documentation","title":"Activate a device","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/device/other/activatedevice","text":"Example:\n```text\ncurl -i -X POST \\\n https://subdomain.okta.com/api/v1/devices/guo4a5u7JHHhjXrMK0g4/lifecycle/activate\n```\n\nExample:\n```text\nNo content\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.867Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":12,"estimatedTokens":43}}81{"id":"doc-list_the_active_signing_key_credential_for_idp-0adf0a4d","source":"documentation","title":"List the active signing key credential for IdP","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/identityprovidersigningkeys/other/listactiveidentityprovidersigningkey","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/api/v1/idps/0oa62bfdjnK55Z5x80h7/credentials/keys/active\n```\n\nExample:\n```text\n[\n \"MIIDnjCCAoagAwIBAgIGAVG3MN+PMA0GCSqGSIb3DQEBBQUAMIGPMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzENMAsGA1UECgwET2t0YTEUMBIGA1UECwwLU1NPUHJvdmlkZXIxEDAOBgNVBAMMB2V4YW1wbGUxHDAaBgkqhkiG9w0BCQEWDWluZm9Ab2t0YS5jb20wHhcNMTUxMjE4MjIyMjMyWhcNMjUxMjE4MjIyMzMyWjCBjzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xDTALBgNVBAoMBE9rdGExFDASBgNVBAsMC1NTT1Byb3ZpZGVyMRAwDgYDVQQDDAdleGFtcGxlMRwwGgYJKoZIhvcNAQkBFg1pbmZvQG9rdGEuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtcnyvuVCrsFEKCwHDenS3Ocjed8eWDv3zLtD2K/iZfE8BMj2wpTfn6Ry8zCYey3mWlKdxIybnV9amrujGRnE0ab6Q16v9D6RlFQLOG6dwqoRKuZy33Uyg8PGdEudZjGbWuKCqqXEp+UKALJHV+k4wWeVH8g5d1n3KyR2TVajVJpCrPhLFmq1Il4G/IUnPe4MvjXqB6CpKkog1+ThWsItPRJPAM+RweFHXq7KfChXsYE7Mmfuly8sDQlvBmQyxZnFHVuiPfCvGHJjpvHy11YlHdOjfgqHRvZbmo30+y0X/oY/yV4YEJ00LL6eJWU4wi7ViY3HP6/VCdRjHoRdr5L/DwIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQCzzhOFkvyYLNFj2WDcq1YqD4sBy1iCia9QpRH3rjQvMKDwQDYWbi6EdOX0TQ/IYR7UWGj+2pXd6v0t33lYtoKocp/4lUvT3tfBnWZ5KnObi+J2uY2teUqoYkASN7F+GRPVOuMVoVgm05ss8tuMb2dLc9vsx93sDt+XlMTv/2qi5VPwaDtqduKkzwW9lUfn4xIMkTiVvCpe0X2HneD2Bpuao3/U8Rk0uiPfq6TooWaoW3kjsmErhEAs9bA7xuqo1KKY9CdHcFhkSsMhoeaZylZHtzbnoipUlQKSLMdJQiiYZQ0bYL83/Ta9fulr1EERICMFt3GUmtYaZZKHpWSfdJp9\"\n]\n```\n\nExample:\n```text\n[\n {\n \"kty\": \"RSA\",\n \"created\": \"2025-04-14T16:29:59.000Z\",\n \"lastUpdated\": \"2025-04-14T16:29:59.000Z\",\n \"expiresAt\": \"2035-04-14T16:29:59.000Z\",\n \"kid\": \"your-key-id\",\n \"use\": \"sig\",\n \"x5c\": [ … ],\n \"x5t#S256\": \"pX0kpGWPotMaEqqtIoOH9L-sFBa-htNFu0MZiJz1Hi4\",\n \"e\": \"AQAB\",\n \"n\": \"wdmW7pNqxzmlrsWbHq6rQJDiMu4T344AKEzQ1jGffyCLCU-HKk5WqIVtQ4EJ5FU3Rk6kNeoTdkQbxn7t2QFj37ScHZkxXDbNEhFbZpvGh7-rYBG7TCnk8jO9ct_bpT-PCLCgC9L_67H2eCXXN-_gFVZAx7KEibb4NgUET2p34b5scGI2LwEefS-z8UBGlNkg9+SmI9PvjMXplFKazb6qlb27fp0PSfC4S5g8kOCqEGC9oNOCBHO5jyzlzcFq04AIaAX9N1X13UULrj-262O1-RCnQNTadbdrO6FXwfQ6lsLmvWCFBVzLTqxYxCGNY85lhAH1zjoEvXnInKYgnvmcuw\"\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.869Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":32,"estimatedTokens":523}}82{"id":"doc-remove_the_labels_from_resources-1f942b1f","source":"documentation","title":"Remove the labels from resources","url":"https://developer.okta.com/docs/api/iga/openapi/governance-production-reference/labels/removeresourcelabels","text":"Example:\n```text\ncurl -i -X POST \\\n https://subdomain.okta.com/governance/api/v1/resource-labels/unassign \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"resourceOrns\": [\n \"orn:okta:idp:00o11edPwGqbUrsDm0g4:apps:oidc:0oafxqCAJWWGELFTYASJ\",\n \"orn:okta:directory:00o11edPwGqbUrsDm0g4:groups:00g10ctakVI6XlTdk0g4\",\n \"orn:okta:governance:00o11edPwGqbUrsDm0g4:entitlement-bundles:enbogpaj3XUzcM62u1d6\",\n \"orn:okta:governance:00o11edPwGqbUrsDm0g4:collections:cologpaj3XUzcM62u1d6\",\n \"orn:okta:governance:00o11rndFqmZ5rNfs0g4:entitlement-values:ent63C22YQoNMWOJf0g2\"\n ],\n \"labelValueIds\": [\n \"lblo3v6xlwdtEX2il1d2\"\n ]\n }'\n```\n\nExample:\n```text\nNo content\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.881Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":25,"estimatedTokens":179}}83{"id":"doc-delete_a_risk_rule-f698a2b1","source":"documentation","title":"Delete a risk rule","url":"https://developer.okta.com/docs/api/iga/openapi/governance-production-reference/risk-rules/deleteriskrule","text":"Example:\n```text\ncurl -i -X DELETE \\\n 'https://subdomain.okta.com/governance/api/v1/risk-rules/{ruleId}'\n```\n\nExample:\n```text\nNo content\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.882Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":12,"estimatedTokens":39}}84{"id":"doc-list_my_catalog_entry_users-49e73bc2","source":"documentation","title":"List my catalog entry users","url":"https://developer.okta.com/docs/api/iga/openapi/governance-production-enduser-reference/my-catalogs/listmyentryusersv2","text":"Example:\n```text\n/governance/api/v2/my/catalogs/default/entries/{entryId}/users?filter=lastName%20sw%20%22Smi%22\n```\n\nExample:\n```text\n/governance/api/v2/my/catalogs/default/entries/{entryId}/users?filter=firstName%20sw%20%22John%22\n```\n\nExample:\n```text\n/governance/api/v2/my/catalogs/default/entries/{entryId}/users?filter=firstName%20sw%20%22John%22%20OR%20lastName%20sw%20%22John%22\n```\n\nExample:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/governance/api/v2/my/catalogs/default/entries/cenp2rjyxK1Js2Fc41d5/users?filter=firstName%20sw%20%22John%22%20OR%20lastName%20sw%20%22John%22&after=00u68w6vzKLultXS97g6&limit=20'\n```\n\nExample:\n```text\n{\n \"data\": [\n { … },\n { … },\n { … },\n { … },\n { … },\n { … }\n ],\n \"_links\": {\n \"self\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.892Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":39,"estimatedTokens":199}}85{"id":"doc-update_the_resource_request_settings-5f749cf4","source":"documentation","title":"Update the resource request settings","url":"https://developer.okta.com/docs/api/iga/openapi/governance-production-requests-admin-v2-reference/request-settings/updateresourcerequestsettingsv2","text":"Example:\n```text\ncurl -i -X PATCH \\\n 'https://subdomain.okta.com/governance/api/v2/resources/{resourceId}/request-settings' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"requestOnBehalfOfSettings\": {\n \"allowed\": true\n }\n }'\n```\n\nExample:\n```text\n{\n \"validAccessScopeSettings\": [\n { … },\n { … }\n ],\n \"validRequesterSettings\": [\n { … },\n { … }\n ],\n \"validAccessDurationSettings\": {\n \"required\": true,\n \"maximumDays\": 365,\n \"maximumHours\": 72,\n \"maximumWeeks\": 52,\n \"supportedTypes\": [ … ]\n },\n \"validRiskSettings\": {\n \"supportedTypes\": []\n },\n \"validRequestOnBehalfOfSettings\": [\n { … },\n { … }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.893Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":41,"estimatedTokens":170}}86{"id":"doc-manage_customer_profiles-de92b096","source":"documentation","title":"Manage Customer Profiles","url":"https://developer.squareup.com/docs/customers-api/use-the-api/keep-records","text":"Example:\n```text\n{\n \"customer\": {\n \"id\": \"FQWDXGBB2Q9WT1ZD6HKKSE9NQC\",\n \"created_at\": \"2022-05-29T21:14:49.48Z\",\n \"updated_at\": \"2022-05-29T21:14:49Z\",\n \"given_name\": \"John\",\n \"family_name\": \"Doe\",\n \"nickname\": \"Junior\",\n \"email_address\": \"[email protected]\",\n \"address\": {\n \"address_line_1\": \"1955 Broadway\",\n \"locality\": \"Springfield\",\n \"administrative_district_level_1\": \"MA\",\n \"postal_code\": \"01111\"\n },\n \"phone_number\": \"+1 (206) 222-3456\",\n \"company_name\": \"ACME Inc.\",\n \"preferences\": {\n \"email_unsubscribed\": false\n },\n \"creation_source\": \"THIRD_PARTY\",\n \"version\": 0\n }\n}\n```\n\nExample:\n```text\n{\n \"customers\": {\n \"idempotency_key_1\": {\n // customer fields\n },\n \"idempotency_key_2\": {\n // customer fields\n },\n \"idempotency_key_3\": {\n // customer fields\n },\n ...\n }\n}\n```\n\nExample:\n```text\n{\n \"responses\": {\n \"452ea896-f36e-4c5c-95d5-e5aa727b9b2c\": {\n \"customer\": {\n \"id\": \"TFVGJNH46AVMDCZY93KKKF5QW4\",\n \"created_at\": \"2024-01-20T00:32:34.43Z\",\n \"updated_at\": \"2024-01-20T00:32:34Z\",\n \"given_name\": \"Vera\",\n \"family_name\": \"Sara\",\n \"email_address\": \"[email protected]\",\n \"phone_number\": \"+14167779999\",\n \"preferences\": {\n \"email_unsubscribed\": false\n },\n \"creation_source\": \"THIRD_PARTY\",\n \"version\": 0\n }\n },\n \"cbde1ec6-96df-40d4-8019-af9a4fa893ed\": {\n \"customer\": {\n \"id\": \"6ZK40WV46EM8M2AVC9ZEF7B018\",\n \"created_at\": \"2024-01-20T00:32:34.533Z\",\n \"updated_at\": \"2024-01-20T00:32:34Z\",\n \"given_name\": \"Silva\",\n \"family_name\": \"Antonio\",\n \"email_address\": \"[email protected]\",\n \"address\": {\n \"address_line_1\": \"1001 Broadway Ave\",\n \"address_line_2\": \"Apt 1311\",\n \"locality\": \"Toronto\",\n \"administrative_district_level_1\": \"ON\",\n \"country\": \"CA\"\n },\n \"phone_number\": \"+14375552222\",\n \"note\": \"Birthday Club member\",\n \"preferences\": {\n \"email_unsubscribed\": false\n },\n \"creation_source\": \"THIRD_PARTY\",\n \"birthday\": \"0000-07-22\",\n \"version\": 0\n }\n },\n \"716cefbc-3d71-4d7c-bdc8-9c7f84c2d793\": {\n \"errors\": [\n {\n \"code\": \"INVALID_EMAIL_ADDRESS\",\n \"detail\": \"Expected email_address to be a valid email address\",\n \"field\": \"email_address\",\n \"category\": \"INVALID_REQUEST_ERROR\"\n }\n ]\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"customer\": {\n \"id\": \"FQWDXGBB2Q9WT1ZD6HKKSE9NQC\",\n \"created_at\": \"2022-05-29T21:14:49.48Z\",\n \"updated_at\": \"2022-09-16T09:36:22Z\",\n \"given_name\": \"John\",\n \"family_name\": \"Doe\",\n \"nickname\": \"Junior\",\n \"email_address\": \"[email protected]\",\n \"address\": {\n \"address_line_1\": \"1313 Main St\",\n \"address_line_2\": \"Apt 2B\",\n \"locality\": \"Springfield\",\n \"administrative_district_level_1\": \"MA\",\n \"postal_code\": \"01119\"\n },\n \"phone_number\": \"+1 (206) 222-3456\",\n \"company_name\": \"ACME Inc.\",\n \"preferences\": {\n \"email_unsubscribed\": false\n },\n \"creation_source\": \"THIRD_PARTY\",\n \"birthday\": \"0000-01-13\",\n \"segment_ids\": [\n \"MLYQHTSHXM6E8.REACHABLE\",\n \"gv2:8ESCGMK9GN26570X8VR2AP9W1G\"\n ],\n \"version\": 1\n }\n}\n```\n\nExample:\n```text\n{\n \"customers\": {\n \"customer_id_1\": {\n // customer fields\n },\n \"customer_id_2\": {\n // customer fields\n },\n \"customer_id_3\": {\n // customer fields\n },\n ...\n }\n}\n```\n\nExample:\n```text\n{\n \"responses\": {\n \"6ZK40WV46EM8M2AVC9ZEF7B018\": {\n \"customer\": {\n \"id\": \"6ZK40WV46EM8M2AVC9ZEF7B018\",\n \"created_at\": \"2024-01-20T00:32:34.533Z\",\n \"updated_at\": \"2024-01-20T00:32:34Z\",\n \"given_name\": \"Silva\",\n \"family_name\": \"Antonio\",\n \"email_address\": \"[email protected]\",\n \"address\": {\n \"address_line_1\": \"900 1st Ave\",\n \"locality\": \"Toronto\",\n \"administrative_district_level_1\": \"ON\",\n \"country\": \"CA\"\n },\n \"phone_number\": \"+14375552222\",\n \"note\": \"Birthday Club member\",\n \"company_name\": \"Swatch Design\",\n \"preferences\": {\n \"email_unsubscribed\": false\n },\n \"creation_source\": \"THIRD_PARTY\",\n \"birthday\": \"0000-07-22\",\n \"version\": 2\n }\n },\n \"TFVGJNH46AVMDCZY93KKKF5QW4\": {\n \"errors\": [\n {\n \"code\": \"INVALID_EMAIL_ADDRESS\",\n \"detail\": \"Expected email_address to be a valid email address\",\n \"field\": \"email_address\",\n \"category\": \"INVALID_REQUEST_ERROR\"\n }\n ]\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"responses\": {\n \"W8Q7NZQT08R6V6BSKVVC1VW5B0\": {},\n \"P6BZGEMCPAP4P31Y9M8PWQWE80\": {},\n \"8K35J21GQM4MVXDQTHCQBQDZ58\": {},\n \"1PTNXQXT5J2KS2YF7R80GHP69Z\": {\n \"errors\": [\n {\n \"code\": \"NOT_FOUND\",\n \"detail\": \"Customer with ID `1PTNXQXT5J2KS2YF7R80GHP69Z` not found.\",\n \"category\": \"INVALID_REQUEST_ERROR\"\n }\n ]\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.879Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":221,"estimatedTokens":1286}}87{"id":"doc-authorize_the_mobile_payments_sdk-901fe9d8","source":"documentation","title":"Authorize the Mobile Payments SDK","url":"https://developer.squareup.com/docs/mobile-payments-sdk/ios/configure-authorize","text":"Example:\n```text\nimport SquareMobilePaymentsSDK\n\nclass <#YourViewController#>: UIViewController {\n func authorizeMobilePaymentsSDK(accessToken: String, locationID: String) {\n guard MobilePaymentsSDK.shared.authorizationManager.state == .notAuthorized else {\n return\n }\n\n MobilePaymentsSDK.shared.authorizationManager.authorize(\n withAccessToken: accessToken,\n locationID: locationID) { error in\n guard let authError = error else {\n print(\"Square Mobile Payments SDK successfully authorized.\")\n return\n }\n\n // Handle auth error\n print(\"error: \\(authError.localizedDescription)\")\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"access_token\": \"EAAAEL_EXAMPLE_l5ncx260W8yWz2gGO0GtJeFBJqIdHIXZjpQZ_XW-yxh-Tl7MlF8vIE__n\",\n \"token_type\": \"bearer\",\n \"expires_at\": \"2024-05-15T19:36:00Z\",\n \"merchant_id\": \"ML61OXvVbScCI\",\n \"refresh_token\": \"EXAMPLEzRUFx8bgauwrDjXYIioyCDEB7vyOG0cScx-qfczgTpNtUjAGLResAKOe9\"\n}\n```\n\nExample:\n```text\nfunc deauthorizeMobilePaymentsSDK() {\n MobilePaymentsSDK.shared.authorizationManager.deauthorize {\n // Check authorization status\n print(MobilePaymentsSDK.shared.authorizationManager.state)\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.891Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":47,"estimatedTokens":324}}88{"id":"doc-square_net_sdk_quickstart-5bc2ae67","source":"documentation","title":"Square .NET SDK Quickstart","url":"https://developer.squareup.com/docs/sdks/dotnet/quick-start","text":"Example:\n```text\ndotnet new console --name Quickstart\n```\n\nExample:\n```text\n{\n \"AppSettings\": {\n \"AccessToken\": \"YOUR-SANDBOX-ACCESS-TOKEN\"\n\n }\n}\n```\n\nExample:\n```text\ndotnet add package Square\ndotnet add package Microsoft.Extensions.Configuration.Json\ndotnet add package Microsoft.Extensions.Configuration\n```\n\nExample:\n```text\nusing Square;\nusing Square.Locations;\n\nusing Microsoft.Extensions.Configuration;\n\nnamespace ExploreLocationsAPI\n{\n public class Program\n {\n private static SquareClient client = null!;\n private static IConfigurationRoot config = null!;\n\n static async Task Main(string[] args)\n {\n var builder = new ConfigurationBuilder()\n .AddJsonFile($\"appsettings.json\", true, true);\n\n config = builder.Build();\n var accessToken = config[\"AppSettings:AccessToken\"];\n\n client = new SquareClient(\n accessToken,\n new ClientOptions\n {\n BaseUrl = SquareEnvironment.Sandbox\n }\n );\n\n await RetrieveLocationsAsync();\n }\n\n static async Task RetrieveLocationsAsync()\n {\n try\n {\n var response = await client.Locations.ListAsync();\n if (response.Locations != null)\n {\n foreach (var location in response.Locations)\n {\n Console.WriteLine($\"location: country = {location.Country} name = {location.Name}\");\n }\n }\n else\n {\n Console.WriteLine(\"No locations found.\");\n }\n }\n catch (SquareApiException e)\n {\n Console.WriteLine(\"SquareApiException occurred:\");\n Console.WriteLine(\"Status Code: {0}\", e.StatusCode);\n Console.WriteLine(\"Error: {0}\", e.Message);\n }\n catch (Exception e)\n {\n Console.WriteLine($\"Exception occurred: {e.Message}\");\n }\n }\n }\n}\n```\n\nExample:\n```text\ndotnet run\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.895Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":93,"estimatedTokens":546}}89{"id":"doc-overview-2172a823","source":"documentation","title":"Overview","url":"https://developer.paypal.com/braintree/docs/guides/braintree-marketplace/overview","text":"Braintree a PayPal ServiceSDK DocsOverviewSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nBasicsClient AuthorizationOverviewTokenization KeyClient TokenPayment Method NoncesTransactionsCustomersPayment MethodsCheckout UIsDrop-in UIOverviewSetup and IntegrationCustomizationHosted FieldsOverviewSetup and IntegrationStylingEventsTroubleshooting and FAQExamplesFastlaneOverviewSetup and IntegrationClient-sideServer-sideTest your IntegrationAppendixAdvanced OptionsStylingBest Practice GuideTroubleshooting And FAQReference TypesFlexible Payment IntegrationPayment Method TypesOverviewACH Direct DebitOverviewConfigurationClient-sideServer-sideTesting and Go LiveInstant VerificationOverviewInstant Verification Client-sideInstant Verification Server-sideTesting Instant VerificationApple PayOverviewConfigurationClient-sideServer-sideTesting and Go LiveCredit CardsOverviewConfigurationClient-sideServer-sideTesting and Go LiveLocal Payment MethodsOverviewConfigurationClient-sideServer-sideTesting and Go LiveBoleto Bancário (Non-Instant)Multibanco (Non-Instant)OXXO (Non-Instant)Trustly (Non-Instant)SwishGoogle PayOverviewConfigurationClient-sideServer-sideTesting and Go LivePayPalOverviewClient-sidePayment FlowOne-time PaymentsRecurring PaymentsVaulted PaymentsCheckout with VaultPay Later OffersMobile CheckoutFeaturesApp SwitchShipping ModuleServer-sideTesting and Go LiveSamsung PayOverviewSEPA Direct DebitOverviewConfigurationClient-sideServer-sideVaultingTesting and Go LiveVenmoOverviewConfigurationClient-sideServer-sideTesting and Go LivePayment OrchestrationOverviewAdyendLocalEBANXFat ZebraFlexFactorFlutterwaveStripeTools3D SecureOverviewOnboardingStep by Step IntegrationApplying 3DS to Transactions and VerificationsMerchant Initiated Authentication (3RI)Rules ManagerAdvanced OptionsAuthentication InsightTestingPremium Fraud Management ToolsOverviewConfigurationClient-sideServer-sideWebhooksTesting and Go LiveData LensOverviewGetting StartedData Schema ReferenceSample QueriesIntegration PatternsBest Practices and SecurityTroubleshootingSupport and ResourcesFX OptimizerOverviewServer-sideTesting and Go LiveClient SDKSetupMigrationDeprecation PolicyDisputesOverviewManagingEvidence RequirementsAutomatingTesting and Go LiveNetwork TokensOverviewValue to MerchantsHow it WorksGetting StartedBring Your Own TokenPayment Request APIOverviewSetup and IntegrationReportsOverviewSettlement Batch SummariesCustom ReportsWebhooksWebhooksOverviewCreateParseTesting and Go LiveBraintree ExtendOAuthOverviewConfigurationConnect URLsClient-side Connect FlowAccess TokensShared VaultReferenceForward APIConfigurationTransformationsTokenization SupportHyperwallet IntegrationWorldpayExamplesCryptographyPGP Public KeyAdditional FeaturesOptimized Debit RoutingOverviewTransaction WorkflowEligibilityIntegrationManaging AuthorizationNetwork Response CodesTest and Go LiveCode SamplesSDKGraphQLBraintree Auth (Beta)OverviewConfigurationMerchant Connect FlowServer-side Connect FlowClient-side Connect FlowOAuth FlowWebhooksMerchant APIMulti-currencyTesting and Go LiveBrandingReferencePackage TrackingOverviewClient-sideServer-sideBraintree MarketplaceOverviewOnboarding Sub-merchantsConfirmationCreating TransactionsUpdating Sub-merchantsTesting and Go LiveRecurring BillingOverviewPlansCreating SubscriptionsManaging SubscriptionsTesting and Go LiveAdditional Features/Braintree Marketplace/OverviewAsk ChatGPTOverviewAvailability If you're a new merchant looking for a marketplace solution, contact our Sales team. In general, a marketplace structure allows customers to purchase goods and services from multiple providers under the umbrella of a marketplace owner. The owner facilitates the marketplace and often charges the providers a service fee. Braintree Marketplace allows you to split transactions and pay your providers through Braintree's gateway. You can designate a service fee with each transaction and we will disburse the appropriate funds to you and your sub-merchant. Onboarding a new sub-merchant is as easy as collecting basic contact information – we’ll take care of verifying their identity. CompatibilityNote New merchants not already integrated with Braintree Marketplace should contact our Sales team to get started. Braintree Marketplace is only available for business models in which the master merchant and sub-merchants are all domiciled in the US. It is not compatible with PayPal, Braintree's recurring billing, or most third-party shopping carts. Before you can get started, all merchant accounts need to be specially approved by us for use with Braintree Marketplace. TerminologyMaster Braintree Marketplace individual providers or sellers within that Braintree Marketplace Service portion of your sub-merchant's transaction revenue that is routed to your account option that allows you to hold funds through our banking partner until you decide to disburse them; at disbursement, you will receive the designated service fee and your sub-merchant will receive their portion of the payment sent to your server that indicate whether a merchant was successfully onboarded and whether there was a problem disbursing funds to your sub-merchant’s bank account API features Braintree provides the master merchant with four additional API features to enable this sub-merchantsConfirming the sub-merchant onboardingCreating transactions with service feesHolding transactions in escrowOn this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedIntegration GuideTutorial (Preview)Checkout UIsExample IntegrationsBasicsClient AuthorizationSingle-use TokenCustomersPayment MethodsTransactionsPayment Method TypesOverviewACH Direct DebitApple PayCredit CardsGoogle PayPayPalVenmoSecure Remote CommerceTools3D SecurePremium Fraud Management ToolsClient SDKDisputesPayment Request APIReportsWebhooksCheckout UIDrop-in UIHosted FieldsAdditional FeaturesBraintree Auth (Beta)Braintree MarketplaceGrant API (Beta)OAuth (Beta)PayPal HereRecurring BillingAPI ReferenceClient ReferencesServer-side API RequestsServer-side Response ObjectsGeneralBraintreepayments.comStatusAPIIn-PersonSupport ArticlesPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.061Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":1603}}90{"id":"doc-button_color_updates_paypal_developer-83335f2e","source":"documentation","title":"Button color updates | PayPal Developer","url":"https://developer.paypal.com/sdk/button-color-updates","text":"Copy for LLMView as MarkdownButton color updatesPayPal button color updates require no JavaScript SDK integration changes.Last 1, 2026JavaScript SDKWhen PayPal updates its brand guidelines, the PayPal JavaScript SDK v5 and v6 automatically update the appearance of buttons rendered on your site. No code changes are required. Current colorCurrent buttonNew buttonNew colorGold→BlueBlue→BlueSilver→WhiteWhite→WhiteBlack→Black Set your button color You can set the button color for accessibility or branding reasons. To choose a specific color, apply one of the supported color classes to your <paypal-button> element. <paypal-button type=\"checkout\" class=\"paypal-blue\"></paypal-button> Ensure accessibility To comply with WCAG 2.1 AA light backgrounds, use the blue or black button. On dark backgrounds, use the white button. On this pageOn this pageSet your button colorEnsure accessibility\n\nExample:\n```text\n<paypal-button type=\"checkout\" class=\"paypal-blue\"></paypal-button>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.073Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":249}}91{"id":"doc-preapproved_payments_agreements_report_paypal_de-db1472e5","source":"documentation","title":"Preapproved Payments Agreements report | PayPal Developer","url":"https://developer.paypal.com/reports/preapproved-payments-agreement","text":"Copy for LLMView as MarkdownPreapproved Payments Agreements reportReport specification for the Preapproved Payments Agreements SFTP report, including file naming, structure, and field definitionsLast 11, 2026The Preapproved Payments Agreements report is for merchants and payment processing partners who have integrated the Preapproved Payments product. The report provides detailed information about outstanding Preapproved Payments billing agreements. You must be an approved merchant to use this report. To request access, contact your PayPal account manager or customer support. You must have a PayPal SFTP account to access SFTP reports. To set up and access the Secure FTP Server, see Access SFTP reports. Keep in mind the following details about this generates and delivers this report on a daily basis, before AM in the leading time zone of the reporting window. PayPal can deliver the report as a comma-separated values (CSV) or tab-delimited (TAB) file. The character encoding of this report is UTF-16 (16-bit UCS/Unicode Transformation Format). The report is available on the Secure FTP Server for 45 days after its delivery date. A report file can contain a maximum of 1 million records. If the report contains more records, it is split across multiple files. The report is also organized by section, where each section represents a single PayPal account. If you are not using Multiple Account Management, the report contains only a single section. New or revised versions When PayPal supports multiple versions of this report, PayPal will notify you of the creation of any new version and of the deprecation of older versions. When multiple versions exist, you can receive 2 versions of the same report concurrently to test and integrate a new version. You can also receive non-consecutive versions of the same report concurrently. To enable different versions or request changes in report distribution, contact your PayPal account manager or customer support. Notifications PayPal monitors the generation and delivery of this report at all times and maintains 2 contact points for business contact for all notifications that relate to data integrity, data delivery, and new reporting features A technical contact for all notifications that relate to data integrity, data delivery, system outages, system updates, and new features PayPal notifies you of the following types of in report delivery Errors in report generation New version availability System outage System update or maintenance (pre-announcement) New reporting feature releases PayPal strongly recommends that you create a distribution list or email alias that allows multiple parties to receive communication about reports. To provide the appropriate notification email alias, contact your PayPal account manager or customer support. Report file name The file naming convention depends on whether you are using Multiple Account Management (MAM). Single account report For a single account, the filename follows this Field, DescriptionFieldDescriptionPPAAbbreviation for \"Downloadable Preapproved Payments Agreement report\"yyyymmddThe date of the data in the report. This date stamp represents the latest, or ending, date of the report data.sequenceNumberThe sequence number of the file. 2 characters, right-justified and zero-filled. Begins with 01 and increments until all parts are recorded. Always present even if there is only one file.versionThe version of the report. 3 characters, right-justified and zero-filled.formatThe report (tab-separated values) or CSV (comma-separated values) Multiple account report When using Multiple Account Management, the filename follows this Field, DescriptionFieldDescriptionPPAAbbreviation for Downloadable Preapproved Payments Agreement ReportyyyymmddThe date of the data in the report. This date stamp represents the latest, or ending, date of the data.reportingWindowThe window of time when the report was (GMT to GMT -0500), A (GMT -0500 to GMT -0800), H (GMT -0800 to GMT +0800), R (GMT +0800 to GMT )sequenceNumberThe sequence number of the file. 2 characters, right-justified, and zero-filled. Begins with 01 and increments until all parts are recorded. Always present, even if there is only 1 file.totalFilesThe total number of files for this date. Always 2 digits and zero-padded. For example, 02 for 2 total files.versionThe version of the report. 3 characters, right-justified, and zero-filled.formatThe report (tab-separated values) or CSV (comma-separated values) Report file structure Each row consists of a 2-letter row type that is followed by the details for that row type. Row types The following table describes the row types that are used in this report. The row types are the same for both single account and multiple account reports. Code, Description, SectionCodeDescriptionSectionRHReport headerReport header dataFHFile headerFile header dataSHSection headerSection header dataCHColumn headerSection body dataSBRow dataSection body dataSFSection footerSection footer dataSCSection record countSection record count dataRFReport footerReport footer dataRCReport record countReport record count dataFFFile footerFile footer data Single account report structure A single-file report has 1 section and is organized as follows. RH Report header FH File header SH Section header CH Column header SB Row data ... (additional row data) SF Section footer SC Section record count RF Report footer RC Report record count FF File footer Multiple account report structure For reports that split across multiple files, only the first file contains the report header, and only the last file contains the report footer and report record count. The following example shows a 2-section report that is split across 2 files. File 1, File 2File 1File 2RH Report headerFH File headerFH File headerSB Row dataSH Section header...CH Column headerSB Row dataSB Row dataSF Section footer...SC Section record countSB Row dataRF Report footerSF Section footerRC Report record countSC Section record countFF File footerSH Section headerCH Column headerSB Row data...FF File footer Report data This section describes the data that is delivered in the report header, report footer, and report record count rows. If the report is split across multiple files, only the last file contains the report footer and report record count rows. Report header data Report header data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (report header, RH)2report_generation_dateDate/timeThe date and time when the report file was generated, in this format YYYY/MM/DD :SS Offset. offset is a 5-character signed offset from GMT, for example +0800.3reporting_windowVarcharThe window of time when the report was (GMT to GMT -0500), A (GMT -0500 to GMT -0800), H (GMT -0800 to GMT +0800), R (GMT +0800 to GMT )4account_idVarcharAccount number that receives the report (Payer ID is the encrypted hash of the PayPal account.)5report_versionVarcharThe version of the report Report footer data Report footer data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (report footer, RF)2row_countNumberThe number of body data rows in the report. You can use this for reconciliation. The report may span multiple files. Report record count data Report record count data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (report record count, RC)2row_countNumberThe number of body data rows in the report. You can use this for reconciliation. The report may span multiple files. File data This section describes the data in the file header and file footer rows. Each file in the report has a file header and file footer, even if the report contains only 1 file. File header data File header data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (file header, FH)2file_countNumberThe sequence number of the file in the report. You can use this for reconciliation. File footer data File footer data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (file footer, FF)2row_countNumberThe number of body data rows in the file. You can use this for reconciliation. Section data This section describes the data in the section header, section footer, and section record count rows. If you are not using Multiple Account Management, the report contains only 1 section. Section header data Section header data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (section header, SH)2reporting_period_start_dateDate/timeThe beginning of the reporting period, in this format YYYY/MM/DD :SS Offset. offset is a 5-character signed offset from GMT, for example +0800.3reporting_period_end_dateDate/timeThe end of the reporting period, in this format YYYY/MM/DD :SS Offset. offset is a 5-character signed offset from GMT, for example +0800.4account_idVarcharAccount number that PayPal generated Section body data Body data appears in 1 row for each record, with data elements separated by the file delimiter. Before the body data rows, a column header row (CH) lists the name of each field. Position, Field name, Data characteristics, DescriptionPositionField nameData characteristicsDescription1column_typeLiteralThe column type (section body, SB)2agreement_idVarchar; blanks allowed; max 24 charactersThe billing agreement ID that PayPal returned when the billing agreement was created3agreement_action_typeAlphanumeric; max 5 charactersThe action that is associated with the (billing agreement ), P0100 (billing agreement ), P0200 (billing agreement ), or P0110 (billing agreement to non-activity)4agreement_payment_typeAlphanumeric; max 5 charactersThe type of payment that the payer's account can (no valid or current funding source; the payer has not verified their bank account or has not completed enrollment with PayPal), E (capable of paying with eCheck), or I (capable of paying instantaneously)5agreement_maximum_monthly_amountCurrency/amount; max 20 charactersThe maximum monthly amount that the payer agrees that the merchant can charge against their PayPal account6total_billed_to_dateCurrency/amount; max 25 charactersThe current sum of all amounts that have been charged against the agreement ID using the BillUser API7agreement_currencyThree-character currency code; max 3 charactersThe currency of the transaction. For a list of possible values, see the list of supported currencies.8agreement_modification_dateDate/time; max 25 charactersThe date and time when the agreement was last modified, in this format YYYY/MM/DD :SS Offset. offset is a 5-character signed offset from GMT, for example +0800.9agreement_descriptionAlphanumeric; blanks allowed; max 200 charactersDescription of the agreement as specified by the merchant10agreement_payer_paypal_account_idVarchar; blanks allowed; max 24 charactersUnique PayPal customer account number11agreement_payer_email_addressVarchar; max 127 charactersEmail address of the payer12agreement_payer_nameVarchar; blanks allowed; max 64 charactersFirst and last name of the agreement payer, in this format firstName lastName13agreement_payer_business_nameVarchar; blanks allowed; max 127 charactersPayer's business name14agreement_custom_fieldVarchar; blanks allowed; max 256 charactersCustom content specified by the originator of the agreement. Reserved for merchant use. Section footer data Section footer data appears in 1 row with data elements separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (section footer, SF)2row_countNumberThe number of body data rows in the section. You can use this for reconciliation. Section record count data Section record count data appears in 1 row, with each element separated by the file delimiter. All fields are non-blank unless otherwise noted. Position, Column name, Data type, DescriptionPositionColumn nameData typeDescription1column_typeLiteralThe column type (section record count, SC)2row_countNumberThe number of body data rows in the section. You can use this for reconciliation. Related content T-codes On this pageOn this pageNew or revised versionsNotificationsReport file nameSingle account reportMultiple account reportReport file structureRow typesSingle account report structureMultiple account report structureReport dataReport header dataReport footer dataReport record count dataFile dataFile header dataFile footer dataSection dataSection header dataSection body dataSection footer dataSection record count dataRelated content\n\nExample:\n```text\nRH Report header\nFH File header\nSH Section header\nCH Column header\nSB Row data\n... (additional row data)\nSF Section footer\nSC Section record count\nRF Report footer\nRC Report record count\nFF File footer\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.102Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":18,"estimatedTokens":3459}}92{"id":"doc-list_all_device_posture_checks-92c93b31","source":"documentation","title":"List all device posture checks","url":"https://developer.okta.com/docs/api/openapi/okta-management/management/tags/deviceposturecheck/other/listdeviceposturechecks","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/api/v1/device-posture-checks\n```\n\nExample:\n```text\n[\n {\n \"createdBy\": \"00u217pyf72CdUrBt1c5\",\n \"createdDate\": \"2019-10-02T18:03:07.000Z\",\n \"description\": \"Query macOS devices to check if firewall is enabled\",\n \"id\": \"dch3m8o4rWhwReDeM1c5\",\n \"lastUpdate\": \"2019-10-02T18:03:07.000Z\",\n \"lastUpdatedBy\": \"00u217pyf72CdUrBt1c5\",\n \"mappingType\": \"CHECKBOX\",\n \"name\": \"Device posture check macOS\",\n \"platform\": \"MACOS\",\n \"query\": \"SELECT CASE WHEN global_state = 0 THEN 0 ELSE 1 END AS firewall_enabled FROM alf;\",\n \"remediationSettings\": { … },\n \"type\": \"BUILTIN\",\n \"variableName\": \"macOSFirewall\",\n \"_links\": { … }\n }\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.900Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":29,"estimatedTokens":186}}93{"id":"doc-delete_an_org_group-96d96497","source":"documentation","title":"Delete an org group","url":"https://developer.okta.com/docs/api/openapi/aerial/aerial/org-groups/deleteorggroup","text":"Example:\n```text\ncurl -i -X DELETE \\\n 'https://aerial-apac.okta.com/{accountId}/api/v1/orgGroups/{groupId}' \\\n -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'\n```\n\nExample:\n```text\nNo content\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.910Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":52}}94{"id":"doc-retrieve_an_access_request_condition_template-882c7c97","source":"documentation","title":"Retrieve an access request condition template","url":"https://developer.okta.com/docs/api/openapi/aerial/aerial/governance/getrequestconditiontemplate","text":"Example:\n```text\ncurl -i -X GET \\\n 'https://aerial-apac.okta.com/{accountId}/governance/api/v1/request-condition-templates/{templateId}' \\\n -H 'Authorization: Bearer <YOUR_TOKEN_HERE>'\n```\n\nExample:\n```text\n{\n \"id\": \"020qqli3iolphlqkmrutpt8271c\",\n \"applyStatus\": \"APPLIED\",\n \"requestCondition\": {}\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.913Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":17,"estimatedTokens":81}}95{"id":"doc-list_all_access_request_catalog_entries_for_a_us-b64d31f5","source":"documentation","title":"List all access request catalog entries for a user","url":"https://developer.okta.com/docs/api/iga/openapi/governance-production-requests-admin-v2-reference/catalogs/listalldefaultuserentriesv2","text":"Example:\n```text\n/governance/api/v2/catalogs/default/user/{userId}/entries?filter=not(parent%20pr)&limit=20\n```\n\nExample:\n```text\n/governance/api/v2/catalogs/default/user/{userId}/entries?filter=not(parent%20pr)&limit=20&after=cen33e47frfMB93gQ8g6\n```\n\nExample:\n```text\n/governance/api/v2/catalogs/default/user/{userId}/entries?filter=not(parent%20pr)&match=figma&limit=8\n```\n\nExample:\n```text\n/governance/api/v2/catalogs/default/user/{userId}/entries?filter=parent%20eq%20%22cen385AlcdqGaY8HE0g2%22&limit=8\n```\n\nExample:\n```text\n/governance/api/v2/catalogs/default/user/{userId}/entries?filter=parent%20eq%20%22cen385AlcdqGaY8HE0g2%22&match=edit&limit=8\n```\n\nExample:\n```text\ncurl -i -X GET \\\n 'https://subdomain.okta.com/governance/api/v2/catalogs/default/user/00ucvnr9rbONeZdRp1d7/entries?filter=not(parent%20pr)&after=cenp2rjyxK1Js2Fc41d5&match=figma&limit=20'\n```\n\nExample:\n```text\n{\n \"data\": [\n { … }\n ],\n \"_links\": {\n \"self\": { … },\n \"next\": { … },\n \"atspoke\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.923Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":46,"estimatedTokens":254}}96{"id":"doc-retrieve_a_virtual_mcp-8ce4cbb4","source":"documentation","title":"Retrieve a virtual MCP","url":"https://developer.okta.com/docs/api/secures-ai/openapi/secures-ai-workload-principals/tags/virtualmcpregistration/other/getvirtualmcp","text":"Example:\n```text\ncurl -i -X GET \\\n https://subdomain.okta.com/workload-principals/api/v1/virtual-mcp-servers/wlp1aB2cD3eF4gH5iJ6k\n```\n\nExample:\n```text\n{\n \"id\": \"wlp1aB2cD3eF4gH5iJ6k\",\n \"orn\": \"orn:okta:directory:00o1gjjp4jsdR3Sww4x7:workload-principals:virtual-mcp:wlp1aB2cD3eF4gH5iJ6k\",\n \"status\": \"ACTIVE\",\n \"profile\": {\n \"displayName\": \"Production MCP Servers\",\n \"description\": \"Groups all production MCP servers for the engineering team\"\n },\n \"created\": \"2025-06-01T10:00:00Z\",\n \"lastUpdated\": \"2025-06-15T14:30:00Z\",\n \"_links\": {\n \"self\": { … },\n \"resource-server\": { … }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:41.929Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":26,"estimatedTokens":156}}97{"id":"doc-check_eligibility_paypal_developer-7a7ba034","source":"documentation","title":"Check Eligibility | PayPal Developer","url":"https://developer.paypal.com/expanded/eligibility","text":"Copy for LLMView as MarkdownCheck EligibilityLearn about the countries, currencies, and card brands supported by Expanded Checkout, and how to ensure your integration is eligible to accept payments.Last 11, 2026JavaScript SDKExpanded Checkout lets merchants accept payments from customers around the world. It supports multiple countries, currencies, card brands, and payment methods in a single integration. Each country has a set of supported currencies. Each currency maps to one or more card brands. When a customer pays, PayPal routes the transaction through the correct card brand and currency for that country. Expanded Checkout payments are available for 37 countries and 22 currencies. Supported countries and currencies Review the card brand currency table to find the card brands and currencies supported in each country. The table name and country code Supported currencies for each country Country, Card brand, CurrenciesCountryCard brandCurrenciesAustralia (AU)Mastercard, Visa, American Express, eftpos (AUD only)AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDAustria (AT)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDBelgium (BE)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDBulgaria (BG)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDCanada (CA)Mastercard, Visa, American Express (CAD and USD only), JCB (CAD only)AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDChina (CN)Mastercard, VisaAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDCyprus (CY)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDCzech Republic (CZ)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDDenmark (DK)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDEstonia (EE)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY1, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDFinland (FI)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDFrance (FR)Mastercard, Visa, American Express, Carte Bancaire (EUR only)AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDGermany (DE)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDGreece (GR)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDHong Kong (HK)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDHungary (HU)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDIreland (IE)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDItaly (IT)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDJapan (JP)Mastercard, Visa, American Express (AUD, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, JPY, NOK, NZD, PLN, SEK, SGD, and USD only), JCB (JPY only), DinersAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDLatvia (LV)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDLiechtenstein (LI)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDLithuania (LT)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDLuxembourg (LU)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDMalta (MT)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDMexico (MX)Mastercard, Visa, American ExpressMXNNetherlands (NL)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDNorway (NO)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDPoland (PL)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDPortugal (PT)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDRomania (RO)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDSingapore (SG)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDSlovakia (SK)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDSlovenia (SI)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD0, USDSpain (ES)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDSweden (SE)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDUnited Kingdom (GB)Mastercard, Visa, American ExpressAUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USDUnited States (US)Mastercard, Visa, American Express, Discover (USD only), Debit networks (Star/Star Access, Pulse, Nyce, Accel) (USD only), China Union Pay (USD only), JCB (USD only), Diners (USD only)AUD, BRL, CAD, CHF, CZK, DKK, EUR, GBP, HKD, HUF, ILS, JPY0, MXN, NOK, NZD, PHP, PLN, SEK, SGD, THB, TWD, USD 0 - Zero-digit currency; no decimal places or fractions. 3D Secure authentication 3D Secure is available for Expanded Checkout payment integrations. If you are based in Europe, you may be subject to the Second Payment Services Directive (PSD2): Include 3D Secure as part of your integration. Pass the cardholder's billing address as part of the transaction processing. Visit our PayPal PSD2 page to learn more. Supported payment methods Expanded Checkout supports the following payment method, Payment type, Countries, RefundsPayment methodPayment typeCountriesRefundsPayPalDigital walletCountry supportYesPay LaterLoanAustralia, France, Germany, Italy, Spain, United Kingdom, United StatesYesPayPal CreditRevolving line of credit similar to a credit cardUnited States, United KingdomYesVenmoDigital walletUnited StatesYesAmerican ExpressCredit cardPayPal Checkout country support, Advanced credit and debit country supportYesApple PayPushCountry supportUp to 180 daysBancontactBank redirectBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.Within 180 daysBLIKBank redirectBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.Within 180 daysDiscoverCredit cardPayPal Checkout country support, Advanced credit and debit country supportYesepsBank redirectBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.Within 180 daysGoogle PayPushCountry supportUp to 180 daysiDEALBank redirectBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.Within 180 daysMastercardCredit cardPayPal Checkout country support, Advanced credit and debit country supportYesMultibancoVoucherBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.NoMyBankBank redirectBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.Within 180 daysPay upon InvoiceDeferred paymentBuyer 180 daysPrzelewy24Bank redirectBuyer Merchant PayPal-supported countries except Brazil, Russia, and Japan.Within 180 daysTrustlyBank redirectAustriaGermanyDenmarkEstoniaSpainFinlandUnited KingdomLithuaniaLatviaNetherlandsNorwaySwedenUp to 365 daysVisaCredit cardPayPal Checkout country support, Advanced credit and debit country supportYes Common errors Unsupported currency for a country only accepts specific currencies. Check the card brand currency table before setting the currency in your API request. Sending an unsupported currency returns an error. Missing card brand card brands require activation before use. Confirm your account supports the card brands listed for your target country. Wrong country the ISO 3166-1 alpha-2 country code. An incorrect code causes the transaction to fail or route incorrectly. Next steps After reviewing the supported countries and currencies, take these the countries and currencies your business needs. Confirm your PayPal account has those card brands enabled. Update your checkout integration to pass the correct country and currency values. On this pageOn this pageSupported countries and currencies3D Secure authenticationSupported payment methodsCommon errorsNext steps\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.496Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":2520}}98{"id":"doc-configure_your_sandbox_and_live_accounts_paypal_-adc1546c","source":"documentation","title":"Configure your sandbox and live accounts | PayPal Developer","url":"https://developer.paypal.com/platforms/create-account/","text":"Example:\n```text\ncurl -v POST https://api-m.sandbox.paypal.com/v1/oauth2/token -u \"CLIENT_ID:CLIENT_SECRET\" -H \"Content-Type: application/x-www-form-urlencoded\" -d \"grant_type=client_credentials\"\n```\n\nExample:\n```text\n{\n \"scope\": \"https://uri.paypal.com/services/invoicing https://uri.paypal.com/services/disputes/read-buyer https://uri.paypal.com/services/payments/realtimepayment https://uri.paypal.com/services/disputes/update-seller https://uri.paypal.com/services/payments/payment/authcapture openid https://uri.paypal.com/services/disputes/read-seller https://uri.paypal.com/services/payments/refund https://api-m.paypal.com/v1/vault/credit-card https://api-m.paypal.com/v1/payments/.* https://uri.paypal.com/payments/payouts https://api-m.paypal.com/v1/vault/credit-card/.* https://uri.paypal.com/services/subscriptions https://uri.paypal.com/services/applications/webhooks\",\n \"access_token\": \"A21AAFEpH4PsADK7qSS7pSRsgzfENtu-Q1ysgEDVDESseMHBYXVJYE8ovjj68elIDy8nF26AwPhfXTIeWAZHSLIsQkSYz9ifg\",\n \"token_type\": \"Bearer\",\n \"app_id\": \"APP-80W284485P519543T\",\n \"expires_in\": 31668,\n \"nonce\": \"2020-04-03T15:35:36ZaYZlGvEkV4yVSz8g6bAKFoGSEzuy3CQcz3ljhibkOHg\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.706Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":18,"estimatedTokens":300}}99{"id":"doc-delete_objects_cloudflare_r2_docs-f0a03598","source":"documentation","title":"Delete objects · Cloudflare R2 docs","url":"https://developers.cloudflare.com/r2/objects/delete-objects/","text":"Documentation IndexFetch the complete documentation index ://developers.cloudflare.com/r2/llms.txtUse this file to discover all available pages before exploring further.\n\nExample:\n```text\nexport default {\n\tasync fetch(request: Request, env: Env, ctx: ExecutionContext) {\n\t\tawait env.MY_BUCKET.delete(\"image.png\");\n\t\treturn new Response(\"Deleted\");\n\t},\n} satisfies ExportedHandler<Env>;\n```\n\nExample:\n```text\nimport { S3Client, DeleteObjectCommand } from \"@aws-sdk/client-s3\";\n\nconst S3 = new S3Client({\n\tregion: \"auto\", // Required by SDK but not used by R2\n\t// Provide your Cloudflare account ID\n\tendpoint: `https://<ACCOUNT_ID>.r2.cloudflarestorage.com`,\n\t// Retrieve your S3 API credentials for your R2 bucket via API tokens (see: https://developers.cloudflare.com/r2/api/tokens)\n\tcredentials: {\n\t\taccessKeyId: '<ACCESS_KEY_ID>',\n\t\tsecretAccessKey: '<SECRET_ACCESS_KEY>',\n\t},\n});\n\nawait S3.send(\n\tnew DeleteObjectCommand({\n\t\tBucket: \"my-bucket\",\n\t\tKey: \"image.png\",\n\t}),\n);\n```\n\nExample:\n```text\nimport boto3\n\ns3 = boto3.client(\n\tservice_name=\"s3\",\n\t# Provide your Cloudflare account ID\n\tendpoint_url=f\"https://{ACCOUNT_ID}.r2.cloudflarestorage.com\",\n\t# Retrieve your S3 API credentials for your R2 bucket via API tokens (see: https://developers.cloudflare.com/r2/api/tokens)\n\taws_access_key_id=ACCESS_KEY_ID,\n\taws_secret_access_key=SECRET_ACCESS_KEY,\n\tregion_name=\"auto\", # Required by SDK but not used by R2\n)\n\ns3.delete_object(Bucket=\"my-bucket\", Key=\"image.png\")\n```\n\nExample:\n```text\nwrangler r2 object delete test-bucket/image.png\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:47.081Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":58,"estimatedTokens":390}}100{"id":"doc-aws_cli_cloudflare_r2_docs-2d912036","source":"documentation","title":"aws CLI · Cloudflare R2 docs","url":"https://developers.cloudflare.com/r2/examples/aws/aws-cli/","text":"Documentation IndexFetch the complete documentation index ://developers.cloudflare.com/r2/llms.txtUse this file to discover all available pages before exploring further.\n\nExample:\n```text\naws configure\n```\n\nExample:\n```text\nAWS Access Key ID [None]: <ACCESS_KEY_ID>\nAWS Secret Access Key [None]: <SECRET_ACCESS_KEY>\nDefault region name [None]: auto\nDefault output format [None]: json\n```\n\nExample:\n```text\n# Provide your Cloudflare account ID\naws s3api list-buckets --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com\n# {\n# \"Buckets\": [\n# {\n# \"Name\": \"my-bucket\",\n# \"CreationDate\": \"2022-05-18T17:19:59.645000+00:00\"\n# }\n# ],\n# \"Owner\": {\n# \"DisplayName\": \"134a5a2c0ba47b38eada4b9c8ead10b6\",\n# \"ID\": \"134a5a2c0ba47b38eada4b9c8ead10b6\"\n# }\n# }\n\naws s3api list-objects-v2 --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com --bucket my-bucket\n# {\n# \"Contents\": [\n# {\n# \"Key\": \"ferriswasm.png\",\n# \"LastModified\": \"2022-05-18T17:20:21.670000+00:00\",\n# \"ETag\": \"\\\"eb2b891dc67b81755d2b726d9110af16\\\"\",\n# \"Size\": 87671,\n# \"StorageClass\": \"STANDARD\"\n# }\n# ]\n# }\n```\n\nExample:\n```text\n# You can pass the --expires-in flag to determine how long the presigned link is valid.\naws s3 presign --endpoint-url https://<ACCOUNT_ID>.r2.cloudflarestorage.com s3://my-bucket/ferriswasm.png --expires-in 3600\n# https://<ACCOUNT_ID>.r2.cloudflarestorage.com/my-bucket/ferriswasm.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<credential>&X-Amz-Date=<timestamp>&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=<signature>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:47.094Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":54,"estimatedTokens":428}}101{"id":"doc-performance_max_campaigns_using_adsapp_google_ad-8747123b","source":"documentation","title":"Performance Max campaigns using AdsApp | Google Ads Scripts | Google for Developers","url":"https://developers.google.com/google-ads/scripts/docs/campaigns/performance-max/using-ads-app","text":"Example:\n```text\nconst campaignName = \"My Performance Max campaign\";\n\nconst campaignIterator = AdsApp.performanceMaxCampaigns()\n .withCondition(`campaign.name = \"${campaignName}\"`)\n .get();\n\nfor (const campaign of campaignIterator) {\n ...\n}\n```\n\nExample:\n```text\nconst imageUrl = \"http://www.example.com/example.png\";\nconst imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();\nconst assetOperation = AdsApp.adAssets().newImageAssetBuilder()\n .withName(\"new asset name\")\n .withData(imageBlob)\n .build();\nconst imageAsset = assetOperation.getResult();\n```\n\nExample:\n```text\n// First, fetch the Performance Max campaign we want to operate on.\nconst campaignIterator = AdsApp.performanceMaxCampaigns()\n .withCondition(`campaign.name = '${campaignName}'`)\n .get();\nlet campaign;\nif (campaignIterator.hasNext()) {\n campaign = campaignIterator.next();\n} else {\n throw `No campaign found with name ${campaignName}.`\n}\n\n// Then, get that campaign's asset groups.\nconst assetGroupIterator = campaign.assetGroups().get();\n\n// The campaign must have at least one asset group, so we can just assume so here.\nconst assetGroup = assetGroupIterator.next();\n\n// Add the asset from the previous step.\nassetGroup.addAsset(imageAsset, 'MARKETING_IMAGE');\n```\n\nExample:\n```text\nconst assetSelector = AdsApp.adAssets().assets();\n```\n\nExample:\n```text\nconst assetIterator = assetSelector.get();\n\nfor (const asset of assetIterator) {\n ...\n}\n```\n\nExample:\n```text\nassetGroup.addAsset('asset text here', 'HEADLINE');\n```\n\nExample:\n```text\nassetGroup.removeAsset(imageAsset, 'MARKETING_IMAGE');\n```\n\nExample:\n```text\n// The resource name is a unique identifier for this asset group.\nconst assetGroupName = assetGroup.getResourceName();\nresults = AdsApp.search(\n `SELECT asset.resource_name, asset_group_asset.field_type\n FROM asset_group_asset\n WHERE asset_group.resource_name = '${assetGroupName}'`\n);\n```\n\nExample:\n```text\n// This example assumes at least one asset is returned. We'll remove the first\n// asset, whatever it is. In your code, customize this to choose the right\n// asset to be removed.\nconst row_info = results.next().asset;\nassetGroup.remove(row_info.asset.resource_name, row_info.asset_group_asset.field_type);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.139Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":92,"estimatedTokens":563}}102{"id":"doc-websocket_mode_openai_api-c8e72bdc","source":"documentation","title":"WebSocket Mode | OpenAI API","url":"https://developers.openai.com/api/docs/guides/websocket-mode","text":"For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.\n\nChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases Resources ChatGPT Plugins Extend ChatGPT and Codex Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and measure ads in ChatGPT Resources Showcase Demo apps to get inspired Blog Learnings and experiences from developers Cookbook Notebook examples for building with OpenAI models Learn Docs, videos, and demo apps for building with OpenAI Community Programs, meetups, and support for builders Start searching API Dashboard Try ChatGPT\n\nOverview Models Agents Tools Voice & Audio Production API reference\n\nSearch the API docs Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching\n\nPrimary navigation API Codex ChatGPT Docs Use cases Resources Resources Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching Overview Models Agents Tools Voice & Audio Production API reference OverviewModelsAgentsToolsVoice & AudioProductionAPI referenceDocs sectionOverview Home Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Model catalog Choose a model Pricing Model selection Text and code Text generation Code generation Structured output Prompting Overview Prompt engineering Citation formatting Migration guide Prompt generation Frontend prompting Reasoning Reasoning models Reasoning best practices Images and video Images and vision Image generation Video generation Realtime and audio Audio and speech Overview Voice agents Specialized models Deep research Embeddings Moderation Overview Agents SDK Quickstart Agent definitions Models and providers Running agents Sandbox agents Orchestration Guardrails Results and state Integrations and observability Evaluate agent workflows ChatKit Overview Customize Widgets Actions Advanced integrations Overview Function calling Search and retrieval Web search File search Retrieval Connect tools and data MCP and Connectors Secure MCP Tunnel Build tool workflows Skills Tool search Programmatic tool calling Computer and code Shell Computer use Apply Patch Local shell Code interpreter Media Image generation Overview Get started Voice agents Live translation Realtime prompting guide Audio Audio and speech Transcription File transcription Realtime transcription Speech generation Connection methods WebRTC WebSocket SIP Sessions and operations Managing conversations Voice activity detection Realtime with tools Webhooks and server-side controls Managing costs Go live Production best practices Deployment checklist Performance and quality Latency optimization Predicted Outputs Fast mode Accuracy optimization Cost and throughput Cost optimization Prompt caching Batch Flex processing Safety and governance Safety best practices Red teaming Safety checks Cybersecurity checks Under 18 API Guidance Content provenance Your data Permissions Infrastructure and access Terraform provider Overview Projects and access Service accounts Rate limits and spend Model, tool, and data controls Import and reconciliation Private Link IP allowlist Workload identity federation X.509 certificates (beta) Kubernetes AWS Microsoft Azure Google Cloud Oracle Cloud Infrastructure GitHub Actions SPIFFE IP egress ranges Amazon Bedrock Operations Rate limits Spend limits Admin APIs Error codes Docs Use cases DocsUse casesDocs sectionDocs Plugins Workspace Agents Commerce Ads PluginsWorkspace AgentsCommerceAdsDocs sectionSelect... Home Quickstart Core concepts Plugin architecture Skills MCP server Plan Brainstorm use cases Define tools Build Build an MCP server Add UI to your MCP server (optional) Authenticate users Build skills Package your plugin Examples Test and publish Connect and test your plugin Submit and publish Submission error reference Conversion specs Restaurant reservation spec Get Quote spec Product checkout spec Guides UI guidelines Optimize Metadata Submit a Claude Code plugin Security & Privacy Troubleshooting Resources Changelog Plugin guidelines MCP server review requirements Plugin UI reference Checkout API reference Home Get started Trigger workspace agent runs Authenticate with Workspace Agent access tokens Home Guides Get started Best practices File Upload Overview Products API Overview Feeds Products Promotions Ads Overview Measurement Measurement Pixel Multiple Pixels (Advanced) Image Tag Conversions API Supported Events Advertiser API Overview API Partner Setup Quickstart Bulk API Product Feeds Delta Feeds API Campaign Targeting Conversion-Optimized Campaigns API Reference Authentication Ad Account Campaigns Ad Groups Ads Insights Files Conversion Setup Overview Features Configuration Developers Security Administration Use Cases Resources OverviewFeaturesConfigurationDevelopersSecurityAdministrationUse CasesResourcesDocs sectionOverview Home Get started Quickstart Use ChatGPT Get started with Work Import from another agent Foundations Prompting Personalize ChatGPT Skills & Plugins Permissions Explore What's new Models Pricing Glossary Available on ChatGPT desktop app Remote ChatGPT on the web Codex CLI Codex IDE extension Codex cloud Releases Changelog Feature Maturity Open Source Overview Workflows Projects and chats Sites Visualizations Scheduled tasks Long-running work Notifications Pets Codex Micro Capabilities Browser Computer use Voice Plugins Web search Image generation Image inputs Appshots Chrome extension Work with files Reference Commands Slash commands Settings Troubleshooting Overview Customization Overview Memories Computer History Config file Config Basics Advanced Config Config Reference Environment Variables Sample Config Agent configuration AGENTS.md Subagents Speed Rules Extend ChatGPT and Codex Record & Replay MCP Linux Desktop app Windows Desktop app Windows sandbox WSL Overview Development workflows Code review Integrated terminal Extend and automate Build skills Build plugins Hooks Environments Modes Local environments Cloud environment Git worktrees Build with Codex Codex SDK App Server MCP Server GitHub Action Non-interactive mode Third-party integrations GitHub Slack Linear Reference CLI customization Developer commands Developer settings Overview Permissions Profiles Sandboxing Auto-review Agent approvals & security Internet access Codex Security Overview Codex Security plugin Quickstart Run a security scan Run a deep scan Review code changes Use the Security workbench Triage a backlog Fix findings Propose security hardening Write vulnerability reports Export and track findings Changelog Codex Security CLI Quickstart Run bulk scans Run scans in CI Reference FAQ TypeScript SDK Codex Security cloud Setup Security Review Improving the threat model FAQ Cyber safety Models & Trusted Access Recommended configuration Overview Getting started Admin rollout guide ChatGPT Work Overview ChatGPT Work admin FAQ Identity and authentication Authentication overview Personal Access Tokens Service accounts Workspace access, policy, and models Groups and provisioning Roles and workspace permissions GPTs and Sharing Managed configuration Prisma AIRS HIPAA configuration Workspace model availability Plugin and connector controls Plugin controls Skill controls Usage, governance, and compliance Governance Workspace analytics Analytics API Compliance API and audit events Deployment and model providers Manage app updates Windows app deployment Remote connections Amazon Bedrock Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Showcase Blog Cookbook Learn Community ShowcaseBlogCookbookLearnCommunityDocs sectionSelect... All posts Recent Custom Code Review rules for Codex Mastering remote engineering work from your phone Making private MCP servers reachable without making them public How Perplexity Brought Voice Search to Millions Using the Realtime API Designing delightful frontends with GPT-5.4 Topics General API Apps SDK Audio Codex Home Topics Agents Evals Multimodal Text Guardrails Optimization ChatGPT Codex gpt-oss Contribute Cookbook on GitHub Home OpenAI Developers plugin Docs MCP Categories Demo apps Videos Topics Agents Audio & Voice Computer Use Codex Evals gpt-oss Fine-tuning Image generation Scaling Tools Video generation Community Programs Codex Ambassadors Codex for Students Codex for Open Source OpenAI for Startups Events Meetups Spaces Developer Forum Discord Reddit X API Dashboard Try ChatGPT\n\nHome Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Copy Page WebSocket Mode Use persistent WebSocket connections and incremental inputs for lower-latency agentic workflows. Copy Page The Responses API supports a WebSocket mode for long-running, tool-call-heavy workflows. In this mode, you keep a persistent connection to /v1/responses and continue each turn by sending only new input items plus previous_response_id. WebSocket mode is compatible with both Zero Data Retention (ZDR) and store=false. Why use WebSocket mode WebSocket mode is most useful when a workflow involves many model-tool round trips (for example, agentic coding or orchestration loops with repeated tool calls). Because the connection stays open and each turn sends only incremental input, WebSocket mode reduces per-turn continuation overhead and improves end-to-end latency across long chains. For rollouts with 20+ tool calls, we have seen up to roughly 40% faster end-to-end execution. Connect and create responses In WebSocket mode, start each turn by sending a response.create event from the client. The payload mirrors the normal Responses create body, except that transport-specific fields like stream and background are not used. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28from websocket import create_connection import json import os ws = create_connection( \"wss://api.openai.com/v1/responses\", header=[ f\"Authorization: Bearer {os.environ['OPENAI_API_KEY']}\", ], ) ws.send( json.dumps( { \"type\": \"response.create\", \"model\": \"gpt-5.6\", \"store\": False, \"input\": [ { \"type\": \"message\", \"role\": \"user\", \"content\": [{\"type\": \"input_text\", \"text\": \"Find fizz_buzz()\"}], } ], \"tools\": [], } ) ) Clients can optionally warm up request state by sending response.create with This is useful when you already know the tools, instructions, and/or custom messages you plan to send with an upcoming turn. does not return a model output, but prepares request state so the next generated turn can start faster. The warmup request returns a response ID that you can chain from with previous_response_id, including on later turns in a response chain. The next section explains how to continue a session using previous_response_id and incremental inputs. Continue with incremental inputs To continue a run, send another response.create set to the prior response ID. input containing only new items (for example, tool outputs and the next user message). 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23ws.send( json.dumps( { \"type\": \"response.create\", \"model\": \"gpt-5.6\", \"store\": False, \"previous_response_id\": \"resp_123\", \"input\": [ { \"type\": \"function_call_output\", \"call_id\": \"call_123\", \"output\": \"tool result\", }, { \"type\": \"message\", \"role\": \"user\", \"content\": [{\"type\": \"input_text\", \"text\": \"Now optimize it.\"}], }, ], \"tools\": [], } ) ) How continuation works WebSocket mode uses the same previous_response_id chaining semantics as HTTP mode, but it adds a lower-latency continuation path on the active socket. On an active WebSocket connection, the service keeps one previous-response state in a connection-local in-memory cache (the most recent response). Continuing from that most recent response is fast because the service can reuse connection-local state. Because the previous-response state is retained only in memory and is not written to disk, you can use WebSocket mode in a way that is compatible with store=false and Zero Data Retention (ZDR). If a previous_response_id is not in the in-memory cache, behavior depends on whether you store store=true, the service may hydrate older response IDs from persisted state when available. Continuation can still work, but it usually loses the in-memory latency benefit. With store=false (including ZDR), there is no persisted fallback. If the ID is uncached, the request returns previous_response_not_found. If a turn fails (4xx or 5xx), the service evicts the referenced previous_response_id from the connection-local cache. This prevents reusing stale cached state for that failed continuation. Compaction and creating new responses If you are using compaction, there are two different continuation compaction (context_management) When you enable server-side compaction (context_management with compact_threshold), compaction happens during normal /responses generation. In WebSocket mode, you continue the same way you normally the next response.create with the latest previous_response_id and only new input items. Standalone /responses/compact The standalone /responses/compact endpoint returns a new compacted input window, not a response ID. After compaction, create a new response on your WebSocket connection using the compacted window as input (plus the next user/tool items). Start a new chain by omitting previous_response_id or setting it to null. Pass the compacted output as-is; do not prune the returned window. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25# Compact your current window (HTTP call) compacted = client.responses.compact( model=\"gpt-5.6\", input=long_input_items_array, ) # Start a new response on the WebSocket using the compacted window ws.send( json.dumps( { \"type\": \"response.create\", \"model\": \"gpt-5.6\", \"store\": False, \"input\": [ *compacted.output, { \"type\": \"message\", \"role\": \"user\", \"content\": [{\"type\": \"input_text\", \"text\": \"Continue from here.\"}], }, ], \"tools\": [], } ) ) Connection behavior and limits Server events and ordering match the existing Responses streaming event model. A single WebSocket connection can receive multiple response.create messages, but it runs them sequentially (one in-flight response at a time). No multiplexing support today. Use multiple connections if you need parallel runs. Connection duration is limited to 60 minutes. Reconnect when the limit is reached. Reconnect and recover When a connection closes (or hits the 60-minute limit), open a new WebSocket connection and continue with one of these your prior response is persisted (store=true) and you have a valid response ID, continue with previous_response_id and new input items. If you cannot continue the chain (for example, store=false/ZDR or previous_response_not_found), start a new response by setting previous_response_id to null (or omitting it) and send the full input context for the next turn. If you compacted context with /responses/compact, use the returned compacted window as the base input for that new response, then append the latest user/tool items. Errors to handle previous_response_not_found 123456789 { \"type\": \"error\", \"status\": 400, \"error\": { \"code\": \"previous_response_not_found\", \"message\": \"Previous response with id 'resp_abc' not found.\", \"param\": \"previous_response_id\" } } websocket_connection_limit_reached 123456789 { \"type\": \"error\", \"error\": { \"type\": \"invalid_request_error\", \"code\": \"websocket_connection_limit_reached\", \"message\": \"Responses websocket connection limit reached (60 minutes). Create a new websocket connection to continue.\" }, \"status\": 400 } Related guides Conversation state Streaming API responses Responses streaming events reference Previous Streaming Next Multi-agent\n\nAsk AI Docs agent Loading docs agent...\n\nExample:\n```text\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28from websocket import create_connection\nimport json\nimport os\n\nws = create_connection(\n \"wss://api.openai.com/v1/responses\",\n header=[\n f\"Authorization: Bearer {os.environ['OPENAI_API_KEY']}\",\n ],\n)\n\nws.send(\n json.dumps(\n {\n \"type\": \"response.create\",\n \"model\": \"gpt-5.6\",\n \"store\": False,\n \"input\": [\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": [{\"type\": \"input_text\", \"text\": \"Find fizz_buzz()\"}],\n }\n ],\n \"tools\": [],\n }\n )\n)\n```\n\nExample:\n```text\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23ws.send(\n json.dumps(\n {\n \"type\": \"response.create\",\n \"model\": \"gpt-5.6\",\n \"store\": False,\n \"previous_response_id\": \"resp_123\",\n \"input\": [\n {\n \"type\": \"function_call_output\",\n \"call_id\": \"call_123\",\n \"output\": \"tool result\",\n },\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": [{\"type\": \"input_text\", \"text\": \"Now optimize it.\"}],\n },\n ],\n \"tools\": [],\n }\n )\n)\n```\n\nExample:\n```text\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25# Compact your current window (HTTP call)\ncompacted = client.responses.compact(\n model=\"gpt-5.6\",\n input=long_input_items_array,\n)\n\n# Start a new response on the WebSocket using the compacted window\nws.send(\n json.dumps(\n {\n \"type\": \"response.create\",\n \"model\": \"gpt-5.6\",\n \"store\": False,\n \"input\": [\n *compacted.output,\n {\n \"type\": \"message\",\n \"role\": \"user\",\n \"content\": [{\"type\": \"input_text\", \"text\": \"Continue from here.\"}],\n },\n ],\n \"tools\": [],\n }\n )\n)\n```\n\nExample:\n```text\n{\n \"type\": \"error\",\n \"status\": 400,\n \"error\": {\n \"code\": \"previous_response_not_found\",\n \"message\": \"Previous response with id 'resp_abc' not found.\",\n \"param\": \"previous_response_id\"\n }\n}\n```\n\nExample:\n```text\n{\n \"type\": \"error\",\n \"error\": {\n \"type\": \"invalid_request_error\",\n \"code\": \"websocket_connection_limit_reached\",\n \"message\": \"Responses websocket connection limit reached (60 minutes). Create a new websocket connection to continue.\"\n },\n \"status\": 400\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:57.668Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":5,"totalLines":202,"estimatedTokens":5035}}103{"id":"doc-flexible_payment_integration-3214f427","source":"documentation","title":"Flexible Payment Integration","url":"https://developer.paypal.com/braintree/docs/guides/fastlane/flexible-payment/","text":"Braintree a PayPal ServiceSDK DocsFlexible Payment IntegrationSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nBasicsClient AuthorizationOverviewTokenization KeyClient TokenPayment Method NoncesTransactionsCustomersPayment MethodsCheckout UIsDrop-in UIOverviewSetup and IntegrationCustomizationHosted FieldsOverviewSetup and IntegrationStylingEventsTroubleshooting and FAQExamplesFastlaneOverviewSetup and IntegrationClient-sideServer-sideTest your IntegrationAppendixAdvanced OptionsStylingBest Practice GuideTroubleshooting And FAQReference TypesFlexible Payment IntegrationPayment Method TypesOverviewACH Direct DebitOverviewConfigurationClient-sideServer-sideTesting and Go LiveInstant VerificationOverviewInstant Verification Client-sideInstant Verification Server-sideTesting Instant VerificationApple PayOverviewConfigurationClient-sideServer-sideTesting and Go LiveCredit CardsOverviewConfigurationClient-sideServer-sideTesting and Go LiveLocal Payment MethodsOverviewConfigurationClient-sideServer-sideTesting and Go LiveBoleto Bancário (Non-Instant)Multibanco (Non-Instant)OXXO (Non-Instant)Trustly (Non-Instant)SwishGoogle PayOverviewConfigurationClient-sideServer-sideTesting and Go LivePayPalOverviewClient-sidePayment FlowOne-time PaymentsRecurring PaymentsVaulted PaymentsCheckout with VaultPay Later OffersMobile CheckoutFeaturesApp SwitchShipping ModuleServer-sideTesting and Go LiveSamsung PayOverviewSEPA Direct DebitOverviewConfigurationClient-sideServer-sideVaultingTesting and Go LiveVenmoOverviewConfigurationClient-sideServer-sideTesting and Go LivePayment OrchestrationOverviewAdyendLocalEBANXFat ZebraFlexFactorFlutterwaveStripeTools3D SecureOverviewOnboardingStep by Step IntegrationApplying 3DS to Transactions and VerificationsMerchant Initiated Authentication (3RI)Rules ManagerAdvanced OptionsAuthentication InsightTestingPremium Fraud Management ToolsOverviewConfigurationClient-sideServer-sideWebhooksTesting and Go LiveData LensOverviewGetting StartedData Schema ReferenceSample QueriesIntegration PatternsBest Practices and SecurityTroubleshootingSupport and ResourcesFX OptimizerOverviewServer-sideTesting and Go LiveClient SDKSetupMigrationDeprecation PolicyDisputesOverviewManagingEvidence RequirementsAutomatingTesting and Go LiveNetwork TokensOverviewValue to MerchantsHow it WorksGetting StartedBring Your Own TokenPayment Request APIOverviewSetup and IntegrationReportsOverviewSettlement Batch SummariesCustom ReportsWebhooksWebhooksOverviewCreateParseTesting and Go LiveBraintree ExtendOAuthOverviewConfigurationConnect URLsClient-side Connect FlowAccess TokensShared VaultReferenceForward APIConfigurationTransformationsTokenization SupportHyperwallet IntegrationWorldpayExamplesCryptographyPGP Public KeyAdditional FeaturesOptimized Debit RoutingOverviewTransaction WorkflowEligibilityIntegrationManaging AuthorizationNetwork Response CodesTest and Go LiveCode SamplesSDKGraphQLBraintree Auth (Beta)OverviewConfigurationMerchant Connect FlowServer-side Connect FlowClient-side Connect FlowOAuth FlowWebhooksMerchant APIMulti-currencyTesting and Go LiveBrandingReferencePackage TrackingOverviewClient-sideServer-sideRecurring BillingOverviewPlansCreating SubscriptionsManaging SubscriptionsTesting and Go LiveCheckout UIs/Fastlane/Appendix/Flexible Payment IntegrationAsk ChatGPTFlexible Integration The Flexible Integration allows developers to customize the payment experience for their users. This approach offers more control and flexibility compared to the Quick Start Integration, enabling you to tailor the payment flow to meet specific business requirements. This guide will walk you through the steps to implement Flexible Integration on the client side, highlighting areas where it differs from Quick Start Integration. For a faster, default setup, refer to the Quick Start Integration Guide.Quick Start vs Flexible IntegrationThe table below outlines the key differences between Quick Start and Flexible Integration. Use this as a reference to determine which integration method is best suited for your project. FeatureQuick StartFlexibleInitialize FastlaneSameSameCollect EmailSameSameAuthenticate consumerSameSameProfile DataSameSameBilling Address (guest)Collected by Payment ComponentCollected by MerchantBilling Address (member)Billing address is tied to the Fastlane returned card.SameShipping Address (guest & member)SameSameCard details (guest)Render Payment ComponentRender Card ComponentCard details (member)Render Payment ComponentMerchant renders card details & integrates Fastlane's card selector.Fastlane Payment Token (guest)Always call getPaymentTokenAlways call getPaymentToken with customer's name and billing address (required)Fastlane Payment Token (memberAlways call getPaymentTokenUse payment token returned in profile data or card selector callback.Client-side IntegrationStep the Braintree SDK Load the necessary Braintree SDK modules. Ensure all modules are the same version (3.120.0 or greater). HTMLCopy<script src=\"https://js.braintreegateway.com/web/3.144.0/js/client.min.js\"></script> <script src=\"https://js.braintreegateway.com/web/3.144.0/js/fastlane.js\"></script> <script src=\"https://js.braintreegateway.com/web/3.144.0/js/data-collector.min.js\"></script>Step Fastlane Component Create a client instance. Create a data collector instance. Define custom styling for the Fastlane component (Optional). Initialize Fastlane component. Define the customer's locale (Optional). Define the merchant's accepted card brands (Optional). Extract identity, profile and events from the braintree.fastlane.create function response as local variables JavaScriptCopyconst clientInstance = await braintree.client.create({ authorization: \"<YOUR CLIENT TOKEN>\" }); const dataCollectorInstance = await braintree.dataCollector.create({ , }); const styles = { //specify global styles here root: { backgroundColorPrimary: \"#ffffff\" } } const deviceData = dataCollectorInstance.deviceData; // For all configuration options for the fastlane construct // please refer to the Reference types section const fastlane = await braintree.fastlane.create({ authorization: \"<YOUR CLIENT TOKEN>\", , , }); const identity = fastlane.identity; const profile = fastlane.profile; const { checkoutPageLoaded, apmSelected, emailSubmitted, orderPlaced, checkoutEnd, storeAccountCreated, } = fastlane.events;Step Email Field Fastlane Watermark Add a div for the watermark. Display the Fastlane watermark with the email input field. When sharing the email with Fastlane, certain countries and regulations require you to display the Fastlane watermark to inform consumers about the data sharing.HTMLCopy<!-- add a div where the watermark will be rendered --> <div id=\"watermark-container\"> <img src=\"https://www.paypalobjects.com/fastlane-v1/assets/fastlane-with-tooltip_en_sm_light.0808.svg\" /> </div>The image tag within the watermark container div ensures the watermark is rendered immediately.JavaScriptCopyconst fastlaneWatermark = (await fastlane.FastlaneWatermarkComponent({ includeAdditionalInfo: //Boolean which determines if the info icon is present })); await fastlaneWatermark.render(\"#watermark-container\");Step Lookup and Authentication Lookup the customer by email. Trigger authentication flow if the customer is a Fastlane member. Retrieve authentication state and profile data. After collecting the email address, call identity.lookupCustomerByEmail(email) to check if the email is associated with a Fastlane or PayPal member.Fastlane members must authenticate themselves before their profile information can be accessed. They will receive an OTP on their registered mobile number or alternate methods to complete the authentication.Important In Sandbox, the OTP passcode will always be \"111111\" or \"222222\" to successfully authenticate. All other codes will fail authentication. JavaScriptCopyconst { customerContextId } = await identity.lookupCustomerByEmail(document.getElementById(\"email\").value); var renderFastlaneMemberExperience = false; if (customerContextId) { // Email is associated with a Fastlane member or a PayPal member, // send customerContextId to trigger the authentication flow. const { authenticationState, profileData } = await identity.triggerAuthenticationFlow(customerContextId); if (authenticationState === \"succeeded\") { // Fastlane member successfully authenticated themselves // profileData contains their profile details renderFastlaneMemberExperience = true; const name = profileData.name; const shippingAddress = profileData.shippingAddress; const card = profileData.card; } else { // Member failed or cancelled to authenticate. Treat them as a guest payer renderFastlaneMemberExperience = false; } } else { // No profile found with this email address. This is a guest payer renderFastlaneMemberExperience = false; } Succeeded authenticationState value of succeeded indicates a Fastlane member has authenticated and then you should set renderFastlaneMemberExperience to true. Guest other authenticationState value indicates a Fastlane guest user and you should render the guest experience specified in step 5. Profile members card details and shipping address are returned with the profileData object contents on successful authentication and the renderFastlaneMemberExperience is set to True.Step Member Experience Render the customer's shipping address. Allow the customer to change their shipping address. Render the customer's card details. Last 4 of cardBrand of cardExp Date (Optional) Allow the customer to change their card.Render the Fastlane Watermark with the shipping and card details.Render Shipping AddressNoteWhen integrating Fastlane by PayPal, keep the following points in mind regarding shipping addressesHandle Missing Shipping members might not have a shipping address in their profile. Ensure your integration can handle this scenario gracefully.When a customer changes their shipping address, be sure to update the address rendered on your site.Send shipping address in server side request.Refer to Advanced more detailed information, refer to the shipping address guidelines in the advanced section.Set change linkHTMLCopy<div id=\"selected-address\"> <!-- render selected shipping address here --> </div> <a href=\"\" id=\"your-change-address-button\"> Change address </a> <div id=\"watermark-container\"> <img src=\"https://www.paypalobjects.com/fastlane-v1/assets/fastlane_en_sm_light.0296.svg\" /> </div>Shipping Address SelectorJavaScriptCopyif (renderFastlaneMemberExperience) { if (profileData.shippingAddress) { // render shipping address from the profile const changeAddressButton = document.getElementById(\"your-change-address-button\"); changeAddressButton.addEventListener(\"click\", async () => { const { selectedAddress, selectionChanged } = await profile.showShippingAddressSelector(); if (selectionChanged) { // selectedAddress contains the new address } else { // selection modal was dismissed without selection } }); } else { // render your shipping address form } } else { // render your shipping address form }Card detailsNoteWhen integrating Fastlane by PayPal, keep the following points in mind regarding card detailsHandle no members might not have a saved card in their profile. Ensure your integration can handle this scenario gracefully by rendering the card component.When a customer changes their card, be sure to update the card details rendered on your site.Card SelectorRender the card detals returned within the profileData after a Fastlane consumer has successfully authenticated. Include a change link that will allow the customer to change to another card within their Fastlane profile.Set Change LinkJavaScriptCopy<div id=\"selected-card\"> <!-- render selected card here --> </div> <a href=\"\" id=\"your-change-card-button\"> Change card </a> <div id=\"watermark-container\"> <img src=\"https://www.paypalobjects.com/fastlane-v1/assets/fastlane_en_sm_light.0296.svg\" /> </div>Card SelectorJavaScriptCopy// Handle changes to the card selection const changeCardButton = document.getElementById(\"your-change-card-button\"); changeCardButton.addEventListener(\"click\", async () => { const { selectionChanged, selectedCard } = await profile.showCardSelector(); if (selectionChanged) { // selectedCard contains the new card // selectedCard.id contains the paymentToken // selectedCard.paymentSource.card contains more details such as last 4 selectedCardForCheckout = selectedCard; // re-render the selected card UI if required } else { // selection modal was dismissed without selection } });Step Guest Experience Have the customer enter their shipping address manually. Have the customer enter their billing address manually. Setup the Card Component. Set the event to trigger when Fastlane will retrive the payment token, usually the payment submission or confirmation button. Define the styling object to send as a parameter to the payment component (Optional) Define the fields object to prefill/disable available fields within the Card component (Optional) Render Card Component. When the event to trigger the Fastlane token occurs, call fastlaneCardComponent.getPaymentToken() to retrieve the payment token. Only render the Card component if you have a Fastlane guest user or a Fastlane member who doesn't have a saved card.Setup Card component and trigger for <!-- Div container for the Card Component --> <div id=\"card-container\"> </div> <!-- Submit Button --> <button id=\"submit-button\"> Submit Order </button>Render Card ComponentJavaScriptCopyconst name = profileData.name; const shippingAddress = profileData.shippingAddress; const card = profileData.card; var selectedCardForCheckout = card; if (memberAuthenticatedSuccessfully && card) { // refer to Lookup & Authenticate section for details // render the card here // render Fastlane Watermark // render a change button and call profile.showCardSelector() when it is clicked } else { // User is a guest, failed to authenticate or does not have a card in the profile. // render the card fields const fastlaneCardComponentOptions = { fields: { phoneNumber: { // Example of how to prefill the phone number field in the FastlaneCardComponent prefill: \"4026607986\" }, cardholderName: { // Example of disabling and prefilling the cardholder name field prefill: \"John Doe\", } }, styles: { root: { // specify styles here backgroundColorPrimary: \"#ffffff\" } } }; const fastlaneCardComponent = await fastlane.FastlaneCardComponent(fastlaneCardComponentOptions); fastlaneCardComponent.render(\"#card-container\"); }Generate Fastlane Payment TokenJavaScriptCopy// Handle form submission const submitButton = document.getElementById(\"submit-button\"); submitButton.addEventListener(\"click\", async () => { var paymentToken = null; // if the Card Component is rendered, // pass the billing address and get the paymentToken if (selectedCardForCheckout) { paymentToken = selectedCardForCheckout.id; } else { paymentToken = await fastlaneCardComponent.getPaymentToken({ billingAddress: { cardholderName: \"John Doe\", streetAddress: \"2211 North 1st St\", locality: \"San Jose\", region: \"CA\", postalCode: \"95131\", // you can also use the countryCodeAlpha3 or countryCodeNumeric formats countryCodeAlpha2: \"US\" } }); } // Send the paymentToken and previously captured device data to server // to complete checkout }); Use the Fastlane Payment token the same as a paymentMethodNonce this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedIntegration GuideTutorial (Preview)Checkout UIsExample IntegrationsBasicsClient AuthorizationSingle-use TokenCustomersPayment MethodsTransactionsPayment Method TypesOverviewACH Direct DebitApple PayCredit CardsGoogle PayPayPalVenmoSecure Remote CommerceTools3D SecurePremium Fraud Management ToolsClient SDKDisputesPayment Request APIReportsWebhooksCheckout UIDrop-in UIHosted FieldsAdditional FeaturesBraintree Auth (Beta)Braintree MarketplaceGrant API (Beta)OAuth (Beta)PayPal HereRecurring BillingAPI ReferenceClient ReferencesServer-side API RequestsServer-side Response ObjectsGeneralBraintreepayments.comStatusAPIIn-PersonSupport ArticlesPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\nExample:\n```html\n<script src=\"https://js.braintreegateway.com/web/3.144.0/js/client.min.js\"></script>\n<script src=\"https://js.braintreegateway.com/web/3.144.0/js/fastlane.js\"></script>\n<script src=\"https://js.braintreegateway.com/web/3.144.0/js/data-collector.min.js\"></script>\n```\n\nExample:\n```javascript\nconst clientInstance = await braintree.client.create({\n authorization: \"<YOUR CLIENT TOKEN>\"\n});\n\nconst dataCollectorInstance = await braintree.dataCollector.create({\n client: clientInstance,\n});\n\nconst styles = {\n //specify global styles here\n root: {\n backgroundColorPrimary: \"#ffffff\"\n }\n}\n\nconst deviceData = dataCollectorInstance.deviceData;\n\n// For all configuration options for the fastlane construct \n// please refer to the Reference types section\nconst fastlane = await braintree.fastlane.create({\n authorization: \"<YOUR CLIENT TOKEN>\",\n client: clientInstance,\n deviceData: deviceData,\n styles: styles\n});\n\nconst identity = fastlane.identity;\nconst profile = fastlane.profile;\nconst {\n checkoutPageLoaded,\n apmSelected,\n emailSubmitted,\n orderPlaced,\n checkoutEnd,\n storeAccountCreated,\n} = fastlane.events;\n```\n\nExample:\n```javascript\n<!-- add a div where the watermark will be rendered -->\n<div id=\"watermark-container\">\n <img src=\"https://www.paypalobjects.com/fastlane-v1/assets/fastlane-with-tooltip_en_sm_light.0808.svg\" />\n</div>\n```\n\nExample:\n```javascript\nconst fastlaneWatermark = (await fastlane.FastlaneWatermarkComponent({\n includeAdditionalInfo: //Boolean which determines if the info icon is present\n}));\nawait fastlaneWatermark.render(\"#watermark-container\");\n```\n\nExample:\n```javascript\nconst {\n customerContextId\n } = await identity.lookupCustomerByEmail(document.getElementById(\"email\").value);\n\n var renderFastlaneMemberExperience = false;\n\n if (customerContextId) {\n // Email is associated with a Fastlane member or a PayPal member, \n // send customerContextId to trigger the authentication flow.\n const {\n authenticationState,\n profileData\n } = await identity.triggerAuthenticationFlow(customerContextId);\n\n if (authenticationState === \"succeeded\") {\n // Fastlane member successfully authenticated themselves\n // profileData contains their profile details\n renderFastlaneMemberExperience = true;\n const name = profileData.name;\n const shippingAddress = profileData.shippingAddress;\n const card = profileData.card;\n } else {\n // Member failed or cancelled to authenticate. Treat them as a guest payer\n renderFastlaneMemberExperience = false;\n }\n } else {\n // No profile found with this email address. This is a guest payer\n renderFastlaneMemberExperience = false;\n }\n```\n\nExample:\n```javascript\nif (renderFastlaneMemberExperience) {\n if (profileData.shippingAddress) {\n // render shipping address from the profile\n \n const changeAddressButton = document.getElementById(\"your-change-address-button\");\n \n changeAddressButton.addEventListener(\"click\", async () => {\n const {\n selectedAddress,\n selectionChanged\n } = await profile.showShippingAddressSelector();\n \n if (selectionChanged) {\n // selectedAddress contains the new address\n } else {\n // selection modal was dismissed without selection\n }\n });\n } else {\n // render your shipping address form\n }\n } else {\n // render your shipping address form\n }\n```\n\nExample:\n```javascript\n// Handle changes to the card selection\nconst changeCardButton = document.getElementById(\"your-change-card-button\");\nchangeCardButton.addEventListener(\"click\", async () => {\n const { selectionChanged, selectedCard } = await profile.showCardSelector();\n if (selectionChanged) {\n // selectedCard contains the new card\n // selectedCard.id contains the paymentToken\n // selectedCard.paymentSource.card contains more details such as last 4\n selectedCardForCheckout = selectedCard;\n // re-render the selected card UI if required\n } else {\n // selection modal was dismissed without selection\n }\n});\n```\n\nExample:\n```javascript\n<!-- Div container for the Card Component -->\n<div id=\"card-container\"> </div>\n<!-- Submit Button -->\n<button id=\"submit-button\"> Submit Order </button>\n```\n\nExample:\n```javascript\nconst name = profileData.name;\nconst shippingAddress = profileData.shippingAddress;\nconst card = profileData.card;\nvar selectedCardForCheckout = card;\nif (memberAuthenticatedSuccessfully && card) {\n // refer to Lookup & Authenticate section for details\n // render the card here\n // render Fastlane Watermark\n // render a change button and call profile.showCardSelector() when it is clicked\n} else {\n // User is a guest, failed to authenticate or does not have a card in the profile.\n // render the card fields\n const fastlaneCardComponentOptions = {\n fields: {\n phoneNumber: {\n // Example of how to prefill the phone number field in the FastlaneCardComponent\n prefill: \"4026607986\"\n },\n cardholderName: {\n // Example of disabling and prefilling the cardholder name field\n prefill: \"John Doe\",\n enabled: false\n }\n },\n styles: {\n root: {\n // specify styles here\n backgroundColorPrimary: \"#ffffff\"\n }\n }\n };\n const fastlaneCardComponent = await fastlane.FastlaneCardComponent(fastlaneCardComponentOptions);\n fastlaneCardComponent.render(\"#card-container\");\n}\n```\n\nExample:\n```javascript\n// Handle form submission\nconst submitButton = document.getElementById(\"submit-button\");\nsubmitButton.addEventListener(\"click\", async () => {\n var paymentToken = null;\n // if the Card Component is rendered,\n // pass the billing address and get the paymentToken\n if (selectedCardForCheckout) {\n paymentToken = selectedCardForCheckout.id;\n } else {\n paymentToken = await fastlaneCardComponent.getPaymentToken({\n billingAddress: {\n cardholderName: \"John Doe\",\n streetAddress: \"2211 North 1st St\",\n locality: \"San Jose\",\n region: \"CA\",\n postalCode: \"95131\",\n // you can also use the countryCodeAlpha3 or countryCodeNumeric formats\n countryCodeAlpha2: \"US\"\n }\n });\n }\n // Send the paymentToken and previously captured device data to server\n // to complete checkout\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.753Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":10,"totalLines":221,"estimatedTokens":5725}}104{"id":"doc-evaluate_external_models_openai_api-e51a7422","source":"documentation","title":"Evaluate external models | OpenAI API","url":"https://developers.openai.com/api/docs/guides/external-models","text":"For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.\n\nChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases Resources ChatGPT Plugins Extend ChatGPT and Codex Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and measure ads in ChatGPT Resources Showcase Demo apps to get inspired Blog Learnings and experiences from developers Cookbook Notebook examples for building with OpenAI models Learn Docs, videos, and demo apps for building with OpenAI Community Programs, meetups, and support for builders Start searching API Dashboard Try ChatGPT\n\nOverview Models Agents Tools Voice & Audio Production API reference\n\nSearch the API docs Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching\n\nPrimary navigation API Codex ChatGPT Docs Use cases Resources Resources Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching Overview Models Agents Tools Voice & Audio Production API reference OverviewModelsAgentsToolsVoice & AudioProductionAPI referenceDocs sectionOverview Home Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Model catalog Choose a model Pricing Model selection Text and code Text generation Code generation Structured output Prompting Overview Prompt engineering Citation formatting Migration guide Prompt generation Frontend prompting Reasoning Reasoning models Reasoning best practices Images and video Images and vision Image generation Video generation Realtime and audio Audio and speech Overview Voice agents Specialized models Deep research Embeddings Moderation Overview Agents SDK Quickstart Agent definitions Models and providers Running agents Sandbox agents Orchestration Guardrails Results and state Integrations and observability Evaluate agent workflows ChatKit Overview Customize Widgets Actions Advanced integrations Overview Function calling Search and retrieval Web search File search Retrieval Connect tools and data MCP and Connectors Secure MCP Tunnel Build tool workflows Skills Tool search Programmatic tool calling Computer and code Shell Computer use Apply Patch Local shell Code interpreter Media Image generation Overview Get started Voice agents Live translation Realtime prompting guide Audio Audio and speech Transcription File transcription Realtime transcription Speech generation Connection methods WebRTC WebSocket SIP Sessions and operations Managing conversations Voice activity detection Realtime with tools Webhooks and server-side controls Managing costs Go live Production best practices Deployment checklist Performance and quality Latency optimization Predicted Outputs Fast mode Accuracy optimization Cost and throughput Cost optimization Prompt caching Batch Flex processing Safety and governance Safety best practices Red teaming Safety checks Cybersecurity checks Under 18 API Guidance Content provenance Your data Permissions Infrastructure and access Terraform provider Overview Projects and access Service accounts Rate limits and spend Model, tool, and data controls Import and reconciliation Private Link IP allowlist Workload identity federation X.509 certificates (beta) Kubernetes AWS Microsoft Azure Google Cloud Oracle Cloud Infrastructure GitHub Actions SPIFFE IP egress ranges Amazon Bedrock Operations Rate limits Spend limits Admin APIs Error codes Docs Use cases DocsUse casesDocs sectionDocs Plugins Workspace Agents Commerce Ads PluginsWorkspace AgentsCommerceAdsDocs sectionSelect... Home Quickstart Core concepts Plugin architecture Skills MCP server Plan Brainstorm use cases Define tools Build Build an MCP server Add UI to your MCP server (optional) Authenticate users Build skills Package your plugin Examples Test and publish Connect and test your plugin Submit and publish Submission error reference Conversion specs Restaurant reservation spec Get Quote spec Product checkout spec Guides UI guidelines Optimize Metadata Submit a Claude Code plugin Security & Privacy Troubleshooting Resources Changelog Plugin guidelines MCP server review requirements Plugin UI reference Checkout API reference Home Get started Trigger workspace agent runs Authenticate with Workspace Agent access tokens Home Guides Get started Best practices File Upload Overview Products API Overview Feeds Products Promotions Ads Overview Measurement Measurement Pixel Multiple Pixels (Advanced) Image Tag Conversions API Supported Events Advertiser API Overview API Partner Setup Quickstart Bulk API Product Feeds Delta Feeds API Campaign Targeting Conversion-Optimized Campaigns API Reference Authentication Ad Account Campaigns Ad Groups Ads Insights Files Conversion Setup Overview Features Configuration Developers Security Administration Use Cases Resources OverviewFeaturesConfigurationDevelopersSecurityAdministrationUse CasesResourcesDocs sectionOverview Home Get started Quickstart Use ChatGPT Get started with Work Import from another agent Foundations Prompting Personalize ChatGPT Skills & Plugins Permissions Explore What's new Models Pricing Glossary Available on ChatGPT desktop app Remote ChatGPT on the web Codex CLI Codex IDE extension Codex cloud Releases Changelog Feature Maturity Open Source Overview Workflows Projects and chats Sites Visualizations Scheduled tasks Long-running work Notifications Pets Codex Micro Capabilities Browser Computer use Voice Plugins Web search Image generation Image inputs Appshots Chrome extension Work with files Reference Commands Slash commands Settings Troubleshooting Overview Customization Overview Memories Computer History Config file Config Basics Advanced Config Config Reference Environment Variables Sample Config Agent configuration AGENTS.md Subagents Speed Rules Extend ChatGPT and Codex Record & Replay MCP Linux Desktop app Windows Desktop app Windows sandbox WSL Overview Development workflows Code review Integrated terminal Extend and automate Build skills Build plugins Hooks Environments Modes Local environments Cloud environment Git worktrees Build with Codex Codex SDK App Server MCP Server GitHub Action Non-interactive mode Third-party integrations GitHub Slack Linear Reference CLI customization Developer commands Developer settings Overview Permissions Profiles Sandboxing Auto-review Agent approvals & security Internet access Codex Security Overview Codex Security plugin Quickstart Run a security scan Run a deep scan Review code changes Use the Security workbench Triage a backlog Fix findings Propose security hardening Write vulnerability reports Export and track findings Changelog Codex Security CLI Quickstart Run bulk scans Run scans in CI Reference FAQ TypeScript SDK Codex Security cloud Setup Security Review Improving the threat model FAQ Cyber safety Models & Trusted Access Recommended configuration Overview Getting started Admin rollout guide ChatGPT Work Overview ChatGPT Work admin FAQ Identity and authentication Authentication overview Personal Access Tokens Service accounts Workspace access, policy, and models Groups and provisioning Roles and workspace permissions GPTs and Sharing Managed configuration Prisma AIRS HIPAA configuration Workspace model availability Plugin and connector controls Plugin controls Skill controls Usage, governance, and compliance Governance Workspace analytics Analytics API Compliance API and audit events Deployment and model providers Manage app updates Windows app deployment Remote connections Amazon Bedrock Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Showcase Blog Cookbook Learn Community ShowcaseBlogCookbookLearnCommunityDocs sectionSelect... All posts Recent Custom Code Review rules for Codex Mastering remote engineering work from your phone Making private MCP servers reachable without making them public How Perplexity Brought Voice Search to Millions Using the Realtime API Designing delightful frontends with GPT-5.4 Topics General API Apps SDK Audio Codex Home Topics Agents Evals Multimodal Text Guardrails Optimization ChatGPT Codex gpt-oss Contribute Cookbook on GitHub Home OpenAI Developers plugin Docs MCP Categories Demo apps Videos Topics Agents Audio & Voice Computer Use Codex Evals gpt-oss Fine-tuning Image generation Scaling Tools Video generation Community Programs Codex Ambassadors Codex for Students Codex for Open Source OpenAI for Startups Events Meetups Spaces Developer Forum Discord Reddit X API Dashboard Try ChatGPT\n\nHome Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Responses Copy Page Responses Evaluate external models Learn how to run evals on non-OpenAI models. Copy Page Model selection is an important lever that enables builders to improve their AI applications. When using Evaluations on the OpenAI Platform, in addition to evaluating OpenAI’s native models, you can also evaluate a variety of external models. We support accessing third-party models (no API key required) and accessing custom endpoints (API key required). OpenAI is deprecating the Evals platform. Existing evals content remains available during the transition window. Evals will become read-only for existing users on October 31, 2026, and the platform is scheduled to shut down on November 30, 2026. See the deprecations page for the current timeline. Third-party models In order to use third-party models, the following must be OpenAI organization must be in usage tier 1 or higher. An admin for your OpenAI organization must enable this feature via Settings > Organization > General. To enable this feature, the admin must accept the usage disclaimer shown. Calls made to external models pass data to third parties and are subject to different terms and weaker safety guarantees than calls to OpenAI models. Billing and usage limits OpenAI currently covers inference costs on third-party models, subject to the following monthly limit based on your organization’s usage tier. Usage tierMonthly spend limit (USD)Tier 1$5Tier 2$25Tier 3$50Tier 4$100Tier 5$200 We serve these models via our partner, OpenRouter. In the future, third-party models will be charged as part of your regular OpenAI billing cycle, at OpenRouter list prices. Available third-party models We provide access to the following external model Anthropic (hosted on AWS Bedrock) Together Fireworks Custom endpoints You can configure a fully custom model endpoint and run evals against it on the OpenAI Platform. This is typically a provider whom we do not natively support, a model you host yourself, or a custom proxy that you use for making inference calls. In order to use this feature, an admin for your OpenAI organization must enable the “Enable custom providers for evaluations” setting via Settings > Organization > General. To enable this feature, the admin must accept the usage disclaimer shown. Note that calls made to external models pass data to third parties, and are subject to different terms and weaker safety guarantees than calls to OpenAI models. Once you are eligible to use custom providers, you can set up a provider under the Evaluations tab under Settings. Note that custom providers are configured on a per-project basis. To connect your custom endpoint, you will endpoint compatible with OpenAI’s chat completions endpoint An API key Name your endpoint, provide an endpoint URL, and specify your API key. We require that you use an https:// endpoint, and we encrypt your keys for security. Specify any model names (slugs) you wish to evaluate. You can click the Verify button to ensure that your models are set up correctly. This will make a test call containing minimal input to each of your model slugs, and will indicate any failures. Run evals with external models Once you have configured an external model, you can use it for evals on the by selecting it from the model picker in your dataset or your evaluation. Note that tool calls are currently not supported. Model typeDatasetsEvalsThird-partyCustom Next steps For more inspiration, visit the OpenAI Cookbook, which contains example code and links to third-party resources, or learn more about our tools for started with evals Uses Datasets to quickly build evals and iterate on prompts. Working with evals Evaluate against external models, interact with evals via API, and more.\n\nAsk AI Docs agent Loading docs agent...\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:57.701Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":0,"totalLines":15,"estimatedTokens":3523}}105{"id":"doc-refund_a_payment_paypal_developer-e1ea0944","source":"documentation","title":"Refund a payment | PayPal Developer","url":"https://developer.paypal.com/checkout/refund-payment","text":"Copy for LLMView as MarkdownRefund a paymentReturn funds to a buyer.Last 4, 2026JavaScript SDKRefund captured payments to customers after an initial transaction. Common scenarios returns a product or requests a refund from a service Customer cancels an order after payment Customer requests a partial refund This integration uses the Payments API v2 to process full or partial refunds with the capture ID from the original payment. Add refund endpoints to your existing PayPal integration with comprehensive error handling and negative testing capabilities. If you've authorized a payment but not captured it yet, use void instead of refund to avoid processing fees. Prerequisites Complete the quick start PayPal integration. You have a capture ID from the original payment transaction. You have a database or system to track payment and refund history. Integrate server side Add the following to your existing server file from the quick start integration. cURLNode.jsPythonJavaPHPRuby# Refund a captured payment curl -X POST https://api-m.sandbox.paypal.com/v2/payments/captures/CAPTURE_ID/refund \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer ACCESS_TOKEN\" \\ -d '{ \"amount\": { \"value\": \"25.00\", \"currency_code\": \"USD\" }, \"note_to_payer\": \"Refund processed\" }' # Get refund status curl -X GET https://api-m.sandbox.paypal.com/v2/payments/refunds/REFUND_ID \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer ACCESS_TOKEN\"// Add these endpoints to your existing server.js from the quick start integration // The PayPal client and addNegativeTesting helper are already configured // Process refund app.post('/api/captures/:captureID/refund', async (req, res) => { const request = new paypal.payments.CapturesRefundRequest(req.params.captureID); // refund amount (if not set, refunds full amount) if (req.body.amount) { request.requestBody({ amount: { , currency_code: 'USD' }, || 'Refund processed' }); } // Apply negative testing if enabled (reuse helper from base integration) addNegativeTesting(request); try { const refund = await client.execute(request); res.json({ , , }); } catch (err) { // Handle specific refund errors if (err.statusCode === 422) { const errorDetail = err.details?.[0]; if (errorDetail?.issue === 'CAPTURE_FULLY_REFUNDED') { res.status(400).json({ error: 'Cannot refund - already refunded. Check capture status.', }); } else if (errorDetail?.issue === 'REFUND_AMOUNT_EXCEEDED') { res.status(400).json({ error: 'Refund amount exceeds available balance', }); } else { res.status(400).json({ error: 'Invalid refund request' }); } } else { res.status(500).json({ }); } } }); // Get refund status (optional but useful) app.get('/api/refunds/:refundID', async (req, res) => { const request = new paypal.payments.RefundsGetRequest(req.params.refundID); addNegativeTesting(request); try { const refund = await client.execute(request); res.json({ , , }); } catch (err) { res.status(404).json({ error: 'Refund not found' }); } });from paypalrestsdk import Api, Refund, Capture import os # Configure PayPal SDK api = Api({ 'mode': 'sandbox', 'client_id': os.environ['PAYPAL_CLIENT_ID'], 'client_secret': os.environ['PAYPAL_CLIENT_SECRET'] }) # Process refund @app.route('/api/captures/<capture_id>/refund', methods=['POST']) def process_refund(capture_id): = { \"amount\": { \"value\": request.json.get('amount'), \"currency\": \"USD\" }, \"note_to_payer\": request.json.get('note', 'Refund processed') } # Create refund refund = Refund({ \"capture_id\": capture_id, **refund_data }) if refund.create(): return jsonify({ \"id\": refund.id, \"status\": refund.state, \"amount\": refund.amount.total }) else: # Handle errors error = refund.error if error.get('name') == 'CAPTURE_FULLY_REFUNDED': return jsonify({ \"error\": \"Cannot refund - already refunded\" }), 400 elif error.get('name') == 'REFUND_AMOUNT_EXCEEDED': return jsonify({ \"error\": \"Refund amount exceeds available balance\" }), 400 jsonify({\"error\": error.get('message')}), 500 except Exception as jsonify({\"error\": str(e)}), 500 # Get refund status @app.route('/api/refunds/<refund_id>', methods=['GET']) def get_refund_status(refund_id): = Refund.find(refund_id) return jsonify({ \"id\": refund.id, \"status\": refund.state, \"amount\": refund.amount.total }) except Exception as jsonify({\"error\": \"Refund not found\"}), 404import com.paypal.core.PayPalEnvironment; import com.paypal.core.PayPalHttpClient; import com.paypal.payments.CapturesRefundRequest; import com.paypal.payments.RefundsGetRequest; import com.paypal.payments.Refund; HttpClient httpClient = new PayPalHttpClient( new SandboxEnvironment( System.getenv(\"PAYPAL_CLIENT_ID\"), System.getenv(\"PAYPAL_CLIENT_SECRET\") ) ); // Process refund @PostMapping(\"/api/captures/{captureId}/refund\") public ResponseEntity<?> processRefund( @PathVariable String captureId, @RequestBody RefundRequest refundRequest ) { try { CapturesRefundRequest request = new CapturesRefundRequest(captureId); // Set refund amount if provided if (refundRequest.getAmount() != null) { RefundRequestBody body = new RefundRequestBody() .amount(new Money() .value(refundRequest.getAmount()) .currencyCode(\"USD\") ) .noteToPayer(refundRequest.getNote() != null ? refundRequest.getNote() : \"Refund processed\" ); request.requestBody(body); } HttpResponse<Refund> response = httpClient.execute(request); Refund refund = response.result(); return ResponseEntity.ok(Map.of( \"id\", refund.id(), \"status\", refund.status(), \"amount\", refund.amount().value() )); } catch (HttpClientException e) { if (e.statusCode() == 422) { String issue = extractIssue(e); if (\"CAPTURE_FULLY_REFUNDED\".equals(issue)) { return ResponseEntity.badRequest().body( Map.of(\"error\", \"Cannot refund - already refunded\") ); } else if (\"REFUND_AMOUNT_EXCEEDED\".equals(issue)) { return ResponseEntity.badRequest().body( Map.of(\"error\", \"Refund amount exceeds available balance\") ); } } return ResponseEntity.status(500).body( Map.of(\"error\", e.getMessage()) ); } } // Get refund status @GetMapping(\"/api/refunds/{refundId}\") public ResponseEntity<?> getRefundStatus(@PathVariable String refundId) { try { RefundsGetRequest request = new RefundsGetRequest(refundId); HttpResponse<Refund> response = httpClient.execute(request); Refund refund = response.result(); return ResponseEntity.ok(Map.of( \"id\", refund.id(), \"status\", refund.status(), \"amount\", refund.amount().value() )); } catch (Exception e) { return ResponseEntity.status(404).body( Map.of(\"error\", \"Refund not found\") ); } }<?php use PayPalCheckoutSdk\\Core\\SandboxEnvironment; use PayPalCheckoutSdk\\Core\\PayPalHttpClient; use PayPalCheckoutSdk\\Payments\\CapturesRefundRequest; use PayPalCheckoutSdk\\Payments\\RefundsGetRequest; $environment = new SandboxEnvironment( getenv('PAYPAL_CLIENT_ID'), getenv('PAYPAL_CLIENT_SECRET') ); $client = new PayPalHttpClient($environment); // Process refund $app->post('/api/captures/{captureID}/refund', function ($request, $response, $args) use ($client) { $captureID = $args['captureID']; $body = $request->getParsedBody(); $refundRequest = new CapturesRefundRequest($captureID); // Set refund amount if provided if (isset($body['amount'])) { $refundRequest->body = [ \"amount\" => [ \"value\" => $body['amount'], \"currency_code\" => \"USD\" ], \"note_to_payer\" => $body['note'] ?? \"Refund processed\" ]; } try { $refundResponse = $client->execute($refundRequest); $refund = $refundResponse->result; $response->getBody()->write(json_encode([ \"id\" => $refund->id, \"status\" => $refund->status, \"amount\" => $refund->amount->value ])); return $response->withHeader('Content-Type', 'application/json'); } catch (HttpException $e) { $statusCode = $e->statusCode; $errorData = json_decode($e->getMessage(), true); if ($statusCode === 422) { $issue = $errorData['details'][0]['issue'] ?? ''; if ($issue === 'CAPTURE_FULLY_REFUNDED') { $response->getBody()->write(json_encode([ \"error\" => \"Cannot refund - already refunded\" ])); return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); } else if ($issue === 'REFUND_AMOUNT_EXCEEDED') { $response->getBody()->write(json_encode([ \"error\" => \"Refund amount exceeds available balance\" ])); return $response->withStatus(400)->withHeader('Content-Type', 'application/json'); } } $response->getBody()->write(json_encode([ \"error\" => $e->getMessage() ])); return $response->withStatus(500)->withHeader('Content-Type', 'application/json'); } }); // Get refund status $app->get('/api/refunds/{refundID}', function ($request, $response, $args) use ($client) { $refundID = $args['refundID']; try { $refundRequest = new RefundsGetRequest($refundID); $refundResponse = $client->execute($refundRequest); $refund = $refundResponse->result; $response->getBody()->write(json_encode([ \"id\" => $refund->id, \"status\" => $refund->status, \"amount\" => $refund->amount->value ])); return $response->withHeader('Content-Type', 'application/json'); } catch (Exception $e) { $response->getBody()->write(json_encode([ \"error\" => \"Refund not found\" ])); return $response->withStatus(404)->withHeader('Content-Type', 'application/json'); } });require 'paypal-sdk' # Configure PayPal SDK PayPal::SDK.configure( :mode => \"sandbox\", :app_id => ENV['PAYPAL_APP_ID'], :client_id => ENV['PAYPAL_CLIENT_ID'], :client_secret => ENV['PAYPAL_CLIENT_SECRET'] ) # Process refund post '/api/captures/:capture_id/refund' do capture_id = params['capture_id'] request_body = JSON.parse(request.body.read) begin refund_data = { amount: { ['amount'], currency_code: 'USD' }, ['note'] || 'Refund processed' } # Create refund refund = PayPal::SDK::PaymentsApi::Refund.new( , **refund_data ) if refund.create { , , }.to_json else error = refund.error if error['name'] == 'CAPTURE_FULLY_REFUNDED' status 400 { error: 'Cannot refund - already refunded' }.to_json elsif error['name'] == 'REFUND_AMOUNT_EXCEEDED' status 400 { error: 'Refund amount exceeds available balance' }.to_json else status 500 { ['message'] }.to_json end end rescue => e status 500 { }.to_json end end # Get refund status get '/api/refunds/:refund_id' do refund_id = params['refund_id'] begin refund = PayPal::SDK::PaymentsApi::Refund.find(refund_id) { , , }.to_json rescue => e status 404 { error: 'Refund not found' }.to_json end end Test endpoints Endpoints: /v2/payments/captures/{capture_id}/refund /v2/payments/refunds/{refund_id} cURLNode.jsPythonJavaPHPRuby# Test full refund (replace with actual capture ID) curl -X POST http://localhost:3000/api/captures/3C679366HH908993F/refund \\ -H \"Content-Type: application/json\" # Expected success response: # {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"} # Test partial refund with note curl -X POST http://localhost:3000/api/captures/3C679366HH908993F/refund \\ -H \"Content-Type: application/json\" \\ -d '{\"amount\": \"25.00\", \"note\": \"Partial refund for damaged item\"}' # Test refund status check curl http://localhost:3000/api/refunds/WH4YN4SYEDZJA # Expected response: # {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}// Test full refund const fullRefundResponse = await fetch('http://localhost:3000/api/captures/3C679366HH908993F/refund', { method: 'POST', headers: { 'Content-Type': 'application/json' } }); const fullRefund = await fullRefundResponse.json(); console.log('Full refund:', fullRefund); // Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"} // Test partial refund with note const partialRefundResponse = await fetch('http://localhost:3000/api/captures/3C679366HH908993F/refund', { method: 'POST', headers: { 'Content-Type': 'application/json' }, ({ amount: '25.00', note: 'Partial refund for damaged item' }) }); const partialRefund = await partialRefundResponse.json(); console.log('Partial refund:', partialRefund); // Test refund status check const statusResponse = await fetch('http://localhost:3000/api/refunds/WH4YN4SYEDZJA'); const status = await statusResponse.json(); console.log('Refund status:', status); // Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}import requests # Test full refund full_refund_response = requests.post( 'http://localhost:3000/api/captures/3C679366HH908993F/refund', headers={'Content-Type': 'application/json'} ) print('Full refund:', full_refund_response.json()) # Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"} # Test partial refund with note partial_refund_response = requests.post( 'http://localhost:3000/api/captures/3C679366HH908993F/refund', headers={'Content-Type': 'application/json'}, json={ 'amount': '25.00', 'note': 'Partial refund for damaged item' } ) print('Partial refund:', partial_refund_response.json()) # Test refund status check status_response = requests.get( 'http://localhost:3000/api/refunds/WH4YN4SYEDZJA' ) print('Refund status:', status_response.json()) # Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}import java.net.http.HttpClient; import java.net.http.HttpRequest; import java.net.http.HttpResponse; import java.net.URI; HttpClient client = HttpClient.newHttpClient(); // Test full refund HttpRequest fullRefundRequest = HttpRequest.newBuilder() // Test partial refund with note String partialRefundBody = \"{\\\"amount\\\":\\\"25.00\\\",\\\"note\\\":\\\"Partial refund for damaged item\\\"}\"; HttpRequest partialRefundRequest = HttpRequest.newBuilder() <?php // Test full refund $fullRefundResponse = file_get_contents( 'http://localhost:3000/api/captures/3C679366HH908993F/refund', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-Type: application/json' ] ]) ); echo \"Full refund: \" . $fullRefundResponse . \"\\n\"; // Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"} // Test partial refund with note $partialRefundData = json_encode([ 'amount' => '25.00', 'note' => 'Partial refund for damaged item' ]); $partialRefundResponse = file_get_contents( 'http://localhost:3000/api/captures/3C679366HH908993F/refund', false, stream_context_create([ 'http' => [ 'method' => 'POST', 'header' => 'Content-Type: application/json', 'content' => $partialRefundData ] ]) ); echo \"Partial refund: \" . $partialRefundResponse . \"\\n\"; // Test refund status check $statusResponse = file_get_contents( 'http://localhost:3000/api/refunds/WH4YN4SYEDZJA' ); echo \"Refund status: \" . $statusResponse . \"\\n\"; // Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}require 'net/http' require 'json' # Test full refund uri = URI('http://localhost:3000/api/captures/3C679366HH908993F/refund') full_refund_request = Net::HTTP::Post.new(uri) full_refund_request['Content-Type'] = 'application/json' full_refund_response = Net::HTTP.start(uri.hostname, uri.port) do |http| http.request(full_refund_request) end puts \"Full refund: #{full_refund_response.body}\" # Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"} # Test partial refund with note partial_refund_request = Net::HTTP::Post.new(uri) partial_refund_request['Content-Type'] = 'application/json' partial_refund_request.body = { amount: '25.00', note: 'Partial refund for damaged item' }.to_json partial_refund_response = Net::HTTP.start(uri.hostname, uri.port) do |http| http.request(partial_refund_request) end puts \"Partial refund: #{partial_refund_response.body}\" # Test refund status check status_uri = URI('http://localhost:3000/api/refunds/WH4YN4SYEDZJA') status_response = Net::HTTP.get_response(status_uri) puts \"Refund status: #{status_response.body}\" # Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"} Best practices Use the following best practices to ensure refunds are processed safely, accurately, and in compliance with operational and regulatory requirements. Store capture save capture IDs from successful payments in your database for future refunds. Use idempotency idempotency keys when processing refunds to avoid duplicate refunds in case of network issues. Validate refund the refund amount doesn't exceed original payment or remaining refundable balance. Log all an audit trail of who initiated refunds, when, and why. This is critical for compliance. Provide refund clear explanation in the note_to_payer field for customer clarity. Handle partial cumulative refunded amounts to prevent over-refunding. Process refunds within 180 refunds within 180 days of the original capture date. Your customer's bank may have shorter windows. After extended periods, manual intervention through PayPal support may be required. Implement approval refunds cannot be cancelled. Build approval workflows for refunds over a certain threshold. Have backup manual refund a manual refund process as backup. Log failed attempts and escalate to PayPal support with the error details. Important details Find capture capture ID is returned as capture.result.id when you capture a payment. Store this value in your database immediately. You'll need it for any future refunds on that transaction. Refund processing sandbox mode, refunds complete instantly. In production, customers see refunds in their account within 3-5 business days, though timing varies by payment method. Webhook up webhooks to receive PAYMENT.CAPTURE.REFUNDED events for real-time status updates. Always verify webhook signatures for security. No refunds to different payment always go back to the customer's original payment method. No currency refund in the same currency as the original payment. PayPal handles any exchange rate adjustments automatically. Test your integration Make sure you have sandbox account credentials for both buyer and seller roles. Complete a test payment to get a valid capture ID. Standard testing Test scenario, Setup, Expected resultTest scenarioSetupExpected resultFull refund successDefault settingsEntire payment amount refunded.Partial refund successDefault settingsSpecified amount refunded.Multiple partial refund successDefault settingsEach refunds succeeds until limit.Invalid capture IDFake IDL XXX123404 not found.Refund after 3 daysWait 3 daysSuccess if within 180 days Negative testing For negative sure to enable negative testing in your sandbox business account as described in the quick start prerequisites. In the .env file, set ENABLE_NEGATIVE_TESTING=true and set NEGATIVE_TEST_TYPE to one of the error codes in the table. Restart the server after changing the .env server.js. Test scenario, Error code, Expected resultTest scenarioError codeExpected resultExceed original amount exceeds capture.Already fully fully refunded.Refund after 180 period expired.Permission deniedPERMISSION_DENIED403 refund permission.Internal server error occurred at refund. Go-live checklist Test full and partial refunds in sandbox. Implement refund approval workflow. Set up refund logging and audit trail. Add authentication to refund endpoints. Configure refund permission roles. Set up webhook listeners for refund events. Test with real $1 payment and refund it. Post-launch monitoring These values are suggested monitoring thresholds for your integration, not performance guarantees from PayPal. Metric, Target, Action if below targetMetricTargetAction if below targetRefund success rate98%Check API errors and validate capture IDs.Refund processing time<5 secondsOptimize database queries.Failed refund rate<2%Review error logs, check amounts.Refund-to-payment ratio<5%Analyze if high - may indicate quality issues.API response time<2 secondsCheck PayPal API status.On this pageOn this pagePrerequisitesIntegrate server sideTest endpointsBest practicesImportant detailsTest your integrationStandard testingNegative testingGo-live checklistPost-launch monitoring\n\nExample:\n```text\n# Refund a captured payment\ncurl -X POST https://api-m.sandbox.paypal.com/v2/payments/captures/CAPTURE_ID/refund \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer ACCESS_TOKEN\" \\\n -d '{\n \"amount\": {\n \"value\": \"25.00\",\n \"currency_code\": \"USD\"\n },\n \"note_to_payer\": \"Refund processed\"\n }'\n\n# Get refund status\ncurl -X GET https://api-m.sandbox.paypal.com/v2/payments/refunds/REFUND_ID \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer ACCESS_TOKEN\"\n```\n\nExample:\n```text\n// Add these endpoints to your existing server.js from the quick start integration\n// The PayPal client and addNegativeTesting helper are already configured\n\n// Process refund\napp.post('/api/captures/:captureID/refund', async (req, res) => {\n const request = new paypal.payments.CapturesRefundRequest(req.params.captureID);\n\n // Optional: Set refund amount (if not set, refunds full amount)\n if (req.body.amount) {\n request.requestBody({\n amount: {\n value: req.body.amount,\n currency_code: 'USD'\n },\n note_to_payer: req.body.note || 'Refund processed'\n });\n }\n\n // Apply negative testing if enabled (reuse helper from base integration)\n addNegativeTesting(request);\n\n try {\n const refund = await client.execute(request);\n res.json({\n id: refund.result.id,\n status: refund.result.status,\n amount: refund.result.amount.value\n });\n } catch (err) {\n // Handle specific refund errors\n if (err.statusCode === 422) {\n const errorDetail = err.details?.[0];\n if (errorDetail?.issue === 'CAPTURE_FULLY_REFUNDED') {\n res.status(400).json({\n error: 'Cannot refund - already refunded. Check capture status.',\n captureId: req.params.captureID\n });\n } else if (errorDetail?.issue === 'REFUND_AMOUNT_EXCEEDED') {\n res.status(400).json({\n error: 'Refund amount exceeds available balance',\n maxRefundable: errorDetail.description\n });\n } else {\n res.status(400).json({\n error: 'Invalid refund request'\n });\n }\n } else {\n res.status(500).json({\n error: err.message\n });\n }\n }\n});\n\n// Get refund status (optional but useful)\napp.get('/api/refunds/:refundID', async (req, res) => {\n const request = new paypal.payments.RefundsGetRequest(req.params.refundID);\n addNegativeTesting(request);\n\n try {\n const refund = await client.execute(request);\n res.json({\n id: refund.result.id,\n status: refund.result.status,\n amount: refund.result.amount.value\n });\n } catch (err) {\n res.status(404).json({\n error: 'Refund not found'\n });\n }\n});\n```\n\nExample:\n```text\nfrom paypalrestsdk import Api, Refund, Capture\nimport os\n\n# Configure PayPal SDK\napi = Api({\n 'mode': 'sandbox',\n 'client_id': os.environ['PAYPAL_CLIENT_ID'],\n 'client_secret': os.environ['PAYPAL_CLIENT_SECRET']\n})\n\n# Process refund\n@app.route('/api/captures/<capture_id>/refund', methods=['POST'])\ndef process_refund(capture_id):\n try:\n refund_data = {\n \"amount\": {\n \"value\": request.json.get('amount'),\n \"currency\": \"USD\"\n },\n \"note_to_payer\": request.json.get('note', 'Refund processed')\n }\n\n # Create refund\n refund = Refund({\n \"capture_id\": capture_id,\n **refund_data\n })\n\n if refund.create():\n return jsonify({\n \"id\": refund.id,\n \"status\": refund.state,\n \"amount\": refund.amount.total\n })\n else:\n # Handle errors\n error = refund.error\n if error.get('name') == 'CAPTURE_FULLY_REFUNDED':\n return jsonify({\n \"error\": \"Cannot refund - already refunded\"\n }), 400\n elif error.get('name') == 'REFUND_AMOUNT_EXCEEDED':\n return jsonify({\n \"error\": \"Refund amount exceeds available balance\"\n }), 400\n else:\n return jsonify({\"error\": error.get('message')}), 500\n\n except Exception as e:\n return jsonify({\"error\": str(e)}), 500\n\n# Get refund status\n@app.route('/api/refunds/<refund_id>', methods=['GET'])\ndef get_refund_status(refund_id):\n try:\n refund = Refund.find(refund_id)\n return jsonify({\n \"id\": refund.id,\n \"status\": refund.state,\n \"amount\": refund.amount.total\n })\n except Exception as e:\n return jsonify({\"error\": \"Refund not found\"}), 404\n```\n\nExample:\n```text\nimport com.paypal.core.PayPalEnvironment;\nimport com.paypal.core.PayPalHttpClient;\nimport com.paypal.payments.CapturesRefundRequest;\nimport com.paypal.payments.RefundsGetRequest;\nimport com.paypal.payments.Refund;\n\nHttpClient httpClient = new PayPalHttpClient(\n new SandboxEnvironment(\n System.getenv(\"PAYPAL_CLIENT_ID\"),\n System.getenv(\"PAYPAL_CLIENT_SECRET\")\n )\n);\n\n// Process refund\n@PostMapping(\"/api/captures/{captureId}/refund\")\npublic ResponseEntity<?> processRefund(\n @PathVariable String captureId,\n @RequestBody RefundRequest refundRequest\n) {\n try {\n CapturesRefundRequest request = new CapturesRefundRequest(captureId);\n\n // Set refund amount if provided\n if (refundRequest.getAmount() != null) {\n RefundRequestBody body = new RefundRequestBody()\n .amount(new Money()\n .value(refundRequest.getAmount())\n .currencyCode(\"USD\")\n )\n .noteToPayer(refundRequest.getNote() != null ?\n refundRequest.getNote() : \"Refund processed\"\n );\n request.requestBody(body);\n }\n\n HttpResponse<Refund> response = httpClient.execute(request);\n Refund refund = response.result();\n\n return ResponseEntity.ok(Map.of(\n \"id\", refund.id(),\n \"status\", refund.status(),\n \"amount\", refund.amount().value()\n ));\n\n } catch (HttpClientException e) {\n if (e.statusCode() == 422) {\n String issue = extractIssue(e);\n if (\"CAPTURE_FULLY_REFUNDED\".equals(issue)) {\n return ResponseEntity.badRequest().body(\n Map.of(\"error\", \"Cannot refund - already refunded\")\n );\n } else if (\"REFUND_AMOUNT_EXCEEDED\".equals(issue)) {\n return ResponseEntity.badRequest().body(\n Map.of(\"error\", \"Refund amount exceeds available balance\")\n );\n }\n }\n return ResponseEntity.status(500).body(\n Map.of(\"error\", e.getMessage())\n );\n }\n}\n\n// Get refund status\n@GetMapping(\"/api/refunds/{refundId}\")\npublic ResponseEntity<?> getRefundStatus(@PathVariable String refundId) {\n try {\n RefundsGetRequest request = new RefundsGetRequest(refundId);\n HttpResponse<Refund> response = httpClient.execute(request);\n Refund refund = response.result();\n\n return ResponseEntity.ok(Map.of(\n \"id\", refund.id(),\n \"status\", refund.status(),\n \"amount\", refund.amount().value()\n ));\n } catch (Exception e) {\n return ResponseEntity.status(404).body(\n Map.of(\"error\", \"Refund not found\")\n );\n }\n}\n```\n\nExample:\n```text\n<?php\nuse PayPalCheckoutSdk\\Core\\SandboxEnvironment;\nuse PayPalCheckoutSdk\\Core\\PayPalHttpClient;\nuse PayPalCheckoutSdk\\Payments\\CapturesRefundRequest;\nuse PayPalCheckoutSdk\\Payments\\RefundsGetRequest;\n\n$environment = new SandboxEnvironment(\n getenv('PAYPAL_CLIENT_ID'),\n getenv('PAYPAL_CLIENT_SECRET')\n);\n$client = new PayPalHttpClient($environment);\n\n// Process refund\n$app->post('/api/captures/{captureID}/refund', function ($request, $response, $args) use ($client) {\n $captureID = $args['captureID'];\n $body = $request->getParsedBody();\n\n $refundRequest = new CapturesRefundRequest($captureID);\n\n // Set refund amount if provided\n if (isset($body['amount'])) {\n $refundRequest->body = [\n \"amount\" => [\n \"value\" => $body['amount'],\n \"currency_code\" => \"USD\"\n ],\n \"note_to_payer\" => $body['note'] ?? \"Refund processed\"\n ];\n }\n\n try {\n $refundResponse = $client->execute($refundRequest);\n $refund = $refundResponse->result;\n\n $response->getBody()->write(json_encode([\n \"id\" => $refund->id,\n \"status\" => $refund->status,\n \"amount\" => $refund->amount->value\n ]));\n return $response->withHeader('Content-Type', 'application/json');\n\n } catch (HttpException $e) {\n $statusCode = $e->statusCode;\n $errorData = json_decode($e->getMessage(), true);\n\n if ($statusCode === 422) {\n $issue = $errorData['details'][0]['issue'] ?? '';\n if ($issue === 'CAPTURE_FULLY_REFUNDED') {\n $response->getBody()->write(json_encode([\n \"error\" => \"Cannot refund - already refunded\"\n ]));\n return $response->withStatus(400)->withHeader('Content-Type', 'application/json');\n } else if ($issue === 'REFUND_AMOUNT_EXCEEDED') {\n $response->getBody()->write(json_encode([\n \"error\" => \"Refund amount exceeds available balance\"\n ]));\n return $response->withStatus(400)->withHeader('Content-Type', 'application/json');\n }\n }\n\n $response->getBody()->write(json_encode([\n \"error\" => $e->getMessage()\n ]));\n return $response->withStatus(500)->withHeader('Content-Type', 'application/json');\n }\n});\n\n// Get refund status\n$app->get('/api/refunds/{refundID}', function ($request, $response, $args) use ($client) {\n $refundID = $args['refundID'];\n\n try {\n $refundRequest = new RefundsGetRequest($refundID);\n $refundResponse = $client->execute($refundRequest);\n $refund = $refundResponse->result;\n\n $response->getBody()->write(json_encode([\n \"id\" => $refund->id,\n \"status\" => $refund->status,\n \"amount\" => $refund->amount->value\n ]));\n return $response->withHeader('Content-Type', 'application/json');\n\n } catch (Exception $e) {\n $response->getBody()->write(json_encode([\n \"error\" => \"Refund not found\"\n ]));\n return $response->withStatus(404)->withHeader('Content-Type', 'application/json');\n }\n});\n```\n\nExample:\n```text\nrequire 'paypal-sdk'\n\n# Configure PayPal SDK\nPayPal::SDK.configure(\n :mode => \"sandbox\",\n :app_id => ENV['PAYPAL_APP_ID'],\n :client_id => ENV['PAYPAL_CLIENT_ID'],\n :client_secret => ENV['PAYPAL_CLIENT_SECRET']\n)\n\n# Process refund\npost '/api/captures/:capture_id/refund' do\n capture_id = params['capture_id']\n request_body = JSON.parse(request.body.read)\n\n begin\n refund_data = {\n amount: {\n value: request_body['amount'],\n currency_code: 'USD'\n },\n note_to_payer: request_body['note'] || 'Refund processed'\n }\n\n # Create refund\n refund = PayPal::SDK::PaymentsApi::Refund.new(\n capture_id: capture_id,\n **refund_data\n )\n\n if refund.create\n content_type :json\n {\n id: refund.id,\n status: refund.status,\n amount: refund.amount.value\n }.to_json\n else\n error = refund.error\n if error['name'] == 'CAPTURE_FULLY_REFUNDED'\n status 400\n { error: 'Cannot refund - already refunded' }.to_json\n elsif error['name'] == 'REFUND_AMOUNT_EXCEEDED'\n status 400\n { error: 'Refund amount exceeds available balance' }.to_json\n else\n status 500\n { error: error['message'] }.to_json\n end\n end\n\n rescue => e\n status 500\n { error: e.message }.to_json\n end\nend\n\n# Get refund status\nget '/api/refunds/:refund_id' do\n refund_id = params['refund_id']\n\n begin\n refund = PayPal::SDK::PaymentsApi::Refund.find(refund_id)\n content_type :json\n {\n id: refund.id,\n status: refund.status,\n amount: refund.amount.value\n }.to_json\n rescue => e\n status 404\n { error: 'Refund not found' }.to_json\n end\nend\n```\n\nExample:\n```text\n# Test full refund (replace with actual capture ID)\ncurl -X POST http://localhost:3000/api/captures/3C679366HH908993F/refund \\\n -H \"Content-Type: application/json\"\n\n# Expected success response:\n# {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"}\n\n# Test partial refund with note\ncurl -X POST http://localhost:3000/api/captures/3C679366HH908993F/refund \\\n -H \"Content-Type: application/json\" \\\n -d '{\"amount\": \"25.00\", \"note\": \"Partial refund for damaged item\"}'\n\n# Test refund status check\ncurl http://localhost:3000/api/refunds/WH4YN4SYEDZJA\n\n# Expected response:\n# {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}\n```\n\nExample:\n```text\n// Test full refund\nconst fullRefundResponse = await fetch('http://localhost:3000/api/captures/3C679366HH908993F/refund', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' }\n});\nconst fullRefund = await fullRefundResponse.json();\nconsole.log('Full refund:', fullRefund);\n// Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"}\n\n// Test partial refund with note\nconst partialRefundResponse = await fetch('http://localhost:3000/api/captures/3C679366HH908993F/refund', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n amount: '25.00',\n note: 'Partial refund for damaged item'\n })\n});\nconst partialRefund = await partialRefundResponse.json();\nconsole.log('Partial refund:', partialRefund);\n\n// Test refund status check\nconst statusResponse = await fetch('http://localhost:3000/api/refunds/WH4YN4SYEDZJA');\nconst status = await statusResponse.json();\nconsole.log('Refund status:', status);\n// Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}\n```\n\nExample:\n```text\nimport requests\n\n# Test full refund\nfull_refund_response = requests.post(\n 'http://localhost:3000/api/captures/3C679366HH908993F/refund',\n headers={'Content-Type': 'application/json'}\n)\nprint('Full refund:', full_refund_response.json())\n# Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"}\n\n# Test partial refund with note\npartial_refund_response = requests.post(\n 'http://localhost:3000/api/captures/3C679366HH908993F/refund',\n headers={'Content-Type': 'application/json'},\n json={\n 'amount': '25.00',\n 'note': 'Partial refund for damaged item'\n }\n)\nprint('Partial refund:', partial_refund_response.json())\n\n# Test refund status check\nstatus_response = requests.get(\n 'http://localhost:3000/api/refunds/WH4YN4SYEDZJA'\n)\nprint('Refund status:', status_response.json())\n# Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}\n```\n\nExample:\n```text\nimport java.net.http.HttpClient;\nimport java.net.http.HttpRequest;\nimport java.net.http.HttpResponse;\nimport java.net.URI;\n\nHttpClient client = HttpClient.newHttpClient();\n\n// Test full refund\nHttpRequest fullRefundRequest = HttpRequest.newBuilder()\n .uri(URI.create(\"http://localhost:3000/api/captures/3C679366HH908993F/refund\"))\n .header(\"Content-Type\", \"application/json\")\n .POST(HttpRequest.BodyPublishers.noBody())\n .build();\n\nHttpResponse<String> fullRefundResponse = client.send(\n fullRefundRequest,\n HttpResponse.BodyHandlers.ofString()\n);\nSystem.out.println(\"Full refund: \" + fullRefundResponse.body());\n// Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"}\n\n// Test partial refund with note\nString partialRefundBody = \"{\\\"amount\\\":\\\"25.00\\\",\\\"note\\\":\\\"Partial refund for damaged item\\\"}\";\nHttpRequest partialRefundRequest = HttpRequest.newBuilder()\n .uri(URI.create(\"http://localhost:3000/api/captures/3C679366HH908993F/refund\"))\n .header(\"Content-Type\", \"application/json\")\n .POST(HttpRequest.BodyPublishers.ofString(partialRefundBody))\n .build();\n\nHttpResponse<String> partialRefundResponse = client.send(\n partialRefundRequest,\n HttpResponse.BodyHandlers.ofString()\n);\nSystem.out.println(\"Partial refund: \" + partialRefundResponse.body());\n\n// Test refund status check\nHttpRequest statusRequest = HttpRequest.newBuilder()\n .uri(URI.create(\"http://localhost:3000/api/refunds/WH4YN4SYEDZJA\"))\n .GET()\n .build();\n\nHttpResponse<String> statusResponse = client.send(\n statusRequest,\n HttpResponse.BodyHandlers.ofString()\n);\nSystem.out.println(\"Refund status: \" + statusResponse.body());\n// Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}\n```\n\nExample:\n```text\n<?php\n// Test full refund\n$fullRefundResponse = file_get_contents(\n 'http://localhost:3000/api/captures/3C679366HH908993F/refund',\n false,\n stream_context_create([\n 'http' => [\n 'method' => 'POST',\n 'header' => 'Content-Type: application/json'\n ]\n ])\n);\necho \"Full refund: \" . $fullRefundResponse . \"\\n\";\n// Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"}\n\n// Test partial refund with note\n$partialRefundData = json_encode([\n 'amount' => '25.00',\n 'note' => 'Partial refund for damaged item'\n]);\n\n$partialRefundResponse = file_get_contents(\n 'http://localhost:3000/api/captures/3C679366HH908993F/refund',\n false,\n stream_context_create([\n 'http' => [\n 'method' => 'POST',\n 'header' => 'Content-Type: application/json',\n 'content' => $partialRefundData\n ]\n ])\n);\necho \"Partial refund: \" . $partialRefundResponse . \"\\n\";\n\n// Test refund status check\n$statusResponse = file_get_contents(\n 'http://localhost:3000/api/refunds/WH4YN4SYEDZJA'\n);\necho \"Refund status: \" . $statusResponse . \"\\n\";\n// Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}\n```\n\nExample:\n```text\nrequire 'net/http'\nrequire 'json'\n\n# Test full refund\nuri = URI('http://localhost:3000/api/captures/3C679366HH908993F/refund')\nfull_refund_request = Net::HTTP::Post.new(uri)\nfull_refund_request['Content-Type'] = 'application/json'\n\nfull_refund_response = Net::HTTP.start(uri.hostname, uri.port) do |http|\n http.request(full_refund_request)\nend\nputs \"Full refund: #{full_refund_response.body}\"\n# Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"100.00\"}\n\n# Test partial refund with note\npartial_refund_request = Net::HTTP::Post.new(uri)\npartial_refund_request['Content-Type'] = 'application/json'\npartial_refund_request.body = {\n amount: '25.00',\n note: 'Partial refund for damaged item'\n}.to_json\n\npartial_refund_response = Net::HTTP.start(uri.hostname, uri.port) do |http|\n http.request(partial_refund_request)\nend\nputs \"Partial refund: #{partial_refund_response.body}\"\n\n# Test refund status check\nstatus_uri = URI('http://localhost:3000/api/refunds/WH4YN4SYEDZJA')\nstatus_response = Net::HTTP.get_response(status_uri)\nputs \"Refund status: #{status_response.body}\"\n# Expected: {\"id\":\"WH4YN4SYEDZJA\",\"status\":\"COMPLETED\",\"amount\":\"25.00\"}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.861Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":12,"totalLines":638,"estimatedTokens":9429}}106{"id":"doc-integrate_invoicing_paypal_developer-273d5c7a","source":"documentation","title":"Integrate invoicing | PayPal Developer","url":"https://developer.paypal.com/platforms/invoicing/integrate","text":"Copy for LLMView as MarkdownIntegrate invoicingLast 26, 2026DOCSCURRENTKnow before you code This integration is available to select partners only. Complete Onboarding before you begin this integration. In the POST /v2/customer/partner-referrals the INVOICE_READ_WRITE and ACCESS_MERCHANT_INFORMATION permissions in the features object. Pass products as EXPRESS_CHECKOUT Get the email address returned in the primary_email field of the GET /v2/customer/partners/{partner_id}/merchant-integrations/{merchant_id} API response. You'll use this in the Invoicing APIs. Complete the steps in Get started to get your credentials. Use your sandbox business email address as the address for the Invoicer API object. This integration uses the Invoicing REST API. You can make test calls to the Invoicing API with the PayPal API Executor. Use Postman to explore and test PayPal APIs. 1. Create draft invoiceTo draft an invoice, copy the following code and modify it as needed.API endpoint draft invoiceSample requestSample responsescroll leftscroll rightcurl -v -X POST https://api-m.sandbox.paypal.com/v2/invoicing/invoices \\ -H 'Content-Type: application/json' \\ -H 'Authorization: Bearer ACCESS-TOKEN' \\ -H 'PayPal-Partner-Attribution-Id: BN-CODE' \\ -H 'PayPal-Auth-Assertion: AUTH-ASSERTION-JWT' \\ -d '{ \"detail\": { \"invoice_number\": \"123\", \"reference\": \"deal-ref\", \"invoice_date\": \"2028-11-22\", \"currency_code\": \"USD\", \"note\": \"Thank you for your business.\", \"term\": \"No refunds after 30 days.\", \"memo\": \"This is a long contract\", \"payment_term\": { \"term_type\": \"DUE_ON_DATE_SPECIFIED\", \"due_date\": \"2028-11-22\" } }, \"invoicer\": { \"name\": { \"given_name\": \"David\", \"surname\": \"Larusso\" }, \"address\": { \"address_line_1\": \"1234 First Street\", \"address_line_2\": \"337673 Hillside Court\", \"admin_area_2\": \"Anytown\", \"admin_area_1\": \"CA\", \"postal_code\": \"98765\", \"country_code\": \"US\" }, \"email_address\": \"[email protected]\", \"phones\": [ { \"country_code\": \"001\", \"national_number\": \"4085551234\", \"phone_type\": \"MOBILE\" } ], \"website\": \"https://example.com\", \"tax_id\": \"XX-XXXXXXX\", \"logo_url\": \"https://example.com/logo.PNG\", \"additional_notes\": \"example note\" }, \"primary_recipients\": [ { \"billing_info\": { \"name\": { \"given_name\": \"Stephanie\", \"surname\": \"Meyers\" }, \"address\": { \"address_line_1\": \"1234 Main Street\", \"admin_area_2\": \"Anytown\", \"admin_area_1\": \"CA\", \"postal_code\": \"98765\", \"country_code\": \"US\" }, \"email_address\": \"[email protected]\", \"phones\": [ { \"country_code\": \"001\", \"national_number\": \"4884551234\", \"phone_type\": \"HOME\" } ], \"additional_info_value\": \"add-info\" }, \"shipping_info\": { \"name\": { \"given_name\": \"Stephanie\", \"surname\": \"Meyers\" }, \"address\": { \"address_line_1\": \"1234 Main Street\", \"admin_area_2\": \"Anytown\", \"admin_area_1\": \"CA\", \"postal_code\": \"98765\", \"country_code\": \"US\" } } } ], \"items\": [ { \"name\": \"Yoga mat\", \"description\": \"Elastic mat to practice yoga.\", \"quantity\": \"1\", \"unit_amount\": { \"currency_code\": \"USD\", \"value\": \"50.00\" }, \"tax\": { \"name\": \"Sales Tax\", \"percent\": \"7.25\" }, \"discount\": { \"percent\": \"5\" }, \"unit_of_measure\": \"QUANTITY\" }, { \"name\": \"Yoga t-shirt\", \"quantity\": \"1\", \"unit_amount\": { \"currency_code\": \"USD\", \"value\": \"10.00\" }, \"tax\": { \"name\": \"Sales Tax\", \"percent\": \"7.25\" }, \"discount\": { \"amount\": { \"currency_code\": \"USD\", \"value\": \"5.00\" } }, \"unit_of_measure\": \"QUANTITY\" } ], \"configuration\": { \"partial_payment\": { \"allow_partial_payment\": true, \"minimum_amount_due\": { \"currency_code\": \"USD\", \"value\": \"20.00\" } }, \"allow_tip\": true, \"tax_calculated_after_discount\": true, \"tax_inclusive\": false, \"template_id\": \"\" }, \"amount\": { \"breakdown\": { \"custom\": { \"label\": \"Packing Charges\", \"amount\": { \"currency_code\": \"USD\", \"value\": \"10.00\" } }, \"shipping\": { \"amount\": { \"currency_code\": \"USD\", \"value\": \"10.00\" }, \"tax\": { \"name\": \"Sales Tax\", \"percent\": \"7.25\" } }, \"discount\": { \"invoice_discount\": { \"percent\": \"5\" } } } } }'This sample request demonstrates how to create an : Sender David Larusso, including their address, email address, and phone number. Stephanie Meyers, including their address, email address, and phone number. yoga mat priced at $50, including sales tax. One t-shirt priced at $10, including sales tax. Partial with a $20 minimum. Optional Additional Charges: $10 packing charges, including sales tax. $10 shipping charges, including sales tax. 5% invoice discount applied. Modify the codeAfter you copy the code in the sample request, modify the ACCESS-TOKEN with your access token. Replace BN-CODE with your PayPal Attribution ID to receive revenue attribution. To find your BN code, see Code and Credential Reference. Replace AUTH-ASSERTION-JWT with your PayPal-Auth-Assertion token. Replace [email protected] in to the primary_email of the merchant retrieved from GET /v1/customer/partners/{partner_id}/merchant-integrations/{merchant_id} API. Update invoice_date and due_date to reflect the current or a future date in the format YYYY-MM-DD. If you set a term_type, ensure the due_date falls within the specified term. your invoice with additional invoice parameters as needed. Step resultA successful request returns the invoice in your sandbox business account with the status set to Draft. You can view this status by logging into your sandbox business account. A return status code of HTTP 201 Created. A JSON response body that includes the ID of the invoice. In the sample response, the ID is INV2-W44B-KRGF-JM6R-26VU. You can use this ID to perform other REST API actions, such as editing or deleting the invoice or sending payment reminders. 2. SendTo send the invoice, copy the following code and modify it as needed.API endpoint invoiceSample requestSample responsescroll leftscroll rightcurl -v -X POST https://api-m.sandbox.paypal.com/v2/invoicing/invoices/{INVOICE-ID}/send \\ -H 'Content-Type: application/json' \\ -H 'Authorization: Bearer ACCESS-TOKEN' \\ -H 'PayPal-Partner-Attribution-Id: BN-CODE' \\ -H 'PayPal-Auth-Assertion: AUTH-ASSERTION-JWT' \\ -d '{ \"send_to_invoicer\": true }' Modify the codeAfter you copy the code in the sample request, modify the ACCESS-TOKEN with your access token. Replace BN-CODE with your PayPal Attribution ID to receive revenue attribution. To find your BN code, see Code and Credential Reference. Replace AUTH-ASSERTION-JWT with your PayPal-Auth-Assertion token. Replace INVOICE-ID to the invoice ID returned when you created the invoice. Step resultA successful request returns the return status code of HTTP 200 OK. A JSON response body containing information about the invoice. The invoice status in the merchant's PayPal account changes to Unpaid (Sent). An email is sent, if you set email notifications in the request body. automatically records payments made through the invoice's Pay Now button. If you accept payments offline, such as by check or wire transfer, you will need to manually record the payment. Next stepsCustomize your Invoicing integrationOn this pageOn this pageKnow before you code1. Create draft invoiceModify the codeStep result2. SendModify the codeStep resultNext steps\n\nExample:\n```text\ncurl -v -X POST https://api-m.sandbox.paypal.com/v2/invoicing/invoices \\\n -H 'Content-Type: application/json' \\\n -H 'Authorization: Bearer ACCESS-TOKEN' \\\n -H 'PayPal-Partner-Attribution-Id: BN-CODE' \\\n -H 'PayPal-Auth-Assertion: AUTH-ASSERTION-JWT' \\\n -d '{\n \"detail\": {\n \"invoice_number\": \"123\",\n \"reference\": \"deal-ref\",\n \"invoice_date\": \"2028-11-22\",\n \"currency_code\": \"USD\",\n \"note\": \"Thank you for your business.\",\n \"term\": \"No refunds after 30 days.\",\n \"memo\": \"This is a long contract\",\n \"payment_term\": {\n \"term_type\": \"DUE_ON_DATE_SPECIFIED\",\n \"due_date\": \"2028-11-22\"\n }\n },\n \"invoicer\": {\n \"name\": {\n \"given_name\": \"David\",\n \"surname\": \"Larusso\"\n },\n \"address\": {\n \"address_line_1\": \"1234 First Street\",\n \"address_line_2\": \"337673 Hillside Court\",\n \"admin_area_2\": \"Anytown\",\n \"admin_area_1\": \"CA\",\n \"postal_code\": \"98765\",\n \"country_code\": \"US\"\n },\n \"email_address\": \"[email protected]\",\n \"phones\": [\n {\n \"country_code\": \"001\",\n \"national_number\": \"4085551234\",\n \"phone_type\": \"MOBILE\"\n }\n ],\n \"website\": \"https://example.com\",\n \"tax_id\": \"XX-XXXXXXX\",\n \"logo_url\": \"https://example.com/logo.PNG\",\n \"additional_notes\": \"example note\"\n },\n \"primary_recipients\": [\n {\n \"billing_info\": {\n \"name\": {\n \"given_name\": \"Stephanie\",\n \"surname\": \"Meyers\"\n },\n \"address\": {\n \"address_line_1\": \"1234 Main Street\",\n \"admin_area_2\": \"Anytown\",\n \"admin_area_1\": \"CA\",\n \"postal_code\": \"98765\",\n \"country_code\": \"US\"\n },\n \"email_address\": \"[email protected]\",\n \"phones\": [\n {\n \"country_code\": \"001\",\n \"national_number\": \"4884551234\",\n \"phone_type\": \"HOME\"\n }\n ],\n \"additional_info_value\": \"add-info\"\n },\n \"shipping_info\": {\n \"name\": {\n \"given_name\": \"Stephanie\",\n \"surname\": \"Meyers\"\n },\n \"address\": {\n \"address_line_1\": \"1234 Main Street\",\n \"admin_area_2\": \"Anytown\",\n \"admin_area_1\": \"CA\",\n \"postal_code\": \"98765\",\n \"country_code\": \"US\"\n }\n }\n }\n ],\n \"items\": [\n {\n \"name\": \"Yoga mat\",\n \"description\": \"Elastic mat to practice yoga.\",\n \"quantity\": \"1\",\n \"unit_amount\": {\n \"currency_code\": \"USD\",\n \"value\": \"50.00\"\n },\n \"tax\": {\n \"name\": \"Sales Tax\",\n \"percent\": \"7.25\"\n },\n \"discount\": {\n \"percent\": \"5\"\n },\n \"unit_of_measure\": \"QUANTITY\"\n },\n {\n \"name\": \"Yoga t-shirt\",\n \"quantity\": \"1\",\n \"unit_amount\": {\n \"currency_code\": \"USD\",\n \"value\": \"10.00\"\n },\n \"tax\": {\n \"name\": \"Sales Tax\",\n \"percent\": \"7.25\"\n },\n \"discount\": {\n \"amount\": {\n \"currency_code\": \"USD\",\n \"value\": \"5.00\"\n }\n },\n \"unit_of_measure\": \"QUANTITY\"\n }\n ],\n \"configuration\": {\n \"partial_payment\": {\n \"allow_partial_payment\": true,\n \"minimum_amount_due\": {\n \"currency_code\": \"USD\",\n \"value\": \"20.00\"\n }\n },\n \"allow_tip\": true,\n \"tax_calculated_after_discount\": true,\n \"tax_inclusive\": false,\n \"template_id\": \"\"\n },\n \"amount\": {\n \"breakdown\": {\n \"custom\": {\n \"label\": \"Packing Charges\",\n \"amount\": {\n \"currency_code\": \"USD\",\n \"value\": \"10.00\"\n }\n },\n \"shipping\": {\n \"amount\": {\n \"currency_code\": \"USD\",\n \"value\": \"10.00\"\n },\n \"tax\": {\n \"name\": \"Sales Tax\",\n \"percent\": \"7.25\"\n }\n },\n \"discount\": {\n \"invoice_discount\": {\n \"percent\": \"5\"\n }\n }\n }\n }\n }'\n```\n\nExample:\n```text\ncurl -v -X POST https://api-m.sandbox.paypal.com/v2/invoicing/invoices/{INVOICE-ID}/send \\\n -H 'Content-Type: application/json' \\\n -H 'Authorization: Bearer ACCESS-TOKEN' \\\n -H 'PayPal-Partner-Attribution-Id: BN-CODE' \\\n -H 'PayPal-Auth-Assertion: AUTH-ASSERTION-JWT' \\\n -d '{\n \"send_to_invoicer\": true\n }'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:43.866Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":181,"estimatedTokens":2980}}107{"id":"doc-assets_in_a_performance_max_campaign_google_ads_-f7966cf5","source":"documentation","title":"Assets in a Performance Max Campaign | Google Ads API | Google for Developers","url":"https://developers.google.com/google-ads/api/performance-max/assets","text":"Example:\n```text\n/** Creates multiple text assets and returns the list of resource names. */\nprivate List<String> createMultipleTextAssets(\n GoogleAdsClient googleAdsClient, long customerId, List<String> texts) {\n List<MutateOperation> mutateOperations = new ArrayList<>();\n for (String text : texts) {\n Asset asset = Asset.newBuilder().setTextAsset(TextAsset.newBuilder().setText(text)).build();\n AssetOperation assetOperation = AssetOperation.newBuilder().setCreate(asset).build();\n mutateOperations.add(MutateOperation.newBuilder().setAssetOperation(assetOperation).build());\n }\n\n List<String> assetResourceNames = new ArrayList<>();\n // Creates the service client.\n try (GoogleAdsServiceClient googleAdsServiceClient =\n googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) {\n // Sends the operations in a single Mutate request.\n MutateGoogleAdsResponse response =\n googleAdsServiceClient.mutate(Long.toString(customerId), mutateOperations);\n for (MutateOperationResponse result : response.getMutateOperationResponsesList()) {\n if (result.hasAssetResult()) {\n assetResourceNames.add(result.getAssetResult().getResourceName());\n }\n }\n printResponseDetails(response);\n }\n return assetResourceNames;\n}\nAddPerformanceMaxCampaign.java\n```\n\nExample:\n```text\n/// <summary>\n/// Creates multiple text assets and returns the list of resource names.\n/// </summary>\n/// <param name=\"client\">The Google Ads Client.</param>\n/// <param name=\"customerId\">The customer's ID.</param>\n/// <param name=\"texts\">The texts to add.</param>\n/// <returns>A list of asset resource names.</returns>\nprivate List<string> CreateMultipleTextAssets(\n GoogleAdsClient client,\n long customerId,\n string[] texts)\n{\n // Get the GoogleAdsService.\n GoogleAdsServiceClient googleAdsServiceClient =\n client.GetService(Services.V25.GoogleAdsService);\n\n MutateGoogleAdsRequest request = new MutateGoogleAdsRequest()\n {\n CustomerId = customerId.ToString()\n };\n\n foreach (string text in texts)\n {\n request.MutateOperations.Add(\n new MutateOperation()\n {\n AssetOperation = new AssetOperation()\n {\n Create = new Asset()\n {\n TextAsset = new TextAsset()\n {\n Text = text\n }\n }\n }\n }\n );\n }\n\n // Send the operations in a single Mutate request.\n MutateGoogleAdsResponse response = googleAdsServiceClient.Mutate(request);\n\n List<string> assetResourceNames = new List<string>();\n\n foreach (MutateOperationResponse operationResponse in response.MutateOperationResponses)\n {\n MutateAssetResult assetResult = operationResponse.AssetResult;\n assetResourceNames.Add(assetResult.ResourceName);\n }\n\n PrintResponseDetails(response);\n\n return assetResourceNames;\n}\nAddPerformanceMaxCampaign.cs\n```\n\nExample:\n```text\nprivate static function createMultipleTextAssets(\n GoogleAdsClient $googleAdsClient,\n int $customerId,\n array $texts\n): array {\n // Here again, we use the GoogleAdService to create multiple text assets in a single\n // request.\n $operations = [];\n foreach ($texts as $text) {\n // Creates a mutate operation for a text asset.\n $operations[] = new MutateOperation([\n 'asset_operation' => new AssetOperation([\n 'create' => new Asset(['text_asset' => new TextAsset(['text' => $text])])\n ])\n ]);\n }\n\n // Issues a mutate request to add all assets.\n $googleAdsService = $googleAdsClient->getGoogleAdsServiceClient();\n /** @var MutateGoogleAdsResponse $mutateGoogleAdsResponse */\n $mutateGoogleAdsResponse =\n $googleAdsService->mutate(MutateGoogleAdsRequest::build($customerId, $operations));\n\n $assetResourceNames = [];\n foreach ($mutateGoogleAdsResponse->getMutateOperationResponses() as $response) {\n /** @var MutateOperationResponse $response */\n $assetResourceNames[] = $response->getAssetResult()->getResourceName();\n }\n self::printResponseDetails($mutateGoogleAdsResponse);\n\n return $assetResourceNames;\n}AddPerformanceMaxCampaign.php\n```\n\nExample:\n```text\ndef create_multiple_text_assets(\n client: GoogleAdsClient, customer_id: str, texts: List[str]\n) -> List[str]:\n \"\"\"Creates multiple text assets and returns the list of resource names.\n\n Args:\n client: an initialized GoogleAdsClient instance.\n customer_id: a client customer ID.\n texts: a list of strings, each of which will be used to create a text\n asset.\n\n Returns:\n asset_resource_names: a list of asset resource names.\n \"\"\"\n # Here again we use the GoogleAdService to create multiple text\n # assets in a single request.\n googleads_service: GoogleAdsServiceClient = client.get_service(\n \"GoogleAdsService\"\n )\n\n operations: List[MutateOperation] = []\n for text in texts:\n mutate_operation: MutateOperation = client.get_type(\"MutateOperation\")\n asset: Asset = mutate_operation.asset_operation.create\n asset.text_asset.text = text\n operations.append(mutate_operation)\n\n # Send the operations in a single Mutate request.\n response: MutateGoogleAdsResponse = googleads_service.mutate(\n customer_id=customer_id,\n mutate_operations=operations,\n )\n asset_resource_names: List[str] = []\n for result in response.mutate_operation_responses:\n if result._pb.HasField(\"asset_result\"):\n asset_resource_names.append(result.asset_result.resource_name)\n print_response_details(response)\n return asset_resource_namesadd_performance_max_campaign.py\n```\n\nExample:\n```text\n# Creates multiple text assets and returns the list of resource names.\ndef create_multiple_text_assets(client, customer_id, texts)\n operations = texts.map do |text|\n client.operation.mutate do |m|\n m.asset_operation = client.operation.create_resource.asset do |asset|\n asset.text_asset = client.resource.text_asset do |text_asset|\n text_asset.text = text\n end\n end\n end\n end\n\n # Send the operations in a single Mutate request.\n response = client.service.google_ads.mutate(\n customer_id: customer_id,\n mutate_operations: operations,\n )\n\n asset_resource_names = []\n response.mutate_operation_responses.each do |result|\n if result.asset_result\n asset_resource_names.append(result.asset_result.resource_name)\n end\n end\n print_response_details(response)\n asset_resource_names\nendadd_performance_max_campaign.rb\n```\n\nExample:\n```text\nsub create_multiple_text_assets {\n my ($api_client, $customer_id, $texts) = @_;\n\n # Here again we use the GoogleAdService to create multiple text assets in a\n # single request.\n my $operations = [];\n foreach my $text (@$texts) {\n # Create a mutate operation for a text asset.\n push @$operations,\n Google::Ads::GoogleAds::V25::Services::GoogleAdsService::MutateOperation\n ->new({\n assetOperation =>\n Google::Ads::GoogleAds::V25::Services::AssetService::AssetOperation->\n new({\n create => Google::Ads::GoogleAds::V25::Resources::Asset->new({\n textAsset =>\n Google::Ads::GoogleAds::V25::Common::TextAsset->new({\n text => $text\n })})})});\n }\n\n # Issue a mutate request to add all assets.\n my $mutate_google_ads_response = $api_client->GoogleAdsService()->mutate({\n customerId => $customer_id,\n mutateOperations => $operations\n });\n\n my $asset_resource_names = [];\n foreach\n my $response (@{$mutate_google_ads_response->{mutateOperationResponses}})\n {\n push @$asset_resource_names, $response->{assetResult}{resourceName};\n }\n print_response_details($mutate_google_ads_response);\n\n return $asset_resource_names;\n}add_performance_max_campaign.pl\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.343Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":242,"estimatedTokens":2016}}108{"id":"doc-models_and_providers_openai_api-b9536973","source":"documentation","title":"Models and providers | OpenAI API","url":"https://developers.openai.com/api/docs/guides/agents/models","text":"For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.\n\nChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases Resources ChatGPT Plugins Extend ChatGPT and Codex Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and measure ads in ChatGPT Resources Showcase Demo apps to get inspired Blog Learnings and experiences from developers Cookbook Notebook examples for building with OpenAI models Learn Docs, videos, and demo apps for building with OpenAI Community Programs, meetups, and support for builders Start searching API Dashboard Try ChatGPT\n\nOverview Models Agents Tools Voice & Audio Production API reference\n\nSearch the API docs Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching\n\nPrimary navigation API Codex ChatGPT Docs Use cases Resources Resources Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching Overview Models Agents Tools Voice & Audio Production API reference OverviewModelsAgentsToolsVoice & AudioProductionAPI referenceDocs sectionAgents Home Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Model catalog Choose a model Pricing Model selection Text and code Text generation Code generation Structured output Prompting Overview Prompt engineering Citation formatting Migration guide Prompt generation Frontend prompting Reasoning Reasoning models Reasoning best practices Images and video Images and vision Image generation Video generation Realtime and audio Audio and speech Overview Voice agents Specialized models Deep research Embeddings Moderation Overview Agents SDK Quickstart Agent definitions Models and providers Running agents Sandbox agents Orchestration Guardrails Results and state Integrations and observability Evaluate agent workflows ChatKit Overview Customize Widgets Actions Advanced integrations Overview Function calling Search and retrieval Web search File search Retrieval Connect tools and data MCP and Connectors Secure MCP Tunnel Build tool workflows Skills Tool search Programmatic tool calling Computer and code Shell Computer use Apply Patch Local shell Code interpreter Media Image generation Overview Get started Voice agents Live translation Realtime prompting guide Audio Audio and speech Transcription File transcription Realtime transcription Speech generation Connection methods WebRTC WebSocket SIP Sessions and operations Managing conversations Voice activity detection Realtime with tools Webhooks and server-side controls Managing costs Go live Production best practices Deployment checklist Performance and quality Latency optimization Predicted Outputs Fast mode Accuracy optimization Cost and throughput Cost optimization Prompt caching Batch Flex processing Safety and governance Safety best practices Red teaming Safety checks Cybersecurity checks Under 18 API Guidance Content provenance Your data Permissions Infrastructure and access Terraform provider Overview Projects and access Service accounts Rate limits and spend Model, tool, and data controls Import and reconciliation Private Link IP allowlist Workload identity federation X.509 certificates (beta) Kubernetes AWS Microsoft Azure Google Cloud Oracle Cloud Infrastructure GitHub Actions SPIFFE IP egress ranges Amazon Bedrock Operations Rate limits Spend limits Admin APIs Error codes Docs Use cases DocsUse casesDocs sectionDocs Plugins Workspace Agents Commerce Ads PluginsWorkspace AgentsCommerceAdsDocs sectionSelect... Home Quickstart Core concepts Plugin architecture Skills MCP server Plan Brainstorm use cases Define tools Build Build an MCP server Add UI to your MCP server (optional) Authenticate users Build skills Package your plugin Examples Test and publish Connect and test your plugin Submit and publish Submission error reference Conversion specs Restaurant reservation spec Get Quote spec Product checkout spec Guides UI guidelines Optimize Metadata Submit a Claude Code plugin Security & Privacy Troubleshooting Resources Changelog Plugin guidelines MCP server review requirements Plugin UI reference Checkout API reference Home Get started Trigger workspace agent runs Authenticate with Workspace Agent access tokens Home Guides Get started Best practices File Upload Overview Products API Overview Feeds Products Promotions Ads Overview Measurement Measurement Pixel Multiple Pixels (Advanced) Image Tag Conversions API Supported Events Advertiser API Overview API Partner Setup Quickstart Bulk API Product Feeds Delta Feeds API Campaign Targeting Conversion-Optimized Campaigns API Reference Authentication Ad Account Campaigns Ad Groups Ads Insights Files Conversion Setup Overview Features Configuration Developers Security Administration Use Cases Resources OverviewFeaturesConfigurationDevelopersSecurityAdministrationUse CasesResourcesDocs sectionOverview Home Get started Quickstart Use ChatGPT Get started with Work Import from another agent Foundations Prompting Personalize ChatGPT Skills & Plugins Permissions Explore What's new Models Pricing Glossary Available on ChatGPT desktop app Remote ChatGPT on the web Codex CLI Codex IDE extension Codex cloud Releases Changelog Feature Maturity Open Source Overview Workflows Projects and chats Sites Visualizations Scheduled tasks Long-running work Notifications Pets Codex Micro Capabilities Browser Computer use Voice Plugins Web search Image generation Image inputs Appshots Chrome extension Work with files Reference Commands Slash commands Settings Troubleshooting Overview Customization Overview Memories Computer History Config file Config Basics Advanced Config Config Reference Environment Variables Sample Config Agent configuration AGENTS.md Subagents Speed Rules Extend ChatGPT and Codex Record & Replay MCP Linux Desktop app Windows Desktop app Windows sandbox WSL Overview Development workflows Code review Integrated terminal Extend and automate Build skills Build plugins Hooks Environments Modes Local environments Cloud environment Git worktrees Build with Codex Codex SDK App Server MCP Server GitHub Action Non-interactive mode Third-party integrations GitHub Slack Linear Reference CLI customization Developer commands Developer settings Overview Permissions Profiles Sandboxing Auto-review Agent approvals & security Internet access Codex Security Overview Codex Security plugin Quickstart Run a security scan Run a deep scan Review code changes Use the Security workbench Triage a backlog Fix findings Propose security hardening Write vulnerability reports Export and track findings Changelog Codex Security CLI Quickstart Run bulk scans Run scans in CI Reference FAQ TypeScript SDK Codex Security cloud Setup Security Review Improving the threat model FAQ Cyber safety Models & Trusted Access Recommended configuration Overview Getting started Admin rollout guide ChatGPT Work Overview ChatGPT Work admin FAQ Identity and authentication Authentication overview Personal Access Tokens Service accounts Workspace access, policy, and models Groups and provisioning Roles and workspace permissions GPTs and Sharing Managed configuration Prisma AIRS HIPAA configuration Workspace model availability Plugin and connector controls Plugin controls Skill controls Usage, governance, and compliance Governance Workspace analytics Analytics API Compliance API and audit events Deployment and model providers Manage app updates Windows app deployment Remote connections Amazon Bedrock Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Showcase Blog Cookbook Learn Community ShowcaseBlogCookbookLearnCommunityDocs sectionSelect... All posts Recent Custom Code Review rules for Codex Mastering remote engineering work from your phone Making private MCP servers reachable without making them public How Perplexity Brought Voice Search to Millions Using the Realtime API Designing delightful frontends with GPT-5.4 Topics General API Apps SDK Audio Codex Home Topics Agents Evals Multimodal Text Guardrails Optimization ChatGPT Codex gpt-oss Contribute Cookbook on GitHub Home OpenAI Developers plugin Docs MCP Categories Demo apps Videos Topics Agents Audio & Voice Computer Use Codex Evals gpt-oss Fine-tuning Image generation Scaling Tools Video generation Community Programs Codex Ambassadors Codex for Students Codex for Open Source OpenAI for Startups Events Meetups Spaces Developer Forum Discord Reddit X API Dashboard Try ChatGPT\n\nOverview Agents SDK Quickstart Agent definitions Models and providers Running agents Sandbox agents Orchestration Guardrails Results and state Integrations and observability Evaluate agent workflows ChatKit Overview Customize Widgets Actions Advanced integrations Copy Page Models and providers Choose models, defaults, and transport strategy for SDK-based agent runs. Copy Page Every SDK run eventually resolves a model and a transport. Most applications should keep that setup models explicitly, use the standard OpenAI path by default, and reach for provider or transport overrides only when the workflow actually needs them. Start with explicit model selection In production, prefer explicit model choice over whichever runtime default your SDK release happens to ship with. Set model on an agent when that specialist consistently needs a different quality, latency, or cost profile. Set a run-level default when one workflow should override several agents at once. Set OPENAI_DEFAULT_MODEL when you want a process-wide fallback for agents that omit model. Set models per agent and per runJavaScript1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24import { Agent, Runner } from \"@openai/agents\"; const fastAgent = new Agent({ name: \"Fast support agent\", instructions: \"Handle routine support questions.\", model: \"gpt-5.6-terra\", }); const generalAgent = new Agent({ name: \"General support agent\", instructions: \"Handle support questions carefully.\", }); const runner = new Runner({ model: \"gpt-5.6\", }); await runner.run(fastAgent, \"Summarize ticket 123.\"); const result = await runner.run( generalAgent, \"Investigate the billing issue on account 456.\" ); console.log(result.finalOutput);1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29import asyncio from agents import Agent, RunConfig, Runner fast_agent = Agent( name=\"Fast support agent\", instructions=\"Handle routine support questions.\", model=\"gpt-5.6-terra\", ) general_agent = Agent( name=\"General support agent\", instructions=\"Handle support questions carefully.\", ) async def main() -> Runner.run(fast_agent, \"Summarize ticket 123.\") result = await Runner.run( general_agent, \"Investigate the billing issue on account 456.\", run_config=RunConfig(model=\"gpt-5.6\"), ) print(result.final_output) if __name__ == \"__main__\": asyncio.run(main()) For most new SDK workflows, start with gpt-5.6 and move to a smaller variant only when latency or cost matters enough to justify it. Use the platform-wide Model guidance page for current model-selection advice. Choose the simplest default strategy If you needStart withWhyOne explicit model per specialistSet model on each agentThe workflow stays readable in code and tracesOne fallback across a whole processOPENAI_DEFAULT_MODELAgents that omit model still resolve predictablyOne workflow-level overrideA run-level defaultYou can swap models for a script, worker, or environment without editing every agentDifferent model sizes across the same workflowMix per-agent modelsA fast triage agent and a slower deep specialist can coexist cleanly If your team cares about the exact default, don’t rely on the SDK fallback. Set it yourself. Providers and transport NeedStart withStandard SDK runs on OpenAIThe default OpenAI provider pathMany repeated Responses model round trips over a socketResponses WebSocket transport in the SDKNon-OpenAI models or a mixed-provider stackThe provider or adapter surface in the language-specific SDK docs Two distinctions Responses WebSocket transport still uses the normal text-and-tools agent loop. It’s separate from the voice session path. Live audio sessions over WebRTC or WebSocket are for low-latency voice or image interactions. Use Voice agents and the live audio API guide for that path. Exact provider configuration, provider lifecycle management, and transport helper APIs remain language-specific material. Keep those details in the SDK docs instead of duplicating them here. Model settings, prompts, and feature support Model choice is only part of the runtime contract. Use modelSettings for tuning such as reasoning effort, verbosity, and tool behavior. Use prompt when you want a stored prompt configuration to control the run instead of embedding the full system prompt in code. Some SDK features depend on the OpenAI Responses path rather than older compatibility surfaces, so check the SDK docs when you need advanced tool-loading or transport features. Keep the model contract close to the agent definition when it’s intrinsic to that specialist. Move it to a workflow-level default only when a group of agents should share the same runtime choice. Next steps Once the runtime contract is clear, continue with the guide that matches the rest of the workflow design. Agent definitions Keep model choices aligned with the responsibilities of each specialist. Running agents See how transport and model choices affect the runtime loop. External models Compare broader provider options when a mixed-model stack matters. Previous Agent definitions Next Running agents\n\nAsk AI Docs agent Loading docs agent...\n\nExample:\n```text\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24import { Agent, Runner } from \"@openai/agents\";\n\nconst fastAgent = new Agent({\n name: \"Fast support agent\",\n instructions: \"Handle routine support questions.\",\n model: \"gpt-5.6-terra\",\n});\n\nconst generalAgent = new Agent({\n name: \"General support agent\",\n instructions: \"Handle support questions carefully.\",\n});\n\nconst runner = new Runner({\n model: \"gpt-5.6\",\n});\n\nawait runner.run(fastAgent, \"Summarize ticket 123.\");\nconst result = await runner.run(\n generalAgent,\n \"Investigate the billing issue on account 456.\"\n);\n\nconsole.log(result.finalOutput);\n```\n\nExample:\n```text\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11\n12\n13\n14\n15\n16\n17\n18\n19\n20\n21\n22\n23\n24\n25\n26\n27\n28\n29import asyncio\n\nfrom agents import Agent, RunConfig, Runner\n\nfast_agent = Agent(\n name=\"Fast support agent\",\n instructions=\"Handle routine support questions.\",\n model=\"gpt-5.6-terra\",\n)\n\ngeneral_agent = Agent(\n name=\"General support agent\",\n instructions=\"Handle support questions carefully.\",\n)\n\n\nasync def main() -> None:\n await Runner.run(fast_agent, \"Summarize ticket 123.\")\n\n result = await Runner.run(\n general_agent,\n \"Investigate the billing issue on account 456.\",\n run_config=RunConfig(model=\"gpt-5.6\"),\n )\n print(result.final_output)\n\n\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:57.894Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":2,"totalLines":127,"estimatedTokens":4018}}109{"id":"doc-how_to_deploy_with_asgi_django_documentation_dja-9956ccf8","source":"documentation","title":"How to deploy with ASGI | Django documentation | Django","url":"https://docs.djangoproject.com/en/stable/howto/deployment/asgi/","text":"Django The web framework for perfectionists with deadlines. Menu Main navigation Overview Download Documentation News Code Issues Community Foundation ♥ Donate Search Submit Toggle theme (current ) Toggle theme (current ) Toggle theme (current ) Toggle Light / Dark / Auto color theme\n\nExample:\n```text\nfrom some_asgi_library import AmazingMiddleware\n\napplication = AmazingMiddleware(application)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.894Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":104}}110{"id":"doc-pagination_django_documentation_django-d13d9830","source":"documentation","title":"Pagination | Django documentation | Django","url":"https://docs.djangoproject.com/en/stable/topics/pagination/","text":"Django The web framework for perfectionists with deadlines. Menu Main navigation Overview Download Documentation News Code Issues Community Foundation ♥ Donate Search Submit Toggle theme (current ) Toggle theme (current ) Toggle theme (current ) Toggle Light / Dark / Auto color theme\n\nExample:\n```text\n>>> from django.core.paginator import Paginator\n>>> objects = [\"john\", \"paul\", \"george\", \"ringo\"]\n>>> p = Paginator(objects, 2)\n\n>>> p.count\n4\n>>> p.num_pages\n2\n>>> type(p.page_range)\n<class 'range'>\n>>> p.page_range\nrange(1, 3)\n\n>>> page1 = p.page(1)\n>>> page1\n<Page 1 of 2>\n>>> page1.object_list\n['john', 'paul']\n\n>>> page2 = p.page(2)\n>>> page2.object_list\n['george', 'ringo']\n>>> page2.has_next()\nFalse\n>>> page2.has_previous()\nTrue\n>>> page2.has_other_pages()\nTrue\n>>> page2.next_page_number()\nTraceback (most recent call last):\n...\nEmptyPage: That page contains no results\n>>> page2.previous_page_number()\n1\n>>> page2.start_index() # The 1-based index of the first item on this page\n3\n>>> page2.end_index() # The 1-based index of the last item on this page\n4\n\n>>> p.page(0)\nTraceback (most recent call last):\n...\nEmptyPage: That page number is less than 1\n>>> p.page(3)\nTraceback (most recent call last):\n...\nEmptyPage: That page contains no results\n```\n\nExample:\n```text\nfrom django.views.generic import ListView\n\nfrom myapp.models import Contact\n\n\nclass ContactListView(ListView):\n paginate_by = 2\n model = Contact\n```\n\nExample:\n```text\n{% for contact in page_obj %}\n {# Each \"contact\" is a Contact model object. #}\n {{ contact.full_name|upper }}<br>\n ...\n{% endfor %}\n\n<div class=\"pagination\">\n <span class=\"step-links\">\n {% if page_obj.has_previous %}\n <a href=\"?page=1\">« first</a>\n <a href=\"?page={{ page_obj.previous_page_number }}\">previous</a>\n {% endif %}\n\n <span class=\"current\">\n Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.\n </span>\n\n {% if page_obj.has_next %}\n <a href=\"?page={{ page_obj.next_page_number }}\">next</a>\n <a href=\"?page={{ page_obj.paginator.num_pages }}\">last »</a>\n {% endif %}\n </span>\n</div>\n```\n\nExample:\n```text\nfrom django.core.paginator import Paginator\nfrom django.shortcuts import render\n\nfrom myapp.models import Contact\n\n\ndef listing(request):\n contact_list = Contact.objects.all()\n paginator = Paginator(contact_list, 25) # Show 25 contacts per page.\n\n page_number = request.GET.get(\"page\")\n page_obj = paginator.get_page(page_number)\n return render(request, \"list.html\", {\"page_obj\": page_obj})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.898Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":110,"estimatedTokens":659}}111{"id":"doc-postgresql_specific_form_fields_and_widgets_djan-5db394c6","source":"documentation","title":"PostgreSQL specific form fields and widgets | Django documentation | Django","url":"https://docs.djangoproject.com/en/stable/ref/contrib/postgres/forms/","text":"Django The web framework for perfectionists with deadlines. Menu Main navigation Overview Download Documentation News Code Issues Community Foundation ♥ Donate Search Submit Toggle theme (current ) Toggle theme (current ) Toggle theme (current ) Toggle Light / Dark / Auto color theme\n\nExample:\n```text\n>>> from django import forms\n>>> from django.contrib.postgres.forms import SimpleArrayField\n\n>>> class NumberListForm(forms.Form):\n... numbers = SimpleArrayField(forms.IntegerField())\n...\n\n>>> form = NumberListForm({\"numbers\": \"1,2,3\"})\n>>> form.is_valid()\nTrue\n>>> form.cleaned_data\n{'numbers': [1, 2, 3]}\n\n>>> form = NumberListForm({\"numbers\": \"1,2,a\"})\n>>> form.is_valid()\nFalse\n```\n\nExample:\n```text\n>>> from django import forms\n>>> from django.contrib.postgres.forms import SimpleArrayField\n\n>>> class GridForm(forms.Form):\n... places = SimpleArrayField(SimpleArrayField(IntegerField()), delimiter=\"|\")\n...\n\n>>> form = GridForm({\"places\": \"1,2|2,1|4,3\"})\n>>> form.is_valid()\nTrue\n>>> form.cleaned_data\n{'places': [[1, 2], [2, 1], [4, 3]]}\n```\n\nExample:\n```text\nSplitArrayField(IntegerField(required=True), size=3, remove_trailing_nulls=False)\n\n[\"1\", \"2\", \"3\"] # -> [1, 2, 3]\n[\"1\", \"2\", \"\"] # -> ValidationError - third entry required.\n[\"1\", \"\", \"3\"] # -> ValidationError - second entry required.\n[\"\", \"2\", \"\"] # -> ValidationError - first and third entries required.\n\nSplitArrayField(IntegerField(required=False), size=3, remove_trailing_nulls=False)\n\n[\"1\", \"2\", \"3\"] # -> [1, 2, 3]\n[\"1\", \"2\", \"\"] # -> [1, 2, None]\n[\"1\", \"\", \"3\"] # -> [1, None, 3]\n[\"\", \"2\", \"\"] # -> [None, 2, None]\n\nSplitArrayField(IntegerField(required=True), size=3, remove_trailing_nulls=True)\n\n[\"1\", \"2\", \"3\"] # -> [1, 2, 3]\n[\"1\", \"2\", \"\"] # -> [1, 2]\n[\"1\", \"\", \"3\"] # -> ValidationError - second entry required.\n[\"\", \"2\", \"\"] # -> ValidationError - first entry required.\n\nSplitArrayField(IntegerField(required=False), size=3, remove_trailing_nulls=True)\n\n[\"1\", \"2\", \"3\"] # -> [1, 2, 3]\n[\"1\", \"2\", \"\"] # -> [1, 2]\n[\"1\", \"\", \"3\"] # -> [1, None, 3]\n[\"\", \"2\", \"\"] # -> [None, 2]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.904Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":70,"estimatedTokens":525}}112{"id":"doc-middleware_django_documentation_django-5b8fb6cd","source":"documentation","title":"Middleware | Django documentation | Django","url":"https://docs.djangoproject.com/en/stable/topics/http/middleware/","text":"Django The web framework for perfectionists with deadlines. Menu Main navigation Overview Download Documentation News Code Issues Community Foundation ♥ Donate Search Submit Toggle theme (current ) Toggle theme (current ) Toggle theme (current ) Toggle Light / Dark / Auto color theme\n\nExample:\n```text\ndef simple_middleware(get_response):\n # One-time configuration and initialization.\n\n def middleware(request):\n # Code to be executed for each request before\n # the view (and later middleware) are called.\n\n response = get_response(request)\n\n # Code to be executed for each request/response after\n # the view is called.\n\n return response\n\n return middleware\n```\n\nExample:\n```text\nclass SimpleMiddleware:\n def __init__(self, get_response):\n self.get_response = get_response\n # One-time configuration and initialization.\n\n def __call__(self, request):\n # Code to be executed for each request before\n # the view (and later middleware) are called.\n\n response = self.get_response(request)\n\n # Code to be executed for each request/response after\n # the view is called.\n\n return response\n```\n\nExample:\n```text\nMIDDLEWARE = [\n \"django.middleware.security.SecurityMiddleware\",\n \"django.contrib.sessions.middleware.SessionMiddleware\",\n \"django.middleware.common.CommonMiddleware\",\n \"django.middleware.csrf.CsrfViewMiddleware\",\n \"django.contrib.auth.middleware.AuthenticationMiddleware\",\n \"django.contrib.messages.middleware.MessageMiddleware\",\n \"django.middleware.clickjacking.XFrameOptionsMiddleware\",\n]\n```\n\nExample:\n```text\nif response.streaming:\n response.streaming_content = wrap_streaming_content(response.streaming_content)\nelse:\n response.content = alter_content(response.content)\n```\n\nExample:\n```text\ndef wrap_streaming_content(content):\n for chunk in content:\n yield alter_content(chunk)\n```\n\nExample:\n```text\nfrom inspect import iscoroutinefunction\nfrom django.utils.decorators import sync_and_async_middleware\n\n\n@sync_and_async_middleware\ndef simple_middleware(get_response):\n # One-time configuration and initialization goes here.\n if iscoroutinefunction(get_response):\n\n async def middleware(request):\n # Do something here!\n response = await get_response(request)\n return response\n\n else:\n\n def middleware(request):\n # Do something here!\n response = get_response(request)\n return response\n\n return middleware\n```\n\nExample:\n```text\nfrom inspect import iscoroutinefunction, markcoroutinefunction\n\n\nclass AsyncMiddleware:\n async_capable = True\n sync_capable = False\n\n def __init__(self, get_response):\n self.get_response = get_response\n if iscoroutinefunction(self.get_response):\n markcoroutinefunction(self)\n\n async def __call__(self, request):\n response = await self.get_response(request)\n # Some logic ...\n return response\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.913Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":7,"totalLines":115,"estimatedTokens":762}}113{"id":"doc-managing_files_django_documentation_django-59338709","source":"documentation","title":"Managing files | Django documentation | Django","url":"https://docs.djangoproject.com/en/stable/topics/files/","text":"Django The web framework for perfectionists with deadlines. Menu Main navigation Overview Download Documentation News Code Issues Community Foundation ♥ Donate Search Submit Toggle theme (current ) Toggle theme (current ) Toggle theme (current ) Toggle Light / Dark / Auto color theme\n\nExample:\n```text\nfrom django.db import models\n\n\nclass Car(models.Model):\n name = models.CharField(max_length=255)\n price = models.DecimalField(max_digits=5, decimal_places=2)\n photo = models.ImageField(upload_to=\"cars\")\n specs = models.FileField(upload_to=\"specs\")\n```\n\nExample:\n```text\n>>> car = Car.objects.get(name=\"57 Chevy\")\n>>> car.photo\n<ImageFieldFile: cars/chevy.jpg>\n>>> car.photo.name\n'cars/chevy.jpg'\n>>> car.photo.path\n'/media/cars/chevy.jpg'\n>>> car.photo.url\n'https://media.example.com/cars/chevy.jpg'\n```\n\nExample:\n```text\n>>> import os\n>>> from django.conf import settings\n>>> initial_path = car.photo.path\n>>> car.photo.name = \"cars/chevy_ii.jpg\"\n>>> new_path = os.path.join(settings.MEDIA_ROOT, car.photo.name)\n>>> # Move the file on the filesystem\n>>> os.rename(initial_path, new_path)\n>>> car.save()\n>>> car.photo.path\n'/media/cars/chevy_ii.jpg'\n>>> car.photo.path == new_path\nTrue\n```\n\nExample:\n```text\n>>> from pathlib import Path\n>>> from django.core.files import File\n>>> path = Path(\"/some/external/specs.pdf\")\n>>> car = Car.objects.get(name=\"57 Chevy\")\n>>> with path.open(mode=\"rb\") as f:\n... car.specs = File(f, name=path.name)\n... car.save()\n...\n```\n\nExample:\n```text\n>>> from PIL import Image\n>>> car = Car.objects.get(name=\"57 Chevy\")\n>>> car.photo.width\n191\n>>> car.photo.height\n287\n>>> image = Image.open(car.photo)\n# Raises ValueError: seek of closed file.\n>>> car.photo.open()\n<ImageFieldFile: cars/chevy.jpg>\n>>> image = Image.open(car.photo)\n>>> image\n<PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=191x287 at 0x7F99A94E9048>\n```\n\nExample:\n```text\n>>> from django.core.files import File\n\n# Create a Python file object using open()\n>>> f = open(\"/path/to/hello.world\", \"w\")\n>>> myfile = File(f)\n```\n\nExample:\n```text\n>>> from django.core.files import File\n\n# Create a Python file object using open() and the with statement\n>>> with open(\"/path/to/hello.world\", \"w\") as f:\n... myfile = File(f)\n... myfile.write(\"Hello World\")\n...\n>>> myfile.closed\nTrue\n>>> f.closed\nTrue\n```\n\nExample:\n```text\nOSError: [Errno 24] Too many open files\n```\n\nExample:\n```text\n>>> from django.core.files.base import ContentFile\n>>> from django.core.files.storage import default_storage\n\n>>> path = default_storage.save(\"path/to/file\", ContentFile(b\"new content\"))\n>>> path\n'path/to/file'\n\n>>> default_storage.size(path)\n11\n>>> default_storage.open(path).read()\nb'new content'\n\n>>> default_storage.delete(path)\n>>> default_storage.exists(path)\nFalse\n```\n\nExample:\n```text\nfrom django.core.files.storage import FileSystemStorage\nfrom django.db import models\n\nfs = FileSystemStorage(location=\"/media/photos\")\n\n\nclass Car(models.Model):\n ...\n photo = models.ImageField(storage=fs)\n```\n\nExample:\n```text\nfrom django.conf import settings\nfrom django.db import models\nfrom .storages import MyLocalStorage, MyRemoteStorage\n\n\ndef select_storage():\n return MyLocalStorage() if settings.DEBUG else MyRemoteStorage()\n\n\nclass MyModel(models.Model):\n my_file = models.FileField(storage=select_storage)\n```\n\nExample:\n```text\nfrom django.core.files.storage import storages\n\n\ndef select_storage():\n return storages[\"mystorage\"]\n\n\nclass MyModel(models.Model):\n upload = models.FileField(storage=select_storage)\n```\n\nExample:\n```text\nfrom django.core.files.storage import storages\nfrom django.utils.functional import LazyObject\n\n\nclass OtherStorage(LazyObject):\n def _setup(self):\n self._wrapped = storages[\"mystorage\"]\n\n\nmy_storage = OtherStorage()\n\n\nclass MyModel(models.Model):\n upload = models.FileField(storage=my_storage)\n```\n\nExample:\n```text\n@override_settings(\n STORAGES={\n \"mystorage\": {\n \"BACKEND\": \"django.core.files.storage.InMemoryStorage\",\n }\n }\n)\ndef test_storage():\n model = MyModel()\n assert isinstance(model.upload.storage, InMemoryStorage)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.929Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":14,"totalLines":194,"estimatedTokens":1041}}114{"id":"doc-an_amazon_sagemaker_setup_guide_cohere-23c99c9b","source":"documentation","title":"An Amazon SageMaker Setup Guide | Cohere","url":"https://docs.cohere.com/docs/amazon-sagemaker-setup-guide","text":"For AI documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.\n\nExample:\n```text\n1import cohere23co = cohere.SagemakerClient(4 aws_region=\"us-east-1\",5 aws_access_key=\"...\",6 aws_secret_key=\"...\",7 aws_session_token=\"...\",8)910# Input parameters for embed. In this example we are embedding hacker news post titles.11texts = [12 \"Interesting (Non software) books?\",13 \"Non-tech books that have helped you grow professionally?\",14 \"I sold my company last month for $5m. What do I do with the money?\",15 \"How are you getting through (and back from) burning out?\",16 \"I made $24k over the last month. Now what?\",17 \"What kind of personal financial investment do you do?\",18 \"Should I quit the field of software development?\",19]20input_type = \"clustering\"21truncate = \"NONE\" # optional22model_id = \"<YOUR ENDPOINT NAME>\" # On SageMaker, you create a model name that you'll pass here.232425# Invoke the model and print the response26result = co.embed(27 model=model_id,28 input_type=input_type,29 texts=texts,30 truncate=truncate,31)3233print(result)\n```\n\nExample:\n```text\n1import cohere23co = cohere.SagemakerClient(4 aws_region=\"us-east-1\",5 aws_access_key=\"...\",6 aws_secret_key=\"...\",7 aws_session_token=\"...\",8)910# Invoke the model and print the response11result = co.chat(message=\"Write a LinkedIn post about starting a career in tech:\",12 model=\"<YOUR ENDPOINT NAME>\") # On SageMaker, you create a model name that you'll pass here. 1314print(result)\n```\n\nExample:\n```text\n1import cohere23co = cohere.SagemakerClient(4 aws_region=\"us-east-1\",5 aws_access_key=\"...\",6 aws_secret_key=\"...\",7 aws_session_token=\"...\",8)910# Set up your documents and query11query = \"YOUR QUERY\"12docs = [13 \"String 1\",14 \"String 2\"15]1617# Invoke the model and print the response18results = co.rerank(19 model=\"<YOUR RERANK-V4.0 ENDPOINT NAME>\", # On SageMaker, you create a model name that you'll pass here.20 query=query,21 documents=docs,22 top_n=2,23)2425print(result)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.319Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":18,"estimatedTokens":546}}115{"id":"doc-update_a_connector_cohere-d762eba4","source":"documentation","title":"Update a Connector | Cohere","url":"https://docs.cohere.com/reference/update-connector","text":"For AI documentation index is available at the root level at /llms.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.\n\nUpdate a connector by ID. Omitted fields will not be updated. See ‘Managing your Connector’ for more information.\n\nExample:\n```text\n1import cohere23co = cohere.Client()4response = co.connectors.update(5 connector_id=\"test-id\", name=\"new name\", url=\"https://example.com/search\"6)7print(response)\n```\n\nExample:\n```text\n1{2 \"connector\": {3 \"id\": \"connector-12345\",4 \"name\": \"Salesforce Data Connector\",5 \"created_at\": \"2024-01-15T09:30:00Z\",6 \"updated_at\": \"2024-01-15T09:30:00Z\",7 \"organization_id\": \"org-67890\",8 \"description\": \"Connector for integrating Salesforce CRM data.\",9 \"url\": \"https://salesforce.example.com/api/search\",10 \"excludes\": [11 \"password\",12 \"ssn\"13 ],14 \"auth_type\": \"oauth\",15 \"oauth\": {16 \"authorize_url\": \"https://login.salesforce.com/services/oauth2/authorize\",17 \"token_url\": \"https://login.salesforce.com/services/oauth2/token\",18 \"client_id\": \"sf-client-abc123\",19 \"client_secret\": \"SGVsbG8gV29ybGQ=\",20 \"scope\": \"api refresh_token\"21 },22 \"auth_status\": \"valid\",23 \"active\": true,24 \"continue_on_failure\": true25 }26}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.341Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":15,"estimatedTokens":330}}116{"id":"doc-generate_historical_metrics_google_ads_api_googl-20028069","source":"documentation","title":"Generate Historical Metrics | Google Ads API | Google for Developers","url":"https://developers.google.com/google-ads/api/docs/keyword-planning/generate-historical-metrics","text":"Example:\n```text\nprivate void runExample(GoogleAdsClient googleAdsClient, Long customerId) {\n GenerateKeywordHistoricalMetricsRequest request =\n GenerateKeywordHistoricalMetricsRequest.newBuilder()\n .setCustomerId(String.valueOf(customerId))\n .addAllKeywords(Arrays.asList(\"mars cruise\", \"cheap cruise\", \"jupiter cruise\"))\n // See https://developers.google.com/google-ads/api/reference/data/geotargets for the\n // list of geo target IDs.\n // Geo target constant 2840 is for USA.\n .addGeoTargetConstants(ResourceNames.geoTargetConstant(2840))\n .setKeywordPlanNetwork(KeywordPlanNetwork.GOOGLE_SEARCH)\n // See\n // https://developers.google.com/google-ads/api/reference/data/codes-formats#languages\n // for the list of language constant IDs.\n // Language constant 1000 is for English.\n .setLanguage(ResourceNames.languageConstant(1000))\n .build();\n\n try (KeywordPlanIdeaServiceClient keywordPlanIdeaServiceClient =\n googleAdsClient.getLatestVersion().createKeywordPlanIdeaServiceClient()) {\n GenerateKeywordHistoricalMetricsResponse response =\n keywordPlanIdeaServiceClient.generateKeywordHistoricalMetrics(request);\n for (GenerateKeywordHistoricalMetricsResult result : response.getResultsList()) {\n KeywordPlanHistoricalMetrics metrics = result.getKeywordMetrics();\n System.out.printf(\"The search query: %s%n\", result.getText());\n System.out.printf(\n \"and the following variants: %s%n\", Joiner.on(\",\").join(result.getCloseVariantsList()));\n System.out.println(\"generated the following historical metrics:\");\n\n // Approximate number of monthly searches on this query averaged for the past 12\n // months.\n System.out.printf(\n \"Approximate monthly searches: %s%n\",\n metrics.hasAvgMonthlySearches() ? metrics.getAvgMonthlySearches() : null);\n\n // The competition level for this search query.\n System.out.printf(\"Competition level: %s%n\", metrics.getCompetition());\n\n // The competition index for the query in the range [0,100]. This shows how\n // competitive ad placement is for a keyword. The level of competition from 0-100 is\n // determined by the number of ad slots filled divided by the total number of slots\n // available. If not enough data is available, null will be returned.\n System.out.printf(\n \"Competition index: %s%n\",\n metrics.hasCompetitionIndex() ? metrics.getCompetitionIndex() : null);\n\n // Top of page bid low range (20th percentile) in micros for the keyword.\n System.out.printf(\n \"Top of page bid low range: %s%n\",\n metrics.hasLowTopOfPageBidMicros() ? metrics.getLowTopOfPageBidMicros() : null);\n\n // Top of page bid high range (80th percentile) in micros for the keyword.\n System.out.printf(\n \"Top of page bid high range: %s%n\",\n metrics.hasHighTopOfPageBidMicros() ? metrics.getHighTopOfPageBidMicros() : null);\n\n // Approximate number of searches on this query for the past twelve months.\n metrics.getMonthlySearchVolumesList().stream()\n // Orders the monthly search volumes by descending year, then descending month.\n .sorted(\n (a, b) ->\n ComparisonChain.start()\n .compare(b.getYear(), a.getYear())\n .compare(b.getMonth(), a.getMonth())\n .result())\n // Prints each monthly search volume.\n .forEachOrdered(\n monthlySearchVolume ->\n System.out.printf(\n \"Approximately %d searches in %s, %s%n\",\n monthlySearchVolume.getMonthlySearches(),\n monthlySearchVolume.getMonth(),\n monthlySearchVolume.getYear()));\n }\n }\n}GenerateHistoricalMetrics.java\n```\n\nExample:\n```text\npublic void Run(GoogleAdsClient client, long customerId)\n{\n KeywordPlanIdeaServiceClient keywordPlanIdeaService =\n client.GetService(Services.V25.KeywordPlanIdeaService);\n\n GenerateKeywordHistoricalMetricsRequest request =\n new GenerateKeywordHistoricalMetricsRequest()\n {\n CustomerId = customerId.ToString(),\n Keywords = { \"mars cruise\", \"cheap cruise\", \"jupiter cruise\" },\n // See https://developers.google.com/google-ads/api/reference/data/geotargets\n // for the list of geo target IDs.\n // Geo target constant 2840 is for USA.\n GeoTargetConstants = { ResourceNames.GeoTargetConstant(2840) },\n KeywordPlanNetwork = KeywordPlanNetwork.GoogleSearch,\n // See https://developers.google.com/google-ads/api/reference/data/codes-formats#languages\n // for the list of language constant IDs.\n // Language constant 1000 is for English.\n Language = ResourceNames.LanguageConstant(1000)\n };\n\n try\n {\n GenerateKeywordHistoricalMetricsResponse response =\n keywordPlanIdeaService.GenerateKeywordHistoricalMetrics(request);\n\n foreach (GenerateKeywordHistoricalMetricsResult result in response.Results)\n {\n KeywordPlanHistoricalMetrics metrics = result.KeywordMetrics;\n\n Console.WriteLine($\"The search query {result.Text}\");\n Console.WriteLine(\"and the following variants: \" +\n $\"{String.Join(\",\", result.CloseVariants)}\");\n Console.WriteLine(\"Generated the following historical metrics:\");\n\n // Approximate number of monthly searches on this query averaged for the past 12\n // months.\n Console.WriteLine($\"Approximate monthly searches: {metrics.AvgMonthlySearches}\");\n\n // The competition level for this search query.\n Console.WriteLine($\"Competition level: {metrics.Competition}\");\n\n // The competition index for the query in the range [0,100]. This shows how\n // competitive ad placement is for a keyword. The level of competition from 0-100 is\n // determined by the number of ad slots filled divided by the total number of slots\n // available. If not enough data is available, null will be returned.\n Console.WriteLine($\"Competition index: {metrics.CompetitionIndex}\");\n\n // Top of page bid low range (20th percentile) in micros for the keyword.\n Console.WriteLine($\"Top of page bid low range: {metrics.LowTopOfPageBidMicros}\");\n\n // Top of page bid high range (80th percentile) in micros for the keyword.\n Console.WriteLine($\"Top of page bid high range: {metrics.HighTopOfPageBidMicros}\");\n\n // Approximate number of searches on this query for the past twelve months.\n foreach (MonthlySearchVolume month in metrics.MonthlySearchVolumes)\n {\n Console.WriteLine($\"Approximately {month.MonthlySearches} searches in \" +\n $\"{month.Month}, {month.Year}\");\n }\n }\n\n }\n catch (GoogleAdsException e)\n {\n Console.WriteLine(\"Failure:\");\n Console.WriteLine($\"Message: {e.Message}\");\n Console.WriteLine($\"Failure: {e.Failure}\");\n Console.WriteLine($\"Request ID: {e.RequestId}\");\n throw;\n }\n}GenerateHistoricalMetrics.cs\n```\n\nExample:\n```text\npublic static function runExample(\n GoogleAdsClient $googleAdsClient,\n int $customerId\n): void {\n $keywordPlanIdeaServiceClient = $googleAdsClient->getKeywordPlanIdeaServiceClient();\n // Generates keyword historical metrics based on the specified parameters.\n $response = $keywordPlanIdeaServiceClient->generateKeywordHistoricalMetrics(\n new GenerateKeywordHistoricalMetricsRequest([\n 'customer_id' => $customerId,\n 'keywords' => ['mars cruise', 'cheap cruise', 'jupiter cruise'],\n // See https://developers.google.com/google-ads/api/reference/data/geotargets for\n // the list of geo target IDs.\n // Geo target constant 2840 is for USA.\n 'geo_target_constants' => [ResourceNames::forGeoTargetConstant(2840)],\n 'keyword_plan_network' => KeywordPlanNetwork::GOOGLE_SEARCH,\n // https://developers.google.com/google-ads/api/reference/data/codes-formats#languages\n // for the list of language constant IDs.\n // Language constant 1000 is for English.\n 'language' => ResourceNames::forLanguageConstant(1000)\n ])\n );\n\n // Iterates over the results and print its detail.\n foreach ($response->getResults() as $result) {\n /** @var GenerateKeywordHistoricalMetricsResult $result */\n $metrics = $result->getKeywordMetrics();\n printf(\"The search query: '%s' \", $result->getText());\n printf(\n \"and the following variants: '%s' \",\n implode(',', iterator_to_array($result->getCloseVariants()->getIterator()))\n );\n print \"generated the following historical metrics:\" . PHP_EOL;\n\n // Approximate number of monthly searches on this query averaged for the past 12 months.\n printf(\n \"Approximate monthly searches: %s%s\",\n $metrics->hasAvgMonthlySearches()\n ? sprintf(\"%d\", $metrics->getAvgMonthlySearches())\n : \"'none'\",\n PHP_EOL\n );\n\n // The competition level for this search query.\n printf(\n \"Competition level: '%s'%s\",\n KeywordPlanCompetitionLevel::name($metrics->getCompetition()),\n PHP_EOL\n );\n\n // The competition index for the query in the range [0,100]. This shows how\n // competitive ad placement is for a keyword. The level of competition from 0-100 is\n // determined by the number of ad slots filled divided by the total number of slots\n // available. If not enough data is available, null will be returned.\n printf(\n \"Competition index: %s%s\",\n $metrics->hasCompetitionIndex()\n ? sprintf(\"%d\", $metrics->getCompetitionIndex())\n : \"'none'\",\n PHP_EOL\n );\n\n // Top of page bid low range (20th percentile) in micros for the keyword.\n printf(\n \"Top of page bid low range: %s%s\",\n $metrics->hasLowTopOfPageBidMicros()\n ? sprintf(\"%d\", $metrics->getLowTopOfPageBidMicros())\n : \"'none'\",\n PHP_EOL\n );\n\n // Top of page bid high range (80th percentile) in micros for the keyword.\n printf(\n \"Top of page bid high range: %s%s\",\n $metrics->hasHighTopOfPageBidMicros()\n ? sprintf(\"%d\", $metrics->getHighTopOfPageBidMicros())\n : \"'none'\",\n PHP_EOL\n );\n\n // Approximate number of searches on this query for the past twelve months.\n $monthlySearchVolumes =\n iterator_to_array($metrics->getMonthlySearchVolumes()->getIterator());\n usort(\n $monthlySearchVolumes,\n // Orders the monthly search volumes by descending year, then descending month.\n function (MonthlySearchVolume $volume1, MonthlySearchVolume $volume2) {\n $yearsCompared = $volume2->getYear() <=> $volume1->getYear();\n if ($yearsCompared != 0) {\n return $yearsCompared;\n } else {\n return $volume2->getMonth() <=> $volume1->getMonth();\n }\n }\n );\n // Prints each monthly search volume.\n array_walk($monthlySearchVolumes, function (MonthlySearchVolume $monthlySearchVolume) {\n printf(\n \"Approximately %d searches in %s, %s.%s\",\n $monthlySearchVolume->getMonthlySearches(),\n MonthOfYear::name($monthlySearchVolume->getMonth()),\n $monthlySearchVolume->getYear(),\n PHP_EOL\n );\n });\n print PHP_EOL;\n }\n}GenerateHistoricalMetrics.php\n```\n\nExample:\n```text\ndef main(client: GoogleAdsClient, customer_id: str):\n \"\"\"The main method that creates all necessary entities for the example.\n\n Args:\n client: an initialized GoogleAdsClient instance.\n customer_id: a client customer ID.\n \"\"\"\n generate_historical_metrics(client, customer_id)\n\n\ndef generate_historical_metrics(client: GoogleAdsClient, customer_id: str):\n \"\"\"Generates historical metrics and prints the results.\n\n Args:\n client: an initialized GoogleAdsClient instance.\n customer_id: a client customer ID.\n \"\"\"\n googleads_service: GoogleAdsServiceClient = client.get_service(\n \"GoogleAdsService\"\n )\n keyword_plan_idea_service: KeywordPlanIdeaServiceClient = (\n client.get_service(\"KeywordPlanIdeaService\")\n )\n request: GenerateKeywordHistoricalMetricsRequest = client.get_type(\n \"GenerateKeywordHistoricalMetricsRequest\"\n )\n request.customer_id = customer_id\n request.keywords = [\"mars cruise\", \"cheap cruise\", \"jupiter cruise\"]\n # Geo target constant 2840 is for USA.\n request.geo_target_constants.append(\n googleads_service.geo_target_constant_path(\"2840\")\n )\n request.keyword_plan_network = (\n client.enums.KeywordPlanNetworkEnum.GOOGLE_SEARCH\n )\n # Language criteria 1000 is for English. For the list of language criteria\n # IDs, see:\n # https://developers.google.com/google-ads/api/reference/data/codes-formats#languages\n request.language = googleads_service.language_constant_path(\"1000\")\n\n response: GenerateKeywordHistoricalMetricsResponse = (\n keyword_plan_idea_service.generate_keyword_historical_metrics(\n request=request\n )\n )\n\n results: Iterable[GenerateKeywordHistoricalMetricsResult] = response.results\n for result in results:\n metrics: KeywordPlanHistoricalMetrics = result.keyword_metrics\n # These metrics include those for both the search query and any variants\n # included in the response.\n print(\n f\"The search query '{result.text}' (and the following variants: \"\n f\"'{result.close_variants if result.close_variants else 'None'}'), \"\n \"generated the following historical metrics:\\n\"\n )\n\n # Approximate number of monthly searches on this query averaged for the\n # past 12 months.\n print(f\"\\tApproximate monthly searches: {metrics.avg_monthly_searches}\")\n\n # The competition level for this search query.\n print(f\"\\tCompetition level: {metrics.competition}\")\n\n # The competition index for the query in the range [0, 100]. This shows\n # how competitive ad placement is for a keyword. The level of\n # competition from 0-100 is determined by the number of ad slots filled\n # divided by the total number of ad slots available. If not enough data\n # is available, undef will be returned.\n print(f\"\\tCompetition index: {metrics.competition_index}\")\n\n # Top of page bid low range (20th percentile) in micros for the keyword.\n print(\n f\"\\tTop of page bid low range: {metrics.low_top_of_page_bid_micros}\"\n )\n\n # Top of page bid high range (80th percentile) in micros for the\n # keyword.\n print(\n \"\\tTop of page bid high range: \"\n f\"{metrics.high_top_of_page_bid_micros}\"\n )\n\n # Approximate number of searches on this query for the past twelve\n # months.\n months: Iterable[MonthlySearchVolume] = metrics.monthly_search_volumes\n for month in months:\n print(\n f\"\\tApproximately {month.monthly_searches} searches in \"\n f\"{month.month.name}, {month.year}\"\n )generate_historical_metrics.py\n```\n\nExample:\n```text\ndef generate_historical_metrics(customer_id)\n # GoogleAdsClient will read a config file from\n # ENV['HOME']/google_ads_config.rb when called without parameters\n client = Google::Ads::GoogleAds::GoogleAdsClient.new\n\n # Generates historical metrics and prints the results.\n keyword_plan_idea_service = client.service.keyword_plan_idea\n\n response = keyword_plan_idea_service.generate_keyword_historical_metrics(\n customer_id: customer_id,\n keywords: [\"mars cruise\", \"cheap cruise\", \"jupiter cruise\"],\n keyword_plan_network: :GOOGLE_SEARCH,\n\n # For the list of geo target IDs, see:\n # https://developers.google.com/google-ads/api/reference/data/geotargets\n # Geo target constant 2840 is for USA.\n geo_target_constants: [client.path.geo_target_constant(\"2840\")],\n\n # Language criteria 1000 is for English.\n # For the list of language criteria IDs, see:\n # https://developers.google.com/google-ads/api/reference/data/codes-formats#languages\n language: client.path.language_constant(\"1000\"),\n )\n\n for result in response.results\n metrics = result.keyword_metrics\n # These metrics include those for both the search query and any variants\n # included in the response.\n puts\"The search query '#{result.text}' (and the following variants: \" \\\n \"'#{result.close_variants}'), \" \\\n \"generated the following historical metrics:\\n\"\n\n\n # Approximate number of monthly searches on this query averaged for the\n # past 12 months.\n puts \"\\tApproximate monthly searches: #{metrics.avg_monthly_searches}\"\n\n # The competition level for this search query.\n puts \"\\tCompetition level: #{metrics.competition}\"\n\n # The competition index for the query in the range [0, 100]. This shows\n # how competitive ad placement is for a keyword. The level of\n # competition from 0-100 is determined by the number of ad slots filled\n # divided by the total number of ad slots available. If not enough data\n # is available, undef will be returned.\n puts \"\\tCompetition index: #{metrics.competition_index}\"\n\n # Top of page bid low range (20th percentile) in micros for the keyword.\n puts \"\\tTop of page bid low range: #{metrics.low_top_of_page_bid_micros}\"\n\n # Top of page bid high range (80th percentile) in micros for the\n # keyword.\n puts\"\\tTop of page bid high range: \"\n \"#{metrics.high_top_of_page_bid_micros}\"\n\n # Approximate number of searches on this query for the past twelve\n # months.\n for month in metrics.monthly_search_volumes\n puts \"\\tApproximately #{month.monthly_searches} searches in \"\n \"#{month.month.name}, #{month.year}\"\n end\n end\nendgenerate_historical_metrics.rb\n```\n\nExample:\n```text\nsub generate_historical_metrics {\n my ($api_client, $customer_id) = @_;\n\n my $keyword_historical_metrics_response =\n $api_client->KeywordPlanIdeaService()->generate_keyword_historical_metrics({\n customerId => $customer_id,\n keywords => [\"mars cruise\", \"cheap cruise\", \"jupiter cruise\"],\n # Geo target constant 2840 is for USA.\n geoTargetConstants => [\n Google::Ads::GoogleAds::V25::Utils::ResourceNames::geo_target_constant(\n 2840)\n ],\n keywordPlanNetwork => 'GOOGLE_SEARCH',\n # Language criteria 1000 is for English. See\n # https://developers.google.com/google-ads/api/reference/data/codes-formats#languages\n # for the list of language criteria IDs.\n language =>\n Google::Ads::GoogleAds::V25::Utils::ResourceNames::language_constant(\n 1000)});\n\n foreach my $result (@{$keyword_historical_metrics_response->{results}}) {\n my $metric = $result->{keywordMetrics};\n # These metrics include those for both the search query and any\n # variants included in the response.\n # If the metric is undefined, print (undef) as a placeholder.\n printf\n\"The search query, %s, (and the following variants: %s), generated the following historical metrics:\\n\",\n $result->{text},\n $result->{closeVariants}\n ? join(', ', $result->{closeVariants})\n : \"(undef)\";\n\n # Approximate number of monthly searches on this query averaged for\n # the past 12 months.\n printf \"\\tApproximate monthly searches: %s.\\n\",\n value_or_undef($metric->{avgMonthlySearches});\n\n # The competition level for this search query.\n printf \"\\tCompetition level: %s.\\n\", value_or_undef($metric->{competition});\n\n # The competition index for the query in the range [0, 100]. This shows how\n # competitive ad placement is for a keyword. The level of competition from\n # 0-100 is determined by the number of ad slots filled divided by the total\n # number of ad slots available. If not enough data is available, undef will\n # be returned.\n printf \"\\tCompetition index: %s.\\n\",\n value_or_undef($metric->{competitionIndex});\n\n # Top of page bid low range (20th percentile) in micros for the keyword.\n printf \"\\tTop of page bid low range: %s.\\n\",\n value_or_undef($metric->{lowTopOfPageBidMicros});\n\n # Top of page bid high range (80th percentile) in micros for the keyword.\n printf \"\\tTop of page bid high range: %s.\\n\",\n value_or_undef($metric->{highTopOfPageBidMicros});\n\n # Approximate number of searches on this query for the past twelve months.\n foreach my $month (@{$metric->{monthlySearchVolumes}}) {\n printf \"\\tApproximately %d searches in %s, %s.\\n\",\n $month->{monthlySearches}, $month->{month}, $month->{year};\n }\n }\n\n return 1;\n}generate_historical_metrics.pl\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.557Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":498,"estimatedTokens":5358}}117{"id":"doc-date_ranges_google_ads_api_google_for_developers-64f3ea9c","source":"documentation","title":"Date Ranges | Google Ads API | Google for Developers","url":"https://developers.google.com/google-ads/api/docs/query/date-ranges","text":"Example:\n```text\nsegments.date BETWEEN '2024-01-01' AND '2024-01-31'\n```\n\nExample:\n```text\nsegments.date >= '20241001' AND segments.date <= '20241031'\n```\n\nExample:\n```text\nsegments.date DURING LAST_30_DAYS\n```\n\nExample:\n```text\nsegments.month = '2024-05-01'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.587Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":21,"estimatedTokens":69}}118{"id":"doc-bring_your_own_token-5e2275ca","source":"documentation","title":"Bring Your Own Token","url":"https://developer.paypal.com/braintree/docs/guides/network-tokens/bring-your-own-token/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nBasicsClient AuthorizationOverviewTokenization KeyClient TokenPayment Method NoncesTransactionsCustomersPayment MethodsCheckout UIsDrop-in UIOverviewSetup and IntegrationCustomizationHosted FieldsOverviewSetup and IntegrationStylingEventsTroubleshooting and FAQExamplesFastlaneOverviewSetup and IntegrationClient-sideServer-sideTest your IntegrationAppendixAdvanced OptionsStylingBest Practice GuideTroubleshooting And FAQReference TypesFlexible Payment IntegrationPayment Method TypesOverviewACH Direct DebitOverviewConfigurationClient-sideServer-sideTesting and Go LiveInstant VerificationOverviewInstant Verification Client-sideInstant Verification Server-sideTesting Instant VerificationApple PayOverviewConfigurationClient-sideServer-sideTesting and Go LiveCredit CardsOverviewConfigurationClient-sideServer-sideTesting and Go LiveLocal Payment MethodsOverviewConfigurationClient-sideServer-sideTesting and Go LiveBoleto Bancário (Non-Instant)Multibanco (Non-Instant)OXXO (Non-Instant)Trustly (Non-Instant)SwishGoogle PayOverviewConfigurationClient-sideServer-sideTesting and Go LivePayPalOverviewClient-sidePayment FlowOne-time PaymentsRecurring PaymentsVaulted PaymentsCheckout with VaultPay Later OffersMobile CheckoutFeaturesApp SwitchShipping ModuleServer-sideTesting and Go LiveSamsung PayOverviewSEPA Direct DebitOverviewConfigurationClient-sideServer-sideVaultingTesting and Go LiveVenmoOverviewConfigurationClient-sideServer-sideTesting and Go LivePayment OrchestrationOverviewAdyendLocalEBANXFat ZebraFlexFactorFlutterwaveStripeTools3D SecureOverviewOnboardingStep by Step IntegrationApplying 3DS to Transactions and VerificationsMerchant Initiated Authentication (3RI)Rules ManagerAdvanced OptionsAuthentication InsightTestingPremium Fraud Management ToolsOverviewConfigurationClient-sideServer-sideWebhooksTesting and Go LiveData LensOverviewGetting StartedData Schema ReferenceSample QueriesIntegration PatternsBest Practices and SecurityTroubleshootingSupport and ResourcesFX OptimizerOverviewServer-sideTesting and Go LiveClient SDKSetupMigrationDeprecation PolicyDisputesOverviewManagingEvidence RequirementsAutomatingTesting and Go LiveNetwork TokensOverviewValue to MerchantsHow it WorksGetting StartedBring Your Own TokenPayment Request APIOverviewSetup and IntegrationReportsOverviewSettlement Batch SummariesCustom ReportsWebhooksWebhooksOverviewCreateParseTesting and Go LiveBraintree ExtendOAuthOverviewConfigurationConnect URLsClient-side Connect FlowAccess TokensShared VaultReferenceForward APIConfigurationTransformationsTokenization SupportHyperwallet IntegrationWorldpayExamplesCryptographyPGP Public KeyAdditional FeaturesOptimized Debit RoutingOverviewTransaction WorkflowEligibilityIntegrationManaging AuthorizationNetwork Response CodesTest and Go LiveCode SamplesSDKGraphQLBraintree Auth (Beta)OverviewConfigurationMerchant Connect FlowServer-side Connect FlowClient-side Connect FlowOAuth FlowWebhooksMerchant APIMulti-currencyTesting and Go LiveBrandingReferencePackage TrackingOverviewClient-sideServer-sideRecurring BillingOverviewPlansCreating SubscriptionsManaging SubscriptionsTesting and Go LiveTools/Network Tokens/Bring Your Own TokenAsk ChatGPTBring Your Own TokenRubySDKCurrent Braintree LanguagesJava.NETNode.jsPHPPythonRuby Through Bring Your Own Token (BYOT), merchants who tokenize cards with another Payment Service Provider (PSP) or who vault Network Tokens themselves can use their existing Network Tokens with Braintree. Creating transactions A BYOT transaction can be created using with the required network token parameters. The required parameters differ based on the type of BYOT transaction being created. Required parametersThe following parameters are always (token) credit_card.expiration_date (token) credit_card.network_tokenization_attributes.cryptogram For more information on what should be passed in the cryptogram field, see the \"Customer Initiated Transactions\" and \"Merchant Initiated Transactions\" fields below. Optional parametersThe following parameters are always Refer to for detailed examples and a complete listing of transaction options. Customer initiated transactionsWhen creating a customer initiated transaction (CIT) or the first in a recurring series, a network-issued cryptogram is required. We also recommend including the external_vault object with status: \"vaulted\". While this is currently optional, it may become required in future updates to support proper transaction context. RubyCopyresult = gateway.transaction.sale( :amount => \"10.00\", :credit_card => { :number: => \"4111111111111111\", :expiration_date => \"05/2027\", network_tokenization_attributes => { :cryptogram => \"/wAAAAAAAcb8AlGUF/1JQEkAAAA=\", :token_requestor_id => \"45310020105\", :ecommerce_indicator => \"05\" }, :external_vault => { :status => \"vaulted\", } }, ) if result.success? # See result.transaction for details # result.transaction.processed_with_network_token? == true else # Handle errors endMerchant initiated transactions When creating a merchant initiated transaction (MIT) or subsequent transaction, a network transaction identifier (NTI) and related parameters are required. The cryptogram must still be present, but a static cryptogram value of \"STATIC_RECURRING\" should be included in place of a network-issued cryptogram. Required parameterstransaction_source = recurring, unscheduled, or installmentexternal_vault.status = vaultedexternal_vault.previous_network_transaction_idcredit_card.network_tokenization_attributes.cryptogramRubyCopyresult = gateway.transaction.sale( :amount => \"10.00\", :transaction_source => \"recurring\", :credit_card => { :number: => \"4111111111111111\", :expiration_date => \"05/2027\", network_tokenization_attributes => { :token_requestor_id => \"45310020105\", :ecommerce_indicator => \"05\", :cryptogram => \"STATIC_RECURRING\" } }, :external_vault => { :status => \"vaulted\", :previous_network_transaction_id => \"123456789012345\" } ) if result.success? # See result.transaction for details # result.transaction.processed_with_network_token? == true else # Handle errors endOn this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedIntegration GuideTutorial (Preview)Checkout UIsExample IntegrationsBasicsClient AuthorizationSingle-use TokenCustomersPayment MethodsTransactionsPayment Method TypesOverviewACH Direct DebitApple PayCredit CardsGoogle PayPayPalVenmoSecure Remote CommerceTools3D SecurePremium Fraud Management ToolsClient SDKDisputesPayment Request APIReportsWebhooksCheckout UIDrop-in UIHosted FieldsAdditional FeaturesBraintree Auth (Beta)Braintree MarketplaceGrant API (Beta)OAuth (Beta)PayPal HereRecurring BillingAPI ReferenceClient ReferencesServer-side API RequestsServer-side Response ObjectsGeneralBraintreepayments.comStatusAPIIn-PersonSupport ArticlesPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\nExample:\n```ruby\nresult = gateway.transaction.sale(\n :amount => \"10.00\",\n :credit_card => {\n :number: => \"4111111111111111\",\n :expiration_date => \"05/2027\",\n network_tokenization_attributes => {\n :cryptogram => \"/wAAAAAAAcb8AlGUF/1JQEkAAAA=\",\n :token_requestor_id => \"45310020105\",\n :ecommerce_indicator => \"05\"\n },\n :external_vault => {\n :status => \"vaulted\",\n }\n },\n)\n\nif result.success?\n # See result.transaction for details\n # result.transaction.processed_with_network_token? == true\nelse\n # Handle errors\nend\n```\n\nExample:\n```ruby\nresult = gateway.transaction.sale(\n :amount => \"10.00\",\n :transaction_source => \"recurring\",\n :credit_card => {\n :number: => \"4111111111111111\",\n :expiration_date => \"05/2027\",\n network_tokenization_attributes => {\n :token_requestor_id => \"45310020105\",\n :ecommerce_indicator => \"05\",\n :cryptogram => \"STATIC_RECURRING\"\n }\n },\n :external_vault => {\n :status => \"vaulted\",\n :previous_network_transaction_id => \"123456789012345\"\n }\n)\n\nif result.success?\n # See result.transaction for details\n # result.transaction.processed_with_network_token? == true\nelse\n # Handle errors\nend\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.081Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":59,"estimatedTokens":2088}}119{"id":"doc-manage_subscriptions-ea14ac29","source":"documentation","title":"Manage Subscriptions","url":"https://developer.paypal.com/braintree/docs/guides/recurring-billing/manage/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```ruby\nresult = gateway.subscription.update(\n \"m476\", # id of subscription to update\n :id => \"new_id\",\n :payment_method_token => \"new_payment_method_token\",\n :price => \"14.00\",\n :plan_id => \"new_plan\",\n :merchant_account_id => \"new_merchant_account\"\n)\n```\n\nExample:\n```ruby\nresult = gateway.subscription.update(\n \"the_subscription_id\",\n :add_ons => {\n :add => [\n {\n :inherited_from_id => \"add_on_id_1\",\n :amount => BigDecimal.new(\"25.00\")\n }\n ],\n :update => [\n {\n :existing_id => \"the_add_on_id_2\",\n :amount => BigDecimal.new(\"50.00\")\n }\n ],\n :remove => [\"the_add_on_id_3\"]\n },\n :discounts => {\n :add => [\n {\n :inherited_from_id => \"discount_id_1\",\n :amount => BigDecimal.new(\"7.00\")\n }\n ],\n :update => [\n {\n :existing_id => \"discount_id_2\",\n :amount => BigDecimal.new(\"15.00\")\n }\n ],\n :remove => [\"discount_id_3\"]\n }\n)\n```\n\nExample:\n```ruby\nretry_result = gateway.subscription.retry_charge(\n subscription.id,\n \"24.00\",\n true\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.112Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":61,"estimatedTokens":328}}120{"id":"doc-braintree_sdk_docs-a3e8326c","source":"documentation","title":"Braintree SDK Docs","url":"https://developer.paypal.com/braintree/articles/control-panel/transactions/refunds-voids-credits","text":"Braintree a PayPal ServiceSupport ArticlesRefunds, Voids, and CreditsSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedControl PanelGuidesRisk and Security\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.116Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":71}}121{"id":"doc-braintree_sdk_docs-2c473dc9","source":"documentation","title":"Braintree SDK Docs","url":"https://developer.paypal.com/braintree/articles/risk-and-security/underwriting/overview","text":"Braintree a PayPal ServiceSupport ArticlesOverviewSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedControl PanelGuidesRisk and Security\n\nRisk and SecurityOverviewChargebacks and RetrievalsOverviewDisputing ChargebacksReducing ChargebacksChargeback Reason CodesCard Brand Monitoring ProgramsOverviewVisa ProgramsVisa Acquirer Monitoring ProgramVisa Fraud Monitoring ProgramsMastercard ProgramsExcessive Chargeback ProgramExcessive Fraud Merchant ProgramFrequently Asked QuestionsComplianceOverviewEcommerce Website RequirementsData Protection LawsNetwork ComplianceNetwork UpdatesOverviewMastercardVisaAll Spring 2026 UpdatesAll Spring 2025 UpdatesAll Fall 2025 UpdatesAll Spring 2024 UpdatesAll Spring 2023 UpdatesAll Fall 2023 UpdatesAppendixPCI ComplianceProhibited TransactionsControl Panel SecurityRotating API KeysTwo-Factor AuthenticationRisk FactorsMitigating RiskIdentifying FraudUnderwritingOverviewPeriodic ReviewsAllowlistingRisk and Security/Underwriting/OverviewAsk ChatGPTOverview Merchant account providers like Braintree are financially liable for all merchant losses. For example, if one of our merchants sold an annual membership but then went out of business four months into providing the service, we would be financially liable for the incomplete outstanding orders. This liability makes us cautious when it comes to underwriting and risk management. Important Data security is incredibly important to us. If you believe the security of your Braintree integration may have been compromised, contact us and we'll assist you from there. Risk factors Certain business models are considered to be higher risk than others based on decades of credit card processing data. For example, restaurants are low-risk while travel is very high-risk. Other high-risk industries or ticketingTelemarketingVirtual currencyThere are also billing methods that increase risk, such billingRetainers/account creditAggregation Businesses with high risk must demonstrate that they have the financial strength to support their model. However, some industries are considered so high-risk that many merchant account providers will refuse to process payments for them altogether. These can entertainmentFirearmsIllegal drugsDebt consolidationCredit repairBankruptcy attorneysHow we mitigate risk We can sometimes minimize our financial exposure enough to allow merchants with high-risk business models to process with us. Two of the most common ways we do this are covered below. Require a personal or corporate guarantee After reviewing your company’s financials, we will sometimes require a personal or corporate guarantee. Because we bear all financial liability, we want to make sure that owners have similar incentives to deliver their products or services. Establish a reserve Depending on the risk involved with your business model, we might hold funds in a reserve to ensure that we can cover refunds and chargebacks if you are unable to. If we determine that a reserve is necessary during the application process, we’ll either collect the reserve before you begin processing payments or withhold a percentage of your transaction revenue until you reach your reserve limit. Note Braintree does not have cyberinsurance, nor does it indemnify. Security is Braintree's utmost priority, but the standard in the gateway provider industry is to not indemnify their customers. On this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedOverviewPayment MethodsCurrenciesTransaction LifecycleGet PaidTry It OutData MigrationExploreControl PanelOverviewUsers and RolesImportant Gateway CredentialsSearchTransactionsVaultReportingWebhooksCustom FieldsToolsAccount UpdaterBraintree MarketplaceConfiguring SPF RecordsFraud ToolsPayment MethodsPayPal HereRecurring BillingUpdating Account InformationRisk and SecurityOverviewChargebacks and RetrievalsComplianceControl Panel SecurityRisk FactorsUnderwritingAllowlistingBraintreepayments.comStatusSDK DocsAPIIn-PersonPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.125Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":1056}}122{"id":"doc-braintree_sdk_docs-1f9cd106","source":"documentation","title":"Braintree SDK Docs","url":"https://developer.paypal.com/braintree/articles/guides/payment-methods/apple-pay","text":"Braintree a PayPal ServiceSupport ArticlesApple PaySDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedControl PanelGuidesRisk and Security\n\nGuidesAccount UpdaterDisbursement Fee ReportOverviewReport StructureField ReferenceSettlement ModelsReconciliation WalkthroughTransaction TypesSpecial SituationsFraud ToolsOverviewBasic Fraud ToolsOverviewAVS and CVV RulesRisk Threshold RulesPremium Fraud Management ToolsOverviewFraud Protection LiteFraud Protection AdvancedChargeback Protection ToolsBest Practices3D SecurePayment MethodsACH Direct DebitApple PayGoogle PayPayPalOverviewBest PracticesSetup GuideProcessingDisputesFunding and ReconciliationPayPal Pay Later OffersLocal Payment MethodsSecure Remote CommerceSEPA Direct DebitVenmoRecurring BillingOverviewPlansSubscriptionsBilling CyclesAdd-ons and DiscountsTrial PeriodsEmail NotificationsAdvanced SettingsMastercard RequirementsUpdating Account InformationRefund AuthorizationsSingle Sign-On (SSO)MFAGuides/Payment Methods/Apple PayAsk ChatGPTApple Pay Apple Pay allows customers to make secure purchases using a credit or debit card associated with a supported Apple mobile device. Businesses can accept Apple Pay on newer versions of iOS and Safari, making it quick and easy for customers to buy on both mobile and the web. Behind the scenes, Apple uses a tokenization service and encrypts the customer's card number, assigning it a device-specific identifier called a DPAN. Braintree and the processing banks then use this DPAN in place of the real card number to securely handle transactions. Availability Where your business is located dictates your ability to accept Apple Pay. Most merchants based in the following regions – contingent on their processing settings – can accept Apple Pay transactions from eligible customers with the indicated card - Visa, Mastercard, American Express*Australia - Visa, Mastercard, American Express*Canada - Visa, Mastercard, American Express*Europe - Visa, Mastercard, American Express*New Zealand - Visa, Mastercard, American Express*United States - Visa, Mastercard, American Express, Discover*To be eligible to accept Apple Pay with American Express in this region, you must be processing with your own Amex account. If you are unsure of your setup, contact us for assistance. Customer availabilityDevice requirementsTo pay with Apple Pay, customers must have devices with the following specifications.For in-app 8+Touch ID or Face IDFor mobile web 10+Touch ID or Face IDFor desktop web iPhone, iPad, Apple Watch, or Mac that can authorize the paymentmacOS Sierra 10.12+Safari. With the latest Apple Pay SDK, customers can also pay using non-Safari browsers.iframe supportPayPal also provides iframe support for ApplePay. To use ApplePay within an iframe tag must have the attribute allow=\"payment\". The parent domain hosting the iframe needs to have it's domain validated by following the usual process with PayPal Location requirements At this time, our eligible merchants can accept Apple Pay from customers in all countries and regions supported by Apple Pay. For a complete list of locations where customers can pay with Apple Pay, see Apple's documentation. Important Apple's documentation only identifies the countries where customers can pay with this payment method. To accept Apple Pay, merchants must be domiciled in a country that is eligible to onboard with Braintree and compatible with Apple Pay. Processing Apple Pay transactions process and settle just like credit card transactions, but can be identified in the Control Panel by their unique payment type logo. Fees There are no additional fees for processing Apple Pay transactions – pricing for Apple Pay is the same as your other credit card transactions. Disputes Chargebacks, retrievals, and pre-arbitrations on Apple Pay transactions behave in the same way as your credit card disputes, and should be responded to according to your merchant account setup. If you’re unsure how to handle a dispute, contact our Disputes team.Liability ShiftApple Pay supports liability shift for all the major networks (Mastercard, Discover and Amex) with the following For Visa, liability shift is supported globally for devices running iOS 16.2 and above. - For Visa, liability shift support is only available for cards issued in Europe for devices running on versions below iOS 16.2.Fraud tools Apple uses a tokenization system to encrypt card information and reduce the risk of fraud. As a result, our Basic Fraud Tools are not compatible with Apple Pay. We do still recommend collecting and passing billing address information, at miniumum billing postal code, and passing that billing postal code with all Apple Pay transactions as a best practice. Apple Pay transactions are compatible with our Premium Fraud Management Tools. Recurring billing and vaulting Apple Pay cards can be vaulted and used for recurring billing and split shipment transactions. Vaulting Apple Pay cards should only be used when the customer consents to future merchant-initiated transactions during checkout. It should not be used for future transactions where the customer is present and available to authorize payments during the time of transaction; doing so will result in declines and is not recommended. Setup Before getting started, you'll need to work with us and Apple to configure your Apple Pay certificates and Merchant IDs. Then you can complete your client (iOS and/or JavaScript v3) and server integrations. Full instructions are available in our developer docs. Certificate renewal If you integrate with Apple Pay using our iOS client SDK, you will be required to configure an Apple Pay certificate before completing your integration. This certificate expires after 25 months and must be kept up-to-date to avoid any disruptions in your processing. For full instructions on how to generate a new certificate and upload it to the Control Panel, see our developer docs. On this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedOverviewPayment MethodsCurrenciesTransaction LifecycleGet PaidTry It OutData MigrationExploreControl PanelOverviewUsers and RolesImportant Gateway CredentialsSearchTransactionsVaultReportingWebhooksCustom FieldsToolsAccount UpdaterBraintree MarketplaceConfiguring SPF RecordsFraud ToolsPayment MethodsPayPal HereRecurring BillingUpdating Account InformationRisk and SecurityOverviewChargebacks and RetrievalsComplianceControl Panel SecurityRisk FactorsUnderwritingAllowlistingBraintreepayments.comStatusSDK DocsAPIIn-PersonPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.127Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":1695}}123{"id":"doc-containerize_an_application_docker_docs-5d7d41b5","source":"documentation","title":"Containerize an application | Docker Docs","url":"https://docs.docker.com/get-started/workshop/02_our_app/","text":"Get startedGuidesManualsReference GordonGordon, your AI assistant for Docker docs Search\n\nExample:\n```console\n$ git clone https://github.com/docker/getting-started-app.git\n```\n\nExample:\n```text\n├── getting-started-app/\n│ ├── .dockerignore\n│ ├── package.json\n│ ├── package-lock.json \n│ ├── README.md\n│ ├── spec/\n│ ├── src/\n```\n\nExample:\n```dockerfile\n# syntax=docker/dockerfile:1\n\nFROM node:24-alpine\nWORKDIR /app\nCOPY . .\nRUN npm install --omit=dev\nCMD [\"node\", \"src/index.js\"]\nEXPOSE 3000\n```\n\nExample:\n```console\n$ cd /path/to/getting-started-app\n```\n\nExample:\n```console\n$ docker build -t getting-started .\n```\n\nExample:\n```console\n$ docker run -d -p 127.0.0.1:3000:3000 getting-started\n```\n\nExample:\n```console\n$ docker ps\n```\n\nExample:\n```console\nCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES\ndf784548666d getting-started \"docker-entrypoint.s…\" 2 minutes ago Up 2 minutes 127.0.0.1:3000->3000/tcp priceless_mcclintock\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:59.976Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":57,"estimatedTokens":266}}124{"id":"doc-display_a_full_screen_native_ad_ios_google_for_d-a1b5b8ed","source":"documentation","title":"Display a full-screen native ad | iOS | Google for Developers","url":"https://developers.google.com/admob/ios/native/full-screen","text":"Example:\n```text\n-- Native Ad View\n -- Media View\n -- Container View 1\n -- Call To Action View\n -- Container View 2\n -- Headline View\n -- Container View 3\n -- Body View\n```\n\nExample:\n```text\nlet aspectRatioOption = NativeAdMediaAdLoaderOptions()\n aspectRatioOption.mediaAspectRatio = .portrait\n adLoader = AdLoader(\n adUnitID: \"<var>your ad unit ID</var>\",\n rootViewController: self,\n adTypes: adTypes,\n options: [aspectRatioOption])\n```\n\nExample:\n```text\nGADNativeAdMediaAdLoaderOptions *aspectRatioOption = [[GADNativeAdMediaAdLoaderOptions alloc] init];\n aspectRatioOption.mediaAspectRatio = GADMediaAspectRatioPortrait;\n self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:@\"<var>your ad unit ID</var>\"\n rootViewController:self\n adTypes:@[ GADAdLoaderAdTypeNative ]\n options:@[ aspectRatioOption ]];\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.683Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":34,"estimatedTokens":249}}125{"id":"doc-smart_banners_ios_google_for_developers-eb5b917f","source":"documentation","title":"Smart banners | iOS | Google for Developers","url":"https://developers.google.com/admob/ios/banner/smart","text":"Example:\n```text\nlet bannerView = GADBannerView(adSize: kGADAdSizeSmartBannerPortrait)\n```\n\nExample:\n```text\nGADBannerView *bannerView = [[GADBannerView alloc]\n initWithAdSize:kGADAdSizeSmartBannerPortrait];\n```\n\nExample:\n```text\nfunc addBannerViewToView(_ bannerView: GADBannerView) {\n bannerView.translatesAutoresizingMaskIntoConstraints = false\n view.addSubview(bannerView)\n if #available(iOS 11.0, *) {\n // In iOS 11, we need to constrain the view to the safe area.\n positionBannerViewFullWidthAtBottomOfSafeArea(bannerView)\n }\n else {\n // In lower iOS versions, safe area is not available so we use\n // bottom layout guide and view edges.\n positionBannerViewFullWidthAtBottomOfView(bannerView)\n }\n}\n\n// MARK: - view positioning\n@available (iOS 11, *)\nfunc positionBannerViewFullWidthAtBottomOfSafeArea(_ bannerView: UIView) {\n // Position the banner. Stick it to the bottom of the Safe Area.\n // Make it constrained to the edges of the safe area.\n let guide = view.safeAreaLayoutGuide\n NSLayoutConstraint.activate([\n guide.leftAnchor.constraint(equalTo: bannerView.leftAnchor),\n guide.rightAnchor.constraint(equalTo: bannerView.rightAnchor),\n guide.bottomAnchor.constraint(equalTo: bannerView.bottomAnchor)\n ])\n}\n\nfunc positionBannerViewFullWidthAtBottomOfView(_ bannerView: UIView) {\n view.addConstraint(NSLayoutConstraint(item: bannerView,\n attribute: .leading,\n relatedBy: .equal,\n toItem: view,\n attribute: .leading,\n multiplier: 1,\n constant: 0))\n view.addConstraint(NSLayoutConstraint(item: bannerView,\n attribute: .trailing,\n relatedBy: .equal,\n toItem: view,\n attribute: .trailing,\n multiplier: 1,\n constant: 0))\n view.addConstraint(NSLayoutConstraint(item: bannerView,\n attribute: .bottom,\n relatedBy: .equal,\n toItem: bottomLayoutGuide,\n attribute: .top,\n multiplier: 1,\n constant: 0))\n}\n```\n\nExample:\n```text\n- (void)addBannerViewToView:(UIView *)bannerView {\n bannerView.translatesAutoresizingMaskIntoConstraints = NO;\n [self.view addSubview:bannerView];\n if (@available(ios 11.0, *)) {\n // In iOS 11, we need to constrain the view to the safe area.\n [self positionBannerViewFullWidthAtBottomOfSafeArea:bannerView];\n } else {\n // In lower iOS versions, safe area is not available so we use\n // bottom layout guide and view edges.\n [self positionBannerViewFullWidthAtBottomOfView:bannerView];\n }\n}\n\n#pragma mark - view positioning\n\n- (void)positionBannerViewFullWidthAtBottomOfSafeArea:(UIView *_Nonnull)bannerView NS_AVAILABLE_IOS(11.0) {\n // Position the banner. Stick it to the bottom of the Safe Area.\n // Make it constrained to the edges of the safe area.\n UILayoutGuide *guide = self.view.safeAreaLayoutGuide;\n\n [NSLayoutConstraint activateConstraints:@[\n [guide.leftAnchor constraintEqualToAnchor:bannerView.leftAnchor],\n [guide.rightAnchor constraintEqualToAnchor:bannerView.rightAnchor],\n [guide.bottomAnchor constraintEqualToAnchor:bannerView.bottomAnchor]\n ]];\n}\n\n- (void)positionBannerViewFullWidthAtBottomOfView:(UIView *_Nonnull)bannerView {\n [self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView\n attribute:NSLayoutAttributeLeading\n relatedBy:NSLayoutRelationEqual\n toItem:self.view\n attribute:NSLayoutAttributeLeading\n multiplier:1\n constant:0]];\n [self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView\n attribute:NSLayoutAttributeTrailing\n relatedBy:NSLayoutRelationEqual\n toItem:self.view\n attribute:NSLayoutAttributeTrailing\n multiplier:1\n constant:0]];\n [self.view addConstraint:[NSLayoutConstraint constraintWithItem:bannerView\n attribute:NSLayoutAttributeBottom\n relatedBy:NSLayoutRelationEqual\n toItem:self.bottomLayoutGuide\n attribute:NSLayoutAttributeTop\n multiplier:1\n constant:0]];\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.745Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":120,"estimatedTokens":1367}}126{"id":"doc-getting_started_credential_sharing_google_for_de-b7f6bdc3","source":"documentation","title":"Getting Started | Credential Sharing | Google for Developers","url":"https://developers.google.com/identity/credential-sharing/digital-asset-links","text":"Example:\n```text\n[{\n \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n \"target\" : { \"namespace\": \"android_app\", \"package_name\": \"com.example.app\",\n \"sha256_cert_fingerprints\": [\"hash_of_app_certificate\"] }\n }]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.757Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":66}}127{"id":"doc-order_tracking_signals_content_api_for_shopping_-33aa2e8b","source":"documentation","title":"Order tracking signals | Content API for Shopping | Google for Developers","url":"https://developers.google.com/shopping-content/guides/order-tracking-signals","text":"Example:\n```text\nhttps://shoppingcontent.googleapis.com/content/v2.1/merchantId/ordertrackingsignals\n```\n\nExample:\n```text\n{\n \"merchantId\": \"987654321\",\n \"orderCreatedTime\": {\n \"year\": 2020,\n \"month\": 1,\n \"day\": 2,\n \"hours\": 0,\n \"minutes\": 0,\n \"seconds\": 0,\n \"timeZone\": {\n \"id\": \"America/Los_Angeles\"\n }\n },\n \"orderId\": \"123456789\",\n \"shippingInfo\": [\n {\n \"shipmentId\": \"1\",\n \"trackingId\": \"100\",\n \"carrierName\": \"FEDEX\",\n \"carrierServiceName\": \"GROUND\",\n \"shippedTime\": {\n \"year\": 2020,\n \"month\": 1,\n \"day\": 3,\n \"hours\": 0,\n \"minutes\": 0,\n \"seconds\": 0,\n \"timeZone\": {\n \"id\": \"America/Los_Angeles\"\n }\n },\n \"shippingStatus\": \"DELIVERED\"\n },\n {\n \"shipmentId\": \"2\",\n \"earliestDeliveryPromiseTime\": {\n \"year\": 2020,\n \"month\": 1,\n \"day\": 4,\n \"hours\": 0,\n \"minutes\": 0,\n \"seconds\": 0,\n \"timeZone\": {\n \"id\": \"America/Los_Angeles\"\n }\n },\n \"latestDeliveryPromiseTime\": {\n \"year\": 2020,\n \"month\": 1,\n \"day\": 5,\n \"hours\": 0,\n \"minutes\": 0,\n \"seconds\": 0,\n \"timeZone\": {\n \"id\": \"America/Los_Angeles\"\n }\n },\n \"actualDeliveryTime\": {\n \"year\": 2020,\n \"month\": 1,\n \"day\": 5,\n \"hours\": 0,\n \"minutes\": 0,\n \"seconds\": 0,\n \"timeZone\": {\n \"id\": \"America/Los_Angeles\"\n }\n },\n \"shippedTime\": {\n \"year\": 2020,\n \"month\": 1,\n \"day\": 3,\n \"hours\": 0,\n \"minutes\": 0,\n \"seconds\": 0,\n \"timeZone\": {\n \"id\": \"America/Los_Angeles\"\n }\n },\n \"shippingStatus\": \"DELIVERED\"\n }\n ],\n \"lineItems\": [\n {\n \"lineItemId\": \"item1\",\n \"productId\": \"online:en:US:item1\",\n \"quantity\": \"3\"\n },\n {\n \"lineItemId\": \"item2\",\n \"productId\": \"online:en:US:item2\",\n \"quantity\": \"5\"\n }\n ],\n \"shipmentLineItemMapping\": [\n {\n \"shipmentId\": \"1\",\n \"lineItemId\": \"item1\",\n \"quantity\": \"1\"\n },\n {\n \"shipmentId\": \"2\",\n \"lineItemId\": \"item1\",\n \"quantity\": \"2\"\n },\n {\n \"shipmentId\": \"1\",\n \"lineItemId\": \"item2\",\n \"quantity\": \"4\"\n },\n {\n \"shipmentId\": \"2\",\n \"lineItemId\": \"item2\",\n \"quantity\": \"1\"\n }\n ],\n \"customerShippingFee\": {\n \"value\": \"4.5\",\n \"currency\": \"USD\"\n },\n \"deliveryPostalCode\": \"94043\",\n \"deliveryRegionCode\": \"US\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.761Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":133,"estimatedTokens":645}}128{"id":"doc-banner_ads_custom_events_android_google_for_deve-0398f142","source":"documentation","title":"Banner ads custom events | Android | Google for Developers","url":"https://developers.google.com/admob/android/next-gen/custom-events/banner","text":"Example:\n```text\npackage com.google.ads.mediation.sample.customevent;\n\nimport com.google.android.gms.ads.mediation.Adapter;\nimport com.google.android.gms.ads.mediation.MediationAdConfiguration;\nimport com.google.android.gms.ads.mediation.MediationAdLoadCallback;\nimport com.google.android.gms.ads.mediation.MediationBannerAd;\nimport com.google.android.gms.ads.mediation.MediationBannerAdCallback;\n...\n\npublic class SampleCustomEvent extends Adapter {\n private SampleBannerCustomEventLoader bannerLoader;\n @Override\n public void loadBannerAd(\n @NonNull MediationBannerAdConfiguration adConfiguration,\n @NonNull MediationAdLoadCallback<MediationBannerAd, MediationBannerAdCallback> callback) {\n bannerLoader = new SampleBannerCustomEventLoader(adConfiguration, callback);\n bannerLoader.loadAd();\n }\n}\n```\n\nExample:\n```text\npackage com.google.ads.mediation.sample.customevent;\n\nimport com.google.android.gms.ads.mediation.Adapter;\nimport com.google.android.gms.ads.mediation.MediationBannerAdConfiguration;\nimport com.google.android.gms.ads.mediation.MediationAdLoadCallback;\nimport com.google.android.gms.ads.mediation.MediationBannerAd;\nimport com.google.android.gms.ads.mediation.MediationBannerAdCallback;\n...\n\npublic class SampleBannerCustomEventLoader extends SampleAdListener implements MediationBannerAd {\n\n /** View to contain the sample banner ad. */\n private SampleAdView sampleAdView;\n\n /** Configuration for requesting the banner ad from the third-party network. */\n private final MediationBannerAdConfiguration mediationBannerAdConfiguration;\n\n /** Callback that fires on loading success or failure. */\n private final MediationAdLoadCallback<MediationBannerAd, MediationBannerAdCallback>\n mediationAdLoadCallback;\n\n /** Callback for banner ad events. */\n private MediationBannerAdCallback bannerAdCallback;\n\n /** Constructor. */\n public SampleBannerCustomEventLoader(\n @NonNull MediationBannerAdConfiguration mediationBannerAdConfiguration,\n @NonNull MediationAdLoadCallback<MediationBannerAd, MediationBannerAdCallback>\n mediationAdLoadCallback) {\n this.mediationBannerAdConfiguration = mediationBannerAdConfiguration;\n this.mediationAdLoadCallback = mediationAdLoadCallback;\n }\n\n /** Loads a banner ad from the third-party ad network. */\n public void loadAd() {\n // All custom events have a server parameter named \"parameter\" that returns\n // back the parameter entered into the UI when defining the custom event.\n Log.i(\"BannerCustomEvent\", \"Begin loading banner ad.\");\n String serverParameter =\n mediationBannerAdConfiguration.getServerParameters().getString(\n MediationConfiguration.CUSTOM_EVENT_SERVER_PARAMETER_FIELD);\n\n Log.d(\"BannerCustomEvent\", \"Received server parameter.\");\n\n Context context = mediationBannerAdConfiguration.getContext();\n sampleAdView = new SampleAdView(context);\n\n // Assumes that the serverParameter is the ad unit of the Sample Network.\n sampleAdView.setAdUnit(serverParameter);\n AdSize size = mediationBannerAdConfiguration.getAdSize();\n\n // Internally, smart banners use constants to represent their ad size, which\n // means a call to AdSize.getHeight could return a negative value. You can\n // accommodate this by using AdSize.getHeightInPixels and\n // AdSize.getWidthInPixels instead, and then adjusting to match the device's\n // display metrics.\n int widthInPixels = size.getWidthInPixels(context);\n int heightInPixels = size.getHeightInPixels(context);\n DisplayMetrics displayMetrics = Resources.getSystem().getDisplayMetrics();\n int widthInDp = Math.round(widthInPixels / displayMetrics.density);\n int heightInDp = Math.round(heightInPixels / displayMetrics.density);\n\n sampleAdView.setSize(new SampleAdSize(widthInDp, heightInDp));\n sampleAdView.setAdListener(this);\n\n SampleAdRequest request = createSampleRequest(mediationBannerAdConfiguration);\n Log.i(\"BannerCustomEvent\", \"Start fetching banner ad.\");\n sampleAdView.fetchAd(request);\n }\n\n public SampleAdRequest createSampleRequest(\n MediationAdConfiguration mediationAdConfiguration) {\n SampleAdRequest request = new SampleAdRequest();\n request.setTestMode(mediationAdConfiguration.isTestRequest());\n request.setKeywords(mediationAdConfiguration.getMediationExtras().keySet());\n return request;\n }\n}\n```\n\nExample:\n```text\n@Override\npublic void onAdFetchSucceeded() {\n bannerAdCallback = mediationAdLoadCallback.onSuccess(this);\n}\n\n@Override\npublic void onAdFetchFailed(SampleErrorCode errorCode) {\n mediationAdLoadCallback.onFailure(SampleCustomEventError.createSampleSdkError(errorCode));\n}\n```\n\nExample:\n```text\n@Override\n@NonNull\npublic View getView() {\n return sampleAdView;\n}\n```\n\nExample:\n```text\n@Override\npublic void onAdFullScreen() {\n bannerAdCallback.onAdOpened();\n bannerAdCallback.reportAdClicked();\n}\n\n@Override\npublic void onAdClosed() {\n bannerAdCallback.onAdClosed();\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.808Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":142,"estimatedTokens":1249}}129{"id":"doc-integrate_mintegral_with_mediation_android_googl-f40e50cd","source":"documentation","title":"Integrate Mintegral with mediation | Android | Google for Developers","url":"https://developers.google.com/admob/android/mediation/mintegral","text":"Example:\n```text\ndependencyResolutionManagement {\n repositories {\n google()\n mavenCentral()\n maven {\n url = uri(\"https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea\")\n }\n }\n}\n```\n\nExample:\n```devsite-click-to-copy\ndependencies {\n implementation(\"com.google.android.gms:play-services-ads:25.4.0\")\n implementation(\"com.google.ads.mediation:mintegral:17.1.71.0\")\n}\n```\n\nExample:\n```devsite-click-to-copy\ndependencies {\n implementation 'com.google.android.gms:play-services-ads:25.4.0'\n implementation 'com.google.ads.mediation:mintegral:17.1.71.0'\n}\n```\n\nExample:\n```text\nMBridgeSDK sdk = MBridgeSDKFactory.getMBridgeSDK();\nsdk.setConsentStatus(context, MBridgeConstans.IS_SWITCH_ON);MintegralMediationSnippets.java\n```\n\nExample:\n```text\nval sdk = MBridgeSDKFactory.getMBridgeSDK()\nsdk.setConsentStatus(context, MBridgeConstans.IS_SWITCH_ON)MintegralMediationSnippets.kt\n```\n\nExample:\n```text\nMBridgeSDK mBridgeSDK = MBridgeSDKFactory.getMBridgeSDK();\nmBridgeSDK.setDoNotTrackStatus(false);MintegralMediationSnippets.java\n```\n\nExample:\n```text\nval sdk = MBridgeSDKFactory.getMBridgeSDK()\nsdk.setDoNotTrackStatus(false)MintegralMediationSnippets.kt\n```\n\nExample:\n```text\ncom.mbridge.msdk\ncom.google.ads.mediation.mintegral.MintegralMediationAdapter\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.870Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":60,"estimatedTokens":330}}130{"id":"doc-integrate_liftoff_monetize_with_mediation_androi-00dd2f10","source":"documentation","title":"Integrate Liftoff Monetize with mediation | Android | Google for Developers","url":"https://developers.google.com/admob/android/mediation/liftoff-monetize","text":"Example:\n```devsite-click-to-copy\ndependencies {\n implementation(\"com.google.android.gms:play-services-ads:25.4.0\")\n implementation(\"com.google.ads.mediation:vungle:7.7.7.0\")\n}\n```\n\nExample:\n```devsite-click-to-copy\ndependencies {\n implementation 'com.google.android.gms:play-services-ads:25.4.0'\n implementation 'com.google.ads.mediation:vungle:7.7.7.0'\n}\n```\n\nExample:\n```text\nVunglePrivacySettings.setCCPAStatus(true);LiftoffMonetizeMediationSnippets.java\n```\n\nExample:\n```text\nVunglePrivacySettings.setCCPAStatus(true)LiftoffMonetizeMediationSnippets.kt\n```\n\nExample:\n```text\nBundle extras = new Bundle();\nextras.putString(VungleConstants.KEY_USER_ID, \"myUserID\");\nextras.putInt(VungleConstants.KEY_ORIENTATION, 1);\n// Optional: Enables the back button on App Open ads immediately.\nextras.putBoolean(VungleConstants.KEY_BACK_BUTTON_IMMEDIATELY_ENABLED, true);\n\nAdRequest request =\n new AdRequest.Builder()\n .addNetworkExtrasBundle(VungleAdapter.class, extras) // Rewarded.\n .addNetworkExtrasBundle(VungleInterstitialAdapter.class, extras) // Interstitial.\n // App Open ads use VungleMediationAdapter\n .addNetworkExtrasBundle(VungleMediationAdapter.class, extras)\n .build();LiftoffMonetizeMediationSnippets.java\n```\n\nExample:\n```text\nval extras = Bundle()\nextras.putString(VungleConstants.KEY_USER_ID, \"myUserID\")\nextras.putInt(VungleConstants.KEY_ORIENTATION, 1)\n// Optional: Enables the back button on App Open ads immediately.\nextras.putBoolean(VungleConstants.KEY_BACK_BUTTON_IMMEDIATELY_ENABLED, true)\n\nval request =\n AdRequest.Builder()\n .addNetworkExtrasBundle(VungleAdapter::class.java, extras) // Rewarded.\n .addNetworkExtrasBundle(VungleInterstitialAdapter::class.java, extras) // Interstitial.\n // App Open ads use VungleMediationAdapter\n .addNetworkExtrasBundle(VungleMediationAdapter::class.java, extras)\n .build()LiftoffMonetizeMediationSnippets.kt\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.877Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":61,"estimatedTokens":488}}131{"id":"doc-requesting_additional_permissions_web_guides_goo-5b8a1784","source":"documentation","title":"Requesting additional permissions | Web guides | Google for Developers","url":"https://developers.google.com/identity/sign-in/web/incremental-auth","text":"Example:\n```text\nauth2 = gapi.auth2.init({\n client_id: 'CLIENT_ID.apps.googleusercontent.com',\n cookiepolicy: 'single_host_origin', /** Default value **/\n scope: 'profile' }); /** Base scope **/\n```\n\nExample:\n```text\nconst options = new gapi.auth2.SigninOptionsBuilder();\noptions.setScope('email https://www.googleapis.com/auth/drive');\n\ngoogleUser = auth2.currentUser.get();\ngoogleUser.grant(options).then(\n function(success){\n console.log(JSON.stringify({message: \"success\", value: success}));\n },\n function(fail){\n alert(JSON.stringify({message: \"fail\", value: fail}));\n });\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.944Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":24,"estimatedTokens":161}}132{"id":"doc-build_unity_for_android_google_for_developers-c3836ee3","source":"documentation","title":"Build Unity for Android | Google for Developers","url":"https://developers.google.com/admob/unity/android","text":"Example:\n```text\nandroid.jetifier.ignorelist=annotation-experimental-1.4.0.aar\n```\n\nExample:\n```text\n<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<manifest xmlns:android=\"http://schemas.android.com/apk/res/android\"\n package=\"com.google.unity.ads\"\n android:versionName=\"1.0\"\n android:versionCode=\"1\">\n <uses-sdk />\n <application>\n <uses-library android:required=\"false\" android:name=\"org.apache.http.legacy\"/>\n </application>\n</manifest>\n```\n\nExample:\n```devsite-click-to-copy\nplugins {\n id 'com.android.application' version '8.1.1' apply false\n id 'com.android.library' version '8.1.1' apply false\n}\n\ntask clean(type: Delete) {\n delete rootProject.buildDir\n}\n```\n\nExample:\n```devsite-click-to-copy\napply plugin: 'com.android.application'\n\ndependencies {\n implementation project(':unityLibrary')\n}\n\nandroid {\n namespace \"com.google.android.gms.example\"\n compileSdkVersion 35\n buildToolsVersion '35.0.0'\n\n compileOptions {\n sourceCompatibility JavaVersion.VERSION_17\n targetCompatibility JavaVersion.VERSION_17\n }\n\n defaultConfig {\n minSdkVersion 28\n targetSdkVersion 35\n applicationId 'com.google.android.gms.example'\n ndk {\n abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'\n }\n versionCode 1\n versionName '1.0'\n }\n\n aaptOptions {\n noCompress = ['.unity3d', '.ress', '.resource', '.obb', '.bundle', '.unityexp']\n ignoreAssetsPattern = \"!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~\"\n }\n\n lintOptions {\n abortOnError false\n }\n\n buildTypes {\n debug {\n minifyEnabled false\n proguardFiles getDefaultProguardFile('proguard-android.txt')\n signingConfig signingConfigs.debug\n jniDebuggable true\n }\n release {\n minifyEnabled false\n proguardFiles getDefaultProguardFile('proguard-android.txt')\n signingConfig signingConfigs.debug\n }\n }\n\n packagingOptions {\n doNotStrip '*/armeabi-v7a/*.so'\n doNotStrip '*/arm64-v8a/*.so'\n doNotStrip '*/x86/*.so'\n doNotStrip '*/x86_64/*.so'\n jniLibs {\n useLegacyPackaging true\n }\n }\n\n bundle {\n language {\n enableSplit = false\n }\n density {\n enableSplit = false\n }\n abi {\n enableSplit = true\n }\n }\n}\n\napply from: '../unityLibrary/GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'\n```\n\nExample:\n```devsite-click-to-copy\npluginManagement {\n repositories {\n gradlePluginPortal()\n google()\n mavenCentral()\n }\n}\n\ninclude ':launcher', ':unityLibrary'\ninclude 'unityLibrary:GoogleMobileAdsPlugin.androidlib'\n\ndependencyResolutionManagement {\n repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)\n repositories {\n\n google()\n mavenCentral()\n flatDir {\n dirs \"${project(':unityLibrary').projectDir}/libs\"\n }\n }\n}\n```\n\nExample:\n```devsite-click-to-copy\napply plugin: 'com.android.library'\n\n dependencies {\n implementation fileTree(dir: 'libs', include: ['*.jar'])\n // Android Resolver Dependencies Start\n implementation 'androidx.constraintlayout:constraintlayout:2.1.4'\n implementation 'com.google.android.gms:play-services-ads:23.6.0'\n implementation 'com.google.android.ump:user-messaging-platform:3.1.0'\n // Android Resolver Dependencies End\n implementation(name: 'googlemobileads-unity', ext:'aar')\n implementation project('GoogleMobileAdsPlugin.androidlib')\n }\n\n // Android Resolver Exclusions Start\n android {\n packagingOptions {\n exclude ('/lib/armeabi/*' + '*')\n exclude ('/lib/mips/*' + '*')\n exclude ('/lib/mips64/*' + '*')\n exclude ('/lib/x86/*' + '*')\n }\n }\n // Android Resolver Exclusions End\n\n android {\n namespace \"com.unity3d.player\"\n compileSdkVersion 35\n buildToolsVersion '30.0.2'\n\n compileOptions {\n sourceCompatibility JavaVersion.VERSION_17\n targetCompatibility JavaVersion.VERSION_17\n }\n\n defaultConfig {\n minSdkVersion 28\n targetSdkVersion 34\n ndk {\n abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86_64'\n }\n versionCode 1\n versionName '1.0'\n consumerProguardFiles 'proguard-unity.txt'\n }\n\n lintOptions {\n abortOnError false\n }\n\n aaptOptions {\n ignoreAssetsPattern = \"!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~\"\n }\n\n packagingOptions {\n doNotStrip '*/armeabi-v7a/*.so'\n doNotStrip '*/arm64-v8a/*.so'\n doNotStrip '*/x86_64/*.so'\n }\n }\n\n\n apply from: 'GoogleMobileAdsPlugin.androidlib/packaging_options.gradle'\n gradle.projectsEvaluated { apply from: 'GoogleMobileAdsPlugin.androidlib/validate_dependencies.gradle' }\n```\n\nExample:\n```devsite-click-to-copy\napply plugin: 'android-library'\n\ndependencies {\n implementation fileTree(dir: 'bin', include: ['<em>.jar'])\n implementation fileTree(dir: 'libs', include: ['</em>.jar'])\n}\n\nandroid {\n namespace \"com.google.unity.ads\"\n sourceSets {\n main {\n manifest.srcFile 'AndroidManifest.xml'\n //java.srcDirs = ['src']\n res.srcDirs = ['res']\n assets.srcDirs = ['assets']\n jniLibs.srcDirs = ['libs']\n }\n }\n\n compileSdkVersion 34\n buildToolsVersion '30.0.2'\n defaultConfig {\n targetSdkVersion 31\n }\n\n lintOptions {\n abortOnError false\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.951Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":236,"estimatedTokens":1442}}133{"id":"doc-global_settings_unity_google_for_developers-b6609e6f","source":"documentation","title":"Global settings | Unity | Google for Developers","url":"https://developers.google.com/admob/unity/global-settings","text":"Example:\n```text\n// Google Mobile Ads events are raised off the Unity main thread.\n\n// This log is executed off the Unity main thread.\n// Write all time-sensitive code before ExecuteInUpdate().\nDebug.Log(\"Executing off the Unity main thread.\");\n\n// Use ExecuteInUpdate to run code on the main thread, allowing you to\n// interact with Unity UI and GameObjects.\n// Changed to fully-qualified name to resolve CS0103\nGoogleMobileAds.Common.MobileAdsEventExecutor.ExecuteInUpdate(() =>\n{\n // This callback may be delayed on Android until the user returns to the app.\n Debug.Log(\"Executing on the Unity main thread.\");\n\n // Place all code that interacts with Unity UI and GameObjects inside this callback.\n if (_myGameObject != null)\n {\n _myGameObject.SetActive(true);\n }\n});GlobalSettingsSnippets.cs\n```\n\nExample:\n```text\n...\nusing GoogleMobileAds.Api;\n...\npublic class GoogleMobileAdsDemoScript : MonoBehaviour\n{\n public void Start()\n {\n // When true all events raised by GoogleMobileAds will be raised\n // on the Unity main thread. The default value is false.\n MobileAds.RaiseAdEventsOnUnityMainThread = true;\n }\n}\n```\n\nExample:\n```text\n// Set app volume to be half of current device volume.\nMobileAds.SetApplicationVolume(0.5f);\n```\n\nExample:\n```text\n// Set app to be muted.\nMobileAds.SetApplicationMuted(true);\n```\n\nExample:\n```text\n// Enable limited ads\nApplicationPreferences.SetInt(\"gad_has_consent_for_cookies\", 0);\n```\n\nExample:\n```text\n-keep class com.google.** { public *; }\n```\n\nExample:\n```text\n<manifest>\n <application>\n <meta-data\n android:name=\"com.google.android.gms.ads.flag.DISABLE_CRASH_REPORTING\"\n android:value=\"true\" />\n </application>\n</manifest>\n```\n\nExample:\n```text\nvoid Awake() {\n MobileAds.DisableSDKCrashReporting();\n}\n```\n\nExample:\n```text\n// Get the Unity SDK version.\nDebug.Log(\"Unity SDK Version: \" + MobileAds.GetVersion());\n```\n\nExample:\n```text\n// Get the underlying platform SDK version.\nDebug.Log(\"Platform SDK Version: \" + MobileAds.GetPlatformVersion());\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.955Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":94,"estimatedTokens":524}}134{"id":"doc-tokenization_errors-3f629c71","source":"documentation","title":"Tokenization Errors","url":"https://developer.paypal.com/braintree/docs/reference/forward-api/tokenization-errors/","text":"Braintree a PayPal ServiceSDK DocsTokenization errorsSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```json\n{ \n \"error\": \"Invalid amount\", \n \"message\": { \n \"max_amount\": \"0.00\" \n }, \n \"request-uuid\": \"a-unique-identifier-for-the-request\" \n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.168Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":14,"estimatedTokens":106}}135{"id":"doc-settlement-9f9bb22a","source":"documentation","title":"Settlement","url":"https://developer.paypal.com/braintree/docs/reference/general/processor-responses/settlement-responses/","text":"Braintree a PayPal ServiceSDK DocsSettlementSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.179Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":60}}136{"id":"doc-enterprise_third_party_plugins-75b4787b","source":"documentation","title":"Enterprise Third-Party Plugins","url":"https://developer.paypal.com/braintree/docs/reference/general/enterprise-third-party-plugins/","text":"Braintree a PayPal ServiceSDK DocsEnterprise Third-Party PluginsSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.183Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":65}}137{"id":"doc-contribute_to_development_gitlab_docs-2fa041dd","source":"documentation","title":"Contribute to development | GitLab Docs","url":"https://docs.gitlab.com/development/","text":"Contribute to GitLabContribute to GitLab RunnerContribute to GitLab PagesContribute to GitLab DistributionContribute to documentationGitLab Docs /ContributeHelp us learn about your current experience with the documentation. Take the survey.Contribute to developmentLearn how to contribute to the development of the GitLab product.This content is intended for both GitLab team members and members of the wider community.Contribute to GitLabCode contribution guidelines, style guides, and processes.Contribute to GitLab RunnerEnvironment setup and contribution guidelines.Contribute to GitLab PagesConfiguration and contribution guidelines.Contribute to GitLab DistributionPackage methods and components for the GitLab application.Contribute to the GitLab Design SystemResources, components, and design guidelines.Contribute to the GitLab documentationDocumentation style guide and workflows.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:04.227Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":226}}138{"id":"doc-get_started_managing_code_gitlab_docs-21d626b0","source":"documentation","title":"Get started managing code | GitLab Docs","url":"https://docs.gitlab.com/user/get_started/get_started_managing_code/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeGetting startedRepositoriesMerge requestsRemote developmentUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Manage your code /Getting startedHelp us learn about your current experience with the documentation. Take the survey.Get started managing codeGitLab provides tools for the full software development lifecycle, from code creation to delivery.Learn more about creating and managing code in GitLab. The process includes authoring your code, having it reviewed, committing it with version control, and updating it over time.This process is part of a larger a repositoryA project is a centralized location where you collaborate with others, track issues, manage merge requests, and automate CI/CD pipelines, among many other things.Each project contains a repository, where you can store your code, documentation, and other files related to your software development work. Changes made to files in the repository are tracked, so you can view a history.While a repository focuses on version control for source code, a project provides a comprehensive environment for the entire development lifecycle.For more information, see create a repository.Step your codeYou have many options for how and where you write your code.You can use the GitLab UI and develop right in your browser. You have two plain text editor, called the Web Editor, which you can use to edit a single file.A more full-featured editor, called the Web IDE, which you can use to edit multiple files.Prefer to work locally? Use Git to clone the repository to your computer, and develop in the IDE of your choice. Then you can use one of the GitLab editor extensions to assist in interacting with GitLab.Don’t want to use either of the first two options? Launch a remote development environment, and work from the cloud.You can further split your development environment by creating separate workspaces. Workspaces are separate development environments you use to ensure different projects don’t interfere with one another.For more information, a file in the repository from the UIOpen a file in the Web IDECreate a remote development environment with workspacesAvailable editor extensionsFor other help writing code, use Code Suggestions.Step changes and push to GitLabWhen your changes are ready, you should commit them to GitLab, where you can share them with others on your team.To commit your changes, first copy your local computer, in your own branchTo GitLab, on a remote computer, to the default branch.To copy files between branches, you create a merge request. How you do this depends on where you authored the code and the tools you use to create it. But the idea is to create a merge request that takes the contents of your source branch and proposes combining it into the target branch.For more information, Git to create a merge requestUse the UI to create a merge request when you add, edit, or upload a fileStep the code reviewedAfter you create a merge request that proposes changes to the codebase, you can have your proposal reviewed. Code reviews help maintain code quality and consistency. It’s also an opportunity for knowledge sharing among team members.The merge request shows the difference between the proposed changes and the branch you want to merge into.Reviewers can see the changes and leave comments on specific lines of code. Reviewers can also suggest changes directly in the diff.Reviewers can approve the changes or request additional changes before merging. GitLab tracks the review status and prevents merging until necessary approvals are obtained.Your organization might have protection rules that require specific approvals or prevent certain actions. For example, you might need approval from a code owner for files you’re changing, or your merge request might need a certain number of approvals before it can be merged.For more information, a review of your merge requestAdd suggestions to a merge requestMerge request approvalsCode OwnersStep the merge requestBefore your changes can be merged, the merge request usually needs to be approved by other people, and to have a passing CI/CD pipeline. The requirements are custom to your organization, but usually they include code changes adhere to your organization’s guidelines.The commit messages are clear, and link to related issues.Protected branches and other repository protection measures might prevent you from merging directly or require additional steps. If you can’t merge your changes, check with your team about the protection rules in place.Merge conflicts can occur if someone else edits a file after you created your branch, but before you merged it into the target branch. You must resolve any conflicts before you can merge.For more information, conflictsMerge methodsProtect your repositoryStep a repositoryStep your codeStep changes and push to GitLabStep the code reviewedStep the merge request\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:04.238Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1309}}139{"id":"doc-manage_exports_google_vault_google_for_developer-6e492f44","source":"documentation","title":"Manage exports | Google Vault | Google for Developers","url":"https://developers.google.com/workspace/vault/guides/exports","text":"Example:\n```text\npublic Export createMailAccountHeldDataExports(Vault client, String matterId) {\n AccountInfo emailsToSearch = new AccountInfo().setEmails(ImmutableList.of(\"email1\", \"email2\"));\n MailOptions mailQueryOptions = new MailOptions().setExportFormat(\"PST\");\n String queryTerms = \"to:ceo@solarmora.com\";\n Query mailQuery =\n new Query()\n .setCorpus(\"MAIL\")\n .setDataScope(\"HELD_DATA\")\n .setSearchMethod(\"ACCOUNT\")\n .setAccountInfo(emailsToSearch)\n .setTerms(queryTerms)\n .setMailOptions(mailQueryOptions);\n MailExportOptions mailExportOptions =\n new MailExportOptions()\n .setExportFormat(\"MBOX\")\n .showConfidentialModeContent(true);\n Export wantedExport =\n new Export()\n .setMatterId(matterId)\n .setName(\"My first mail accounts export\")\n .setQuery(mailQuery)\n .setExportOptions(new ExportOptions().setMailOptions(mailExportOptions));\n return client.matters().exports().create(matter, wantedExport).execute();\n}\n```\n\nExample:\n```text\ndef create_mail_account_held_data_export(service, matter_id):\n emails_to_search = ['email1', 'email2']\n mail_query_options = {'excludeDrafts': True}\n query_terms = 'to:ceo@solarmora.com'\n mail_query = {\n 'corpus': 'MAIL',\n 'dataScope': 'HELD_DATA',\n 'searchMethod': 'ACCOUNT',\n 'accountInfo': {\n 'emails': emails_to_search\n },\n 'terms': query_terms,\n 'mailOptions': mail_query_options,\n }\n mail_export_options = {\n 'exportFormat': 'MBOX',\n 'showConfidentialModeContent': True\n }\n wanted_export = {\n 'name': 'My first mail accounts export',\n 'query': mail_query,\n 'exportOptions': {\n 'mailOptions': mail_export_options\n }\n}\nreturn service.matters().exports().create(\n matterId=matter_id, body=wanted_export).execute()\n```\n\nExample:\n```text\npublic Export createDriveOuAllDataExport(Vault client, String matterId) {\n OrgUnitInfo ouToSearch = new OrgUnitInfo().setOrgUnitId(\"ou id retrieved from admin sdk\");\n DriveOptions driveQueryOptions = new DriveOptions().setIncludeSharedDrives(true);\n Query driveQuery =\n new Query()\n .setCorpus(\"DRIVE\")\n .setDataScope(\"ALL_DATA\")\n .setSearchMethod(\"ORG_UNIT\")\n .setOrgUnitInfo(ouToSearch)\n .setDriveOptions(driveQueryOptions)\n .setStartTime(\"2017-03-16T00:00:00Z\")\n .setEndTime(\"2017-03-16T00:00:00Z\")\n .setTimeZone(\"Etc/GMT+2\");\n DriveExportOptions driveExportOptions = new DriveExportOptions().setIncludeAccessInfo(false);\n Export wantedExport =\n new Export()\n .setName(\"My first drive ou export\")\n .setQuery(driveQuery)\n .setExportOptions(new ExportOptions().setDriveOptions(driveExportOptions));\n return client.matters().exports().create(matter, wantedExport).execute();\n}\n```\n\nExample:\n```text\ndef create_drive_ou_all_data_export(service, matter_id):\n ou_to_search = 'ou id retrieved from admin sdk'\n drive_query_options = {'includeSharedDrives': True}\n drive_query = {\n 'corpus': 'DRIVE',\n 'dataScope': 'ALL_DATA',\n 'searchMethod': 'ORG_UNIT',\n 'orgUnitInfo': {\n 'org_unit_id': ou_to_search\n },\n 'driveOptions': drive_query_options,\n 'startTime': '2017-03-16T00:00:00Z',\n 'endTime': '2017-09-23T00:00:00Z',\n 'timeZone': 'Etc/GMT+2'\n }\n drive_export_options = {'includeAccessInfo': False}\n wanted_export = {\n 'name': 'My first drive ou export',\n 'query': drive_query,\n 'exportOptions': {\n 'driveOptions': drive_export_options\n }\n }\nreturn service.matters().exports().create(\n matterId=matter_id, body=wanted_export).execute()\n```\n\nExample:\n```text\ndef create_meet_export(service, matter_id, ou_to_search, export_name):\n export = {\n 'name': export_name,\n 'query': {\n 'corpus': 'DRIVE',\n 'dataScope': 'ALL_DATA',\n 'searchMethod': 'ORG_UNIT',\n 'terms': 'title:\"...-...-... \\\\(....-..-.. at ..:.. *\\\\)\"',\n 'orgUnitInfo': {\n 'orgUnitId': 'id:'+ou_to_search\n },\n 'driveOptions': {\n 'includeTeamDrives': True,\n 'includeSharedDrives': True\n },\n 'timeZone': 'Etc/GMT',\n 'method': 'ORG_UNIT'\n },\n 'exportOptions': {\n 'driveOptions': {},\n 'region': 'ANY'\n },\n }\n\n return service.matters().exports().create(\n matterId=matter_id, body=export).execute()\n```\n\nExample:\n```text\ndef create_mail_export_from_saved_query(service, matter_id, saved_query_id, export_name):\n export = {\n 'name': export_name,\n 'exportOptions': {\n 'mailOptions': {\n 'exportFormat': 'PST',\n 'showConfidentialModeContent': True\n },\n 'region': 'ANY'\n }\n }\n\n export['query'] = service.matters().savedQueries().get(\n savedQueryId=saved_query_id, matterId=matter_id).execute()['query']\n return service.matters().exports().create(\n matterId=matter_id, body=export).execute()\n```\n\nExample:\n```text\npublic class exports {\n public ListExportsResponse listExports(Vault client, String matterId) {\n return client.matters().exports().list(matterId).execute();\n}\n```\n\nExample:\n```text\ndef list_exports(service, matter_id):\n return service.matters().exports().list(matterId=matter_id).execute()\n```\n\nExample:\n```text\npublic Export getExportById(Vault client, String matterId, String exportId) {\n return client.matters().exports().get(matterId, exportId).execute();\n}\n```\n\nExample:\n```text\ndef get_export_by_id(service, matter_id, export_id):\n return service.matters().exports().get(\n matterId=matter_id, exportId=export_id).execute()\n```\n\nExample:\n```text\ndef download_exports(service, matter_id):\n\"\"\"Google Cloud storage service is authenticated by running\n`gcloud auth application-default login` and expects a billing enabled project\nin ENV variable `GOOGLE_CLOUD_PROJECT` \"\"\"\ngcpClient = storage.Client()\nmatter_id = os.environ['MATTERID']\n for export in vaultService.matters().exports().list(\n matterId=matter_id).execute()['exports']:\n if 'cloudStorageSink' in export:\n directory = export['name']\n if not os.path.exists(directory):\n os.makedirs(directory)\n print(export['id'])\n for sinkFile in export['cloudStorageSink']['files']:\n filename = '%s/%s' % (directory, sinkFile['objectName'].split('/')[-1])\n objectURI = 'gs://%s/%s' % (sinkFile['bucketName'],\n sinkFile['objectName'])\n print('get %s to %s' % (objectURI, filename))\n gcpClient.download_blob_to_file(objectURI, open(filename, 'wb+'))\n```\n\nExample:\n```text\npublic void deleteExportById(Vault client, String matterId, String exportId) {\n client.matters().exports().delete(matterId, exportId).execute();\n```\n\nExample:\n```text\ndef delete_export_by_id(service, matter_id, export_id):\n return service.matters().exports().delete(\n matterId=matter_id, exportId=export_id).execute()\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:50.998Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":13,"totalLines":228,"estimatedTokens":1746}}140{"id":"doc-mobileads_android_google_for_developers-40277c03","source":"documentation","title":"MobileAds | Android | Google for Developers","url":"https://developers.google.com/admob/android/reference/com/google/android/gms/ads/MobileAds","text":"Example:\n```text\npublic class MobileAds\n```\n\nExample:\n```text\npublic static final String ERROR_DOMAIN = \"com.google.android.gms.ads\"\n```\n\nExample:\n```text\npublic static void disableMediationAdapterInitialization(Context context)\n```\n\nExample:\n```text\npublic static @Nullable InitializationStatus getInitializationStatus()\n```\n\nExample:\n```text\npublic static @NonNull RequestConfiguration getRequestConfiguration()\n```\n\nExample:\n```text\npublic static VersionInfo getVersion()\n```\n\nExample:\n```text\n@RequiresPermission(value = Manifest.permission.INTERNET)public static void initialize(Context context)\n```\n\nExample:\n```text\npublic static void initialize(Context context, OnInitializationCompleteListener listener)\n```\n\nExample:\n```text\npublic static void openAdInspector(Context context, OnAdInspectorClosedListener listener)\n```\n\nExample:\n```text\npublic static void openDebugMenu(Context context, String adUnitId)\n```\n\nExample:\n```text\npublic static boolean putPublisherFirstPartyIdEnabled(boolean enabled)\n```\n\nExample:\n```text\npublic static @Nullable CustomTabsSession registerCustomTabsSession( @NonNull Context context, @NonNull CustomTabsClient client, @NonNull String origin, @Nullable CustomTabsCallback callback)\n```\n\nExample:\n```text\npublic static void registerWebView(@NonNull WebView webview)\n```\n\nExample:\n```text\npublic static void setAppMuted(boolean muted)\n```\n\nExample:\n```text\npublic static void setAppVolume(float volume)\n```\n\nExample:\n```text\npublic static void setRequestConfiguration( @NonNull RequestConfiguration requestConfiguration)\n```\n\nExample:\n```text\npublic static void startPreload( @NonNull Context context, @NonNull List<PreloadConfiguration> preloadConfigurations, @NonNull PreloadCallback preloadCallback)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.356Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":17,"totalLines":86,"estimatedTokens":446}}141{"id":"doc-style_ad_layouts_with_native_templates_flutter_g-f9645a14","source":"documentation","title":"Style ad layouts with native templates | Flutter | Google for Developers","url":"https://developers.google.com/admob/flutter/native/templates","text":"Example:\n```text\nca-app-pub-3940256099942544/2247696110\n```\n\nExample:\n```text\nca-app-pub-3940256099942544/3986624511\n```\n\nExample:\n```text\nclass NativeExampleState extends State<NativeExample> {\n NativeAd? nativeAd;\n bool _nativeAdIsLoaded = false;\n\n // TODO: replace this test ad unit with your own ad unit.\n final String _adUnitId = Platform.isAndroid\n ? 'ca-app-pub-3940256099942544/2247696110'\n : 'ca-app-pub-3940256099942544/3986624511';\n\n /// Loads a native ad.\n void loadAd() {\n _nativeAd = NativeAd(\n adUnitId: _adUnitId,\n listener: NativeAdListener(\n onAdLoaded: (ad) {\n debugPrint('$NativeAd loaded.');\n setState(() {\n _nativeAdIsLoaded = true;\n });\n },\n onAdFailedToLoad: (ad, error) {\n // Dispose the ad here to free resources.\n debugPrint('$NativeAd failed to load: $error');\n ad.dispose();\n },\n ),\n request: const AdRequest(),\n // Styling\n nativeTemplateStyle: NativeTemplateStyle(\n // Required: Choose a template.\n templateType: TemplateType.medium,\n // Optional: Customize the ad's style.\n mainBackgroundColor: Colors.purple,\n cornerRadius: 10.0,\n callToActionTextStyle: NativeTemplateTextStyle(\n textColor: Colors.cyan,\n backgroundColor: Colors.red,\n style: NativeTemplateFontStyle.monospace,\n size: 16.0),\n primaryTextStyle: NativeTemplateTextStyle(\n textColor: Colors.red,\n backgroundColor: Colors.cyan,\n style: NativeTemplateFontStyle.italic,\n size: 16.0),\n secondaryTextStyle: NativeTemplateTextStyle(\n textColor: Colors.green,\n backgroundColor: Colors.black,\n style: NativeTemplateFontStyle.bold,\n size: 16.0),\n tertiaryTextStyle: NativeTemplateTextStyle(\n textColor: Colors.brown,\n backgroundColor: Colors.amber,\n style: NativeTemplateFontStyle.normal,\n size: 16.0)))\n ..load();\n }\n}\n```\n\nExample:\n```text\nclass NativeExampleState extends State<NativeExample> {\n NativeAd? _nativeAd;\n bool _nativeAdIsLoaded = false;\n\n // TODO: replace this test ad unit with your own ad unit.\n final String _adUnitId = Platform.isAndroid\n ? 'ca-app-pub-3940256099942544/2247696110'\n : 'ca-app-pub-3940256099942544/3986624511';\n\n /// Loads a native ad.\n void loadAd() {\n _nativeAd = NativeAd(\n adUnitId: _adUnitId,\n listener: NativeAdListener(\n onAdLoaded: (ad) {\n print('$NativeAd loaded.');\n setState(() {\n _nativeAdIsLoaded = true;\n });\n },\n onAdFailedToLoad: (ad, error) {\n // Dispose the ad here to free resources.\n print('$NativeAd failedToLoad: $error');\n ad.dispose();\n },\n // Called when a click is recorded for a NativeAd.\n onAdClicked: (ad) {},\n // Called when an impression occurs on the ad.\n onAdImpression: (ad) {},\n // Called when an ad removes an overlay that covers the screen.\n onAdClosed: (ad) {},\n // Called when an ad opens an overlay that covers the screen.\n onAdOpened: (ad) {},\n // For iOS only. Called before dismissing a full screen view\n onAdWillDismissScreen: (ad) {},\n // Called when an ad receives revenue value.\n onPaidEvent: (ad, valueMicros, precision, currencyCode) {},\n ),\n request: const AdRequest(),\n // Styling\n nativeTemplateStyle: NativeTemplateStyle(\n // Required: Choose a template.\n templateType: TemplateType.medium,\n // Optional: Customize the ad's style.\n mainBackgroundColor: Colors.purple,\n cornerRadius: 10.0,\n callToActionTextStyle: NativeTemplateTextStyle(\n textColor: Colors.cyan,\n backgroundColor: Colors.red,\n style: NativeTemplateFontStyle.monospace,\n size: 16.0),\n primaryTextStyle: NativeTemplateTextStyle(\n textColor: Colors.red,\n backgroundColor: Colors.cyan,\n style: NativeTemplateFontStyle.italic,\n size: 16.0),\n secondaryTextStyle: NativeTemplateTextStyle(\n textColor: Colors.green,\n backgroundColor: Colors.black,\n style: NativeTemplateFontStyle.bold,\n size: 16.0),\n tertiaryTextStyle: NativeTemplateTextStyle(\n textColor: Colors.brown,\n backgroundColor: Colors.amber,\n style: NativeTemplateFontStyle.normal,\n size: 16.0)))\n ..load();\n }\n}\n```\n\nExample:\n```text\n// Small template\nfinal adContainer = ConstrainedBox(\n constraints: const BoxConstraints(\n minWidth: 320, // minimum recommended width\n minHeight: 90, // minimum recommended height\n maxWidth: 400,\n maxHeight: 200,\n ),\n child: AdWidget(ad: _nativeAd!),\n);\n\n// Medium template\nfinal adContainer = ConstrainedBox(\n constraints: const BoxConstraints(\n minWidth: 320, // minimum recommended width\n minHeight: 320, // minimum recommended height\n maxWidth: 400,\n maxHeight: 400,\n ),\n child: AdWidget(ad: _nativeAd!),\n);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.395Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":170,"estimatedTokens":1385}}142{"id":"doc-push_notifications_in_the_classroom_api_google_c-97450e92","source":"documentation","title":"Push notifications in the Classroom API | Google Classroom | Google for Developers","url":"https://developers.google.com/workspace/classroom/guides/push-notifications","text":"Example:\n```text\n{\n \"collection\": \"courses.students\",\n \"eventType\": \"CREATED\",\n \"resourceId\": {\n \"courseId\": \"12345\",\n \"userId\": \"45678\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.439Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":13,"estimatedTokens":43}}143{"id":"doc-rewarded_ads_c_google_for_developers-882405d0","source":"documentation","title":"Rewarded ads | C++ | Google for Developers","url":"https://developers.google.com/admob/cpp/rewarded","text":"Example:\n```text\n#include \"firebase/gma/rewarded_ad.h\"\n```\n\nExample:\n```text\nfirebase::gma::RewardedAd* rewarded_ad;\n rewarded_ad = new firebase::gma::RewardedAd();\n```\n\nExample:\n```text\n// my_ad_parent is a jobject reference to an Android Activity or\n// a pointer to an iOS UIView.\nfirebase::gma::AdParent ad_parent =\n static_cast<firebase::gma::AdParent>(my_ad_parent);\nfirebase::Future<void> result = rewarded_ad->Initialize(ad_parent);\n```\n\nExample:\n```text\n// Monitor the status of the future in your game loop:\nfirebase::Future<void> result = rewarded_ad->InitializeLastResult();\nif (result.status() == firebase::kFutureStatusComplete) {\n // Initialization completed.\n if(future.error() == firebase::gma::kAdErrorCodeNone) {\n // Initialization successful.\n } else {\n // An error has occurred.\n }\n} else {\n // Initialization on-going.\n}\n```\n\nExample:\n```text\nfirebase::gma::AdRequest ad_request;\nfirebase::Future<firebase::gma::AdResult> load_ad_result;\nload_ad_result = rewarded_ad->LoadAd(rewarded_ad_unit_id, ad_request);\n```\n\nExample:\n```text\nclass ExampleFullScreenContentListener\n : public firebase::gma::FullScreenContentListener {\n\n public:\n ExampleFullScreenContentListener() {}\n\n void OnAdClicked() override {\n // This method is invoked when the user clicks the ad.\n }\n\n void OnAdDismissedFullScreenContent() override {\n // This method is invoked when the ad dismisses full screen content.\n }\n\n void OnAdFailedToShowFullScreenContent(const AdError& error) override {\n // This method is invoked when the ad failed to show full screen content.\n // Details about the error are contained within the AdError parameter.\n }\n\n void OnAdImpression() override {\n // This method is invoked when an impression is recorded for an ad.\n }\n\n void OnAdShowedFullScreenContent() override {\n // This method is invoked when the ad showed its full screen content.\n }\n };\n\n ExampleFullScreenContentListener* example_full_screen_content_listener =\n new ExampleFullScreenContentListener();\n rewarded_ad->SetFullScreenContentListener(example_full_screen_content_listener);\n```\n\nExample:\n```text\n// A simple listener track UserEarnedReward events.\nclass ExampleUserEarnedRewardListener :\n public firebase::gma::UserEarnedRewardListener {\n public:\n ExampleUserEarnedRewardListener() { }\n\n void OnUserEarnedReward(const firebase::gma::AdReward& reward) override {\n // Reward the user!\n }\n};\n\nExampleUserEarnedRewardListener* user_earned_reward_listener =\n new ExampleUserEarnedRewardListener();\nfirebase::Future<void> result = rewarded_ad->Show(user_earned_reward_listener);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.500Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":97,"estimatedTokens":670}}144{"id":"doc-set_a_label_field_on_a_file_google_drive_google_-263ed79f","source":"documentation","title":"Set a label field on a file | Google Drive | Google for Developers","url":"https://developers.google.com/workspace/drive/api/guides/set-label","text":"Example:\n```text\nLabelFieldModification fieldModification = new LabelFieldModification()\n .setFieldId(\"FIELD_ID\")\n .setSetTextValues(ImmutableList.of(\"VALUE\"));\n\nModifyLabelsRequest modifyLabelsRequest = new ModifyLabelsRequest()\n .setLabelModifications(ImmutableList.of(\n new LabelModification()\n .setLabelId(\"LABEL_ID\")\n .setFieldModifications(ImmutableList.of(fieldModification))));\n\nModifyLabelsResponse modifyLabelsResponse = driveService.files()\n .modifyLabels(\"FILE_ID\", modifyLabelsRequest)\n .execute();\n```\n\nExample:\n```text\nfield_modification = {\n 'fieldId': 'FIELD_ID',\n 'setTextValues': ['VALUE']\n}\n\nlabel_modification = {\n 'labelId': 'LABEL_ID',\n 'fieldModifications': [field_modification]\n}\n\nmodified_labels = drive_service.files().modifyLabels(\n fileId=\"FILE_ID\",\n body={'labelModifications': [label_modification]}\n).execute()\n```\n\nExample:\n```text\n/**\n * Set a label with a text field on a Drive file\n * @return{obj} updated label data\n **/\nasync function setLabelTextField() {\n // Get credentials and build service\n // TODO (developer) - Use appropriate auth mechanism for your app\n\n const {GoogleAuth} = require('google-auth-library');\n const {google} = require('googleapis');\n\n const auth = new GoogleAuth({\n scopes: 'https://www.googleapis.com/auth/drive',\n });\n const service = google.drive({version: 'v3', auth});\n const fieldModification = {\n 'fieldId': 'FIELD_ID',\n 'setTextValues': ['VALUE'],\n };\n const labelModification = {\n 'labelId': 'LABEL_ID',\n 'fieldModifications': [fieldModification],\n };\n const labelModificationRequest = {\n 'labelModifications': [labelModification],\n };\n try {\n const updateResponse = await service.files.modifyLabels({\n fileId: 'FILE_ID',\n requestBody: labelModificationRequest,\n });\n return updateResponse;\n } catch (err) {\n // TODO (developer) - Handle error\n throw err;\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.626Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":77,"estimatedTokens":493}}145{"id":"doc-resolve_errors_google_drive_google_for_developer-fd1371bd","source":"documentation","title":"Resolve errors | Google Drive | Google for Developers","url":"https://developers.google.com/workspace/drive/api/guides/handle-errors","text":"Example:\n```text\n{\n \"error\": {\n \"code\": 400,\n \"errors\": [\n {\n \"domain\": \"global\",\n \"location\": \"orderBy\",\n \"locationType\": \"parameter\",\n \"message\": \"Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.\",\n \"reason\": \"badRequest\"\n }\n ],\n \"message\": \"Sorting is not supported for queries with fullText terms. Results are always in descending relevance order.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"illegalKeepForeverModification\",\n \"message\": \"Bad Request. Cannot update a revision to false that is marked as keepForever.\"\n }\n ],\n \"code\": 400,\n \"message\": \"Bad Request. Cannot update a revision to false that is marked as keepForever.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"invalidSharingRequest\",\n \"message\": \"Bad Request. User message: \\\"Sorry, the items were successfully shared but emails could not be sent to email@domain.com.\\\"\"\n }\n ],\n \"code\": 400,\n \"message\": \"Bad Request\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"invalidSharingRequest\",\n \"message\": \"Bad Request. User message: \\\"ACL change not allowed.\\\"\"\n }\n ],\n \"code\": 400,\n \"message\": \"Bad Request\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"authError\",\n \"message\": \"Invalid Credentials\",\n \"locationType\": \"header\",\n \"location\": \"Authorization\",\n }\n ],\n \"code\": 401,\n \"message\": \"Invalid Credentials\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"fileNotDownloadable\",\n \"message\": \"Only files with binary content can be downloaded. Use Export with Docs Editors files.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Only files with binary content can be downloaded. Use Export with Docs Editors files.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"activeItemCreationLimitExceeded\",\n \"message\": \"This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items.\"\n }\n ],\n \"code\": 403,\n \"message\": \"This account has exceeded the creation limit of 500 million items. To create more items, permanently delete some items.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"appNotAuthorizedToFile\",\n \"message\": \"The user has not granted the app {appId} {verb} access to the file {fileId}.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The user has not granted the app {appId} {verb} access to the file {fileId}.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"cannotModifyInheritedTeamDrivePermission\",\n \"message\": \"Cannot update or delete an inherited permission on a shared drive item.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Cannot update or delete an inherited permission on a shared drive item.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"usageLimits\",\n \"reason\": \"dailyLimitExceeded\",\n \"message\": \"Daily Limit Exceeded\"\n }\n ],\n \"code\": 403,\n \"message\": \"Daily Limit Exceeded\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"domainPolicy\",\n \"message\": \"The domain administrators have disabled Drive apps.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The domain administrators have disabled Drive apps.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"download_restricted_for_revision\",\n \"message\": \"This revision cannot be downloaded by the authenticated user.\"\n }\n ],\n \"code\": 403,\n \"message\": \"This revision cannot be downloaded by the authenticated user.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"fileNotExportable\",\n \"message\": \"Google Vids does not support files.export. Use files.download with Vids files.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Google Vids does not support files.export. Use files.download with Vids files.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"fileOwnerNotMemberOfTeamDrive\",\n \"message\": \"Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Cannot move a file into a shared drive as a writer when the owner of the file is not a member of that shared drive.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"fileWriterTeamDriveMoveInDisabled\",\n \"message\": \"The domain administrator has not allowed writers to move items into a shared drive.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The domain administrator has not allowed writers to move items into a shared drive.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"insufficientFilePermissions\",\n \"message\": \"The user does not have sufficient permissions for file {fileId}.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The user does not have sufficient permissions for file {fileId}.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"myDriveHierarchyDepthLimitExceeded\",\n \"message\": \"Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/workspace/drive/api/guides/handle-errors#nested-folder-levels.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Your My Drive can't contain more than 100 levels of folders. For details, see https://developers.google.com/workspace/drive/api/guides/handle-errors#nested-folder-levels.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"numChildrenInNonRootLimitExceeded\",\n \"message\": \"The limit for this folder's number of children (files and folders) has been exceeded.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The limit for this folder's number of children (files and folders) has been exceeded.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"usageLimits\",\n \"message\": \"Rate Limit Exceeded\",\n \"reason\": \"rateLimitExceeded\",\n }\n ],\n \"code\": 403,\n \"message\": \"Rate Limit Exceeded\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"message\": \"Rate limit exceeded. User message: \\\"These item(s) could not be shared because a rate limit was exceeded: filename\",\n \"reason\": \"sharingRateLimitExceeded\",\n }\n ],\n \"code\": 403,\n \"message\": \"Rate Limit Exceeded\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"message\": \"The user's Drive storage quota has been exceeded.\",\n \"reason\": \"storageQuotaExceeded\",\n }\n ],\n \"code\": 403,\n \"message\": \"The user's Drive storage quota has been exceeded.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"teamDriveFileLimitExceeded\",\n \"message\": \"The file limit for this shared drive has been exceeded.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The file limit for this shared drive has been exceeded.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"teamDriveHierarchyTooDeep\",\n \"message\": \"The shared drive hierarchy depth will exceed the limit.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The shared drive hierarchy depth will exceed the limit.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"teamDriveMembershipRequired\",\n \"message\": \"The attempted action requires shared drive membership.\"\n }\n ],\n \"code\": 403,\n \"message\": \"The attempted action requires shared drive membership.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"teamDrivesFolderMoveInNotSupported\",\n \"message\": \"Moving folders into shared drives is not supported.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Moving folders into shared drives is not supported.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"teamDrivesParentLimit\",\n \"message\": \"A shared drive item must have exactly one parent.\"\n }\n ],\n \"code\": 403,\n \"message\": \"A shared drive item must have exactly one parent.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"usageLimits\",\n \"reason\": \"UrlLeaseLimitExceeded\",\n \"message\": \"Too many pending uploads for this snapshot. Please finish or cancel some before creating more.\"\n }\n ],\n \"code\": 403,\n \"message\": \"Too many pending uploads for this snapshot. Please finish or cancel some before creating more.\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"usageLimits\",\n \"reason\": \"userRateLimitExceeded\",\n \"message\": \"User Rate Limit Exceeded\"\n }\n ],\n \"code\": 403,\n \"message\": \"User Rate Limit Exceeded\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"global\",\n \"reason\": \"notFound\",\n \"message\": \"File not found {fileId}\"\n }\n ],\n \"code\": 404,\n \"message\": \"File not found: {fileId}\"\n }\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"errors\": [\n {\n \"domain\": \"usageLimits\",\n \"reason\": \"rateLimitExceeded\",\n \"message\": \"Rate Limit Exceeded\"\n }\n ],\n \"code\": 429,\n \"message\": \"Rate Limit Exceeded\"s\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.635Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":30,"totalLines":515,"estimatedTokens":2537}}146{"id":"doc-enable_pay_later_messaging_on_magento_2_paypal_d-4702196c","source":"documentation","title":"Enable Pay Later messaging on Magento 2 | PayPal Developer","url":"https://developer.paypal.com/v5/pay-later/magento-2/gb/","text":"Copy for LLMView as MarkdownEnable Pay Later messaging on Magento 2Last 5, 2026DOCSCURRENTCountry or regionUnited KingdomAustraliaCanadaFranceGermanyItalySpainUnited StatesUnited KingdomCountry or regionPromote PayPal Pay Later products using messaging and buttons on your Magento 2 store using either the Gene Commerce, IWD, or Magento PayPal Express Checkout plugins. PayPal offers short-term, interest-free payments that buyers can use to buy now and pay later. You get paid up-front. IWD If you are a merchant using the IWD plugin, visit here. Gene Commerce If you are a merchant using the Gene Commerce plugin, visit here. Magento PayPal Express Checkout If you are a merchant using the Magento PayPal Express Checkout plugin, visit here. Return to Commerce PlatformsOn this pageOn this pageIWDGene CommerceMagento PayPal Express Checkout\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.354Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":215}}147{"id":"doc-best_practices-9a5b4193","source":"documentation","title":"Best Practices","url":"https://developer.paypal.com/braintree/docs/reference/general/best-practices/node/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```html\n<form method=\"POST\" action=\"...\" autocomplete=\"off\">\n```\n\nExample:\n```javascript\nresult.transaction.processorResponseCode;\n// \"2001\"\n\nresult.transaction.processorResponseText; // \"Insufficient Funds\"\n```\n\nExample:\n```console\nnpm ls braintree\n```\n\nExample:\n```console\nnpm install --save braintree\n```\n\nExample:\n```console\nnpm update braintree\n```\n\nExample:\n```javascript\nconst gateway = new braintree.BraintreeGateway({\n environment: braintree.Environment.Sandbox,\n merchantId: \"useYourMerchantId\",\n publicKey: \"useYourPublicKey\",\n privateKey: \"useYourPrivateKey\"\n});\n\ngateway.config.timeout = 10000;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:44.364Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":43,"estimatedTokens":214}}148{"id":"doc-get_started_with_gitlab_runner_gitlab_docs-18d84127","source":"documentation","title":"Get started with GitLab Runner | GitLab Docs","url":"https://docs.gitlab.com/user/get_started/get_started_runner/","text":"Getting startedConfigure GitLabConfigure GitLab DuoUpdate your settingsEnable features behind feature flagsMaintain GitLabMonitor GitLabSecure GitLabAdminister usersAdminister GitLab DedicatedAdminister GitLab RunnerGetting , register, and run your own project runner creation and registrationCreate and manage runnersRegister a runnerRunner executorsConfigure runnersAutoscale configurationMonitor runner performanceRunner fleet configuration and best practicesGitLab Docs /Administer /Administer GitLab Runner /Getting startedHelp us learn about your current experience with the documentation. Take the survey.Get started with GitLab RunnerGitLab Runner administration encompasses the complete lifecycle of managing your CI/CD job execution and registering runnersConfiguring executors for specific workloadsScaling capacity to match organizational growthThe process of administering runners is part of a larger manage runner access through scopes and tags, monitor performance, and maintain the runner fleet.Step runnersInstall GitLab Runner to create the application that executes CI/CD jobs.Installation involves downloading and setting up GitLab Runner on your target infrastructure. The installation process varies depending on the target operating system. GitLab provides binaries and installation instructions for Linux, Windows, macOS, and z/OS. Choose your installation method based on your platform and requirements.For more information, see install GitLab Runner.Step runnersRegister your runners to establish authenticated communication between your GitLab instance and the machine where GitLab Runner is installed. Registration connects individual runners to your GitLab instance using authentication tokens. During registration, you specify the runner’s scope, executor type, and other configuration parameters that determine how the runner operates.Before you register a runner, you should determine if you want to limit it to a specific GitLab group or project. You can configure self-managed runners with different access scopes during registration to determine which projects they’re available to all projects on your GitLab instanceGroup to all projects in a specific group and its subgroupsProject only to a specific projectWhen you register a runner, add tags to it to route jobs to appropriate runners. Assign meaningful tags and reference them in your .gitlab-ci.yml files to ensure jobs run on runners with the required capabilities.When a CI/CD job runs, it knows which runner to use by looking at the assigned tags. Tags are the only way to filter the list of available runners for a job.For more information, a runnerMigrate to the new runner registration workflowInstance runnersGroup runnersProject runnersTagsStep executorsGitLab Runner executors are the different environments and methods that GitLab Runner can use to execute CI/CD jobs. They determine how and where your pipeline jobs actually run. Proper configuration ensures jobs run in appropriate environments with correct security boundaries.When you register a runner, you must choose an executor. GitLab Runner uses an executor system to determine where and how jobs run. An executor determines the environment each job runs in. Select executors that match your infrastructure and job requirements.For you want your CI/CD job to run PowerShell commands, you might install GitLab Runner on a Windows server and then register a runner that uses the shell executor.If you want your CI/CD job to run commands in a custom Docker container, you might install GitLab Runner on a Linux server and register a runner that uses the Docker executor.These examples are only a couple of possible configurations. You can install GitLab Runner on a virtual machine and have it use another virtual machine as an executor.For more information, see executors.Step runners and start running jobsYou can configure GitLab Runners by editing the config.toml file, which is automatically generated when you install and register a runner. In this file you can edit settings for a specific runner, or for all runners. Configure it to set concurrency limits, logging levels, cache settings, CPU limits, and executor-specific parameters. Use consistent configurations across your runner fleet.After a runner is configured and available for your project, your CI/CD jobs can use the runner.Runners usually process jobs on the same machine where you installed GitLab Runner. However, you can also have a runner process jobs in a container, in a Kubernetes cluster, or in auto-scaled instances in the cloud.For more information, GitLab RunnersCI/CD jobsStep to configure, scale, and optimize your runnersAdvanced runner features improve job execution efficiency and provide specialized capabilities for complex CI/CD workflows. These optimizations reduce job runtime and enhance the developer experience through autoscaling, performance monitoring, fleet management, and specialized configurations.Autoscaling adjusts runner capacity automatically based on job demand, while performance optimization ensures efficient resource utilization. These capabilities help you handle variable workloads while controlling infrastructure costs.Fleet management provides centralized control and monitoring for multiple runners, enabling enterprise-scale runner deployments. Fleet scaling involves coordinating capacity across multiple runners and implementing operational best practices.Use built-in Prometheus metrics to help you monitor runner health and performance. You can track key metrics like active job count, CPU utilization, memory usage, job success rates, and queue lengths to ensure your runners operate efficiently.For more information, configurationFleet scalingRunner fleet configuration and best practicesMonitor runner performanceRunner fleet dashboardLong pollingDocker-in-Docker configurationGitLab Runner Infrastructure Toolkit (GRIT)Step runnersStep runnersStep executorsStep runners and start running jobsStep to configure, scale, and optimize your runners\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:04.330Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1511}}149{"id":"doc-cost_optimization_openai_api-bdf3d5e4","source":"documentation","title":"Cost optimization | OpenAI API","url":"https://developers.openai.com/api/docs/guides/cost-optimization","text":"For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.\n\nChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases Resources ChatGPT Plugins Extend ChatGPT and Codex Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and measure ads in ChatGPT Resources Showcase Demo apps to get inspired Blog Learnings and experiences from developers Cookbook Notebook examples for building with OpenAI models Learn Docs, videos, and demo apps for building with OpenAI Community Programs, meetups, and support for builders Start searching API Dashboard Try ChatGPT\n\nOverview Models Agents Tools Voice & Audio Production API reference\n\nSearch the API docs Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching\n\nPrimary navigation API Codex ChatGPT Docs Use cases Resources Resources Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching Overview Models Agents Tools Voice & Audio Production API reference OverviewModelsAgentsToolsVoice & AudioProductionAPI referenceDocs sectionProduction Home Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Model catalog Choose a model Pricing Model selection Text and code Text generation Code generation Structured output Prompting Overview Prompt engineering Citation formatting Migration guide Prompt generation Frontend prompting Reasoning Reasoning models Reasoning best practices Images and video Images and vision Image generation Video generation Realtime and audio Audio and speech Overview Voice agents Specialized models Deep research Embeddings Moderation Overview Agents SDK Quickstart Agent definitions Models and providers Running agents Sandbox agents Orchestration Guardrails Results and state Integrations and observability Evaluate agent workflows ChatKit Overview Customize Widgets Actions Advanced integrations Overview Function calling Search and retrieval Web search File search Retrieval Connect tools and data MCP and Connectors Secure MCP Tunnel Build tool workflows Skills Tool search Programmatic tool calling Computer and code Shell Computer use Apply Patch Local shell Code interpreter Media Image generation Overview Get started Voice agents Live translation Realtime prompting guide Audio Audio and speech Transcription File transcription Realtime transcription Speech generation Connection methods WebRTC WebSocket SIP Sessions and operations Managing conversations Voice activity detection Realtime with tools Webhooks and server-side controls Managing costs Go live Production best practices Deployment checklist Performance and quality Latency optimization Predicted Outputs Fast mode Accuracy optimization Cost and throughput Cost optimization Prompt caching Batch Flex processing Safety and governance Safety best practices Red teaming Safety checks Cybersecurity checks Under 18 API Guidance Content provenance Your data Permissions Infrastructure and access Terraform provider Overview Projects and access Service accounts Rate limits and spend Model, tool, and data controls Import and reconciliation Private Link IP allowlist Workload identity federation X.509 certificates (beta) Kubernetes AWS Microsoft Azure Google Cloud Oracle Cloud Infrastructure GitHub Actions SPIFFE IP egress ranges Amazon Bedrock Operations Rate limits Spend limits Admin APIs Error codes Docs Use cases DocsUse casesDocs sectionDocs Plugins Workspace Agents Commerce Ads PluginsWorkspace AgentsCommerceAdsDocs sectionSelect... Home Quickstart Core concepts Plugin architecture Skills MCP server Plan Brainstorm use cases Define tools Build Build an MCP server Add UI to your MCP server (optional) Authenticate users Build skills Package your plugin Examples Test and publish Connect and test your plugin Submit and publish Submission error reference Conversion specs Restaurant reservation spec Get Quote spec Product checkout spec Guides UI guidelines Optimize Metadata Submit a Claude Code plugin Security & Privacy Troubleshooting Resources Changelog Plugin guidelines MCP server review requirements Plugin UI reference Checkout API reference Home Get started Trigger workspace agent runs Authenticate with Workspace Agent access tokens Home Guides Get started Best practices File Upload Overview Products API Overview Feeds Products Promotions Ads Overview Measurement Measurement Pixel Multiple Pixels (Advanced) Image Tag Conversions API Supported Events Advertiser API Overview API Partner Setup Quickstart Bulk API Product Feeds Delta Feeds API Campaign Targeting Conversion-Optimized Campaigns API Reference Authentication Ad Account Campaigns Ad Groups Ads Insights Files Conversion Setup Overview Features Configuration Developers Security Administration Use Cases Resources OverviewFeaturesConfigurationDevelopersSecurityAdministrationUse CasesResourcesDocs sectionOverview Home Get started Quickstart Use ChatGPT Get started with Work Import from another agent Foundations Prompting Personalize ChatGPT Skills & Plugins Permissions Explore What's new Models Pricing Glossary Available on ChatGPT desktop app Remote ChatGPT on the web Codex CLI Codex IDE extension Codex cloud Releases Changelog Feature Maturity Open Source Overview Workflows Projects and chats Sites Visualizations Scheduled tasks Long-running work Notifications Pets Codex Micro Capabilities Browser Computer use Voice Plugins Web search Image generation Image inputs Appshots Chrome extension Work with files Reference Commands Slash commands Settings Troubleshooting Overview Customization Overview Memories Computer History Config file Config Basics Advanced Config Config Reference Environment Variables Sample Config Agent configuration AGENTS.md Subagents Speed Rules Extend ChatGPT and Codex Record & Replay MCP Linux Desktop app Windows Desktop app Windows sandbox WSL Overview Development workflows Code review Integrated terminal Extend and automate Build skills Build plugins Hooks Environments Modes Local environments Cloud environment Git worktrees Build with Codex Codex SDK App Server MCP Server GitHub Action Non-interactive mode Third-party integrations GitHub Slack Linear Reference CLI customization Developer commands Developer settings Overview Permissions Profiles Sandboxing Auto-review Agent approvals & security Internet access Codex Security Overview Codex Security plugin Quickstart Run a security scan Run a deep scan Review code changes Use the Security workbench Triage a backlog Fix findings Propose security hardening Write vulnerability reports Export and track findings Changelog Codex Security CLI Quickstart Run bulk scans Run scans in CI Reference FAQ TypeScript SDK Codex Security cloud Setup Security Review Improving the threat model FAQ Cyber safety Models & Trusted Access Recommended configuration Overview Getting started Admin rollout guide ChatGPT Work Overview ChatGPT Work admin FAQ Identity and authentication Authentication overview Personal Access Tokens Service accounts Workspace access, policy, and models Groups and provisioning Roles and workspace permissions GPTs and Sharing Managed configuration Prisma AIRS HIPAA configuration Workspace model availability Plugin and connector controls Plugin controls Skill controls Usage, governance, and compliance Governance Workspace analytics Analytics API Compliance API and audit events Deployment and model providers Manage app updates Windows app deployment Remote connections Amazon Bedrock Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Showcase Blog Cookbook Learn Community ShowcaseBlogCookbookLearnCommunityDocs sectionSelect... All posts Recent Custom Code Review rules for Codex Mastering remote engineering work from your phone Making private MCP servers reachable without making them public How Perplexity Brought Voice Search to Millions Using the Realtime API Designing delightful frontends with GPT-5.4 Topics General API Apps SDK Audio Codex Home Topics Agents Evals Multimodal Text Guardrails Optimization ChatGPT Codex gpt-oss Contribute Cookbook on GitHub Home OpenAI Developers plugin Docs MCP Categories Demo apps Videos Topics Agents Audio & Voice Computer Use Codex Evals gpt-oss Fine-tuning Image generation Scaling Tools Video generation Community Programs Codex Ambassadors Codex for Students Codex for Open Source OpenAI for Startups Events Meetups Spaces Developer Forum Discord Reddit X API Dashboard Try ChatGPT\n\nGo live Production best practices Deployment checklist Performance and quality Latency optimization Predicted Outputs Fast mode Accuracy optimization Cost and throughput Cost optimization Prompt caching Batch Flex processing Safety and governance Safety best practices Red teaming Safety checks Cybersecurity checks Under 18 API Guidance Content provenance Your data Permissions Infrastructure and access Terraform provider Overview Projects and access Service accounts Rate limits and spend Model, tool, and data controls Import and reconciliation Private Link IP allowlist Workload identity federation X.509 certificates (beta) Kubernetes AWS Microsoft Azure Google Cloud Oracle Cloud Infrastructure GitHub Actions SPIFFE IP egress ranges Amazon Bedrock Operations Rate limits Spend limits Admin APIs Error codes Copy Page Cost optimization Improve your efficiency and reduce costs. Copy Page There are several ways to reduce costs when using OpenAI models. Cost and latency are typically interconnected; reducing tokens and requests generally leads to faster processing. OpenAI’s Batch API and flex processing are additional ways to lower costs. Cost and latency To reduce latency and cost, consider the following the number of necessary requests to complete tasks. Minimize the number of input tokens and optimize for shorter model outputs. Select a smaller models that balance reduced costs and latency with maintained accuracy. To dive deeper into these, please refer to our guide on latency optimization. Batch API Process jobs asynchronously. The Batch API offers a straightforward set of endpoints that allow you to collect a set of requests into a single file, kick off a batch processing job to execute these requests, query for the status of that batch while the underlying requests execute, and eventually retrieve the collected results when the batch is complete. Get started with the Batch API → Flex processing Get significantly lower costs for Chat Completions or Responses requests in exchange for slower response times and occasional resource unavailability. Ieal for non-production or lower-priority tasks such as model evaluations, data enrichment, or asynchronous workloads. Get started with flex processing → Next Prompt caching\n\nAsk AI Docs agent Loading docs agent...\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:58.075Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":0,"totalLines":15,"estimatedTokens":2969}}150{"id":"doc-pseudo_random_number_generation_jax_documentatio-43fcc879","source":"documentation","title":"Pseudo-Random Number Generation — JAX documentation","url":"https://docs.jax.dev/en/latest/pallas/tpu/prng.html","text":"Example:\n```text\ndef body(key_ref, o_ref):\n key = key_ref[...]\n o_ref[...] = jax_random.uniform(\n key, shape=o_ref[...].shape, minval=0.0, maxval=1.0\n )\n\nthreefry_key = jax_random.key(0, impl=\"threefry2x32\")\n\n# We generate a threefry key outside of the kernel and pass it in via VMEM.\nresult = pl.pallas_call(\n body,\n in_specs=[pl.BlockSpec(memory_space=pltpu.VMEM)],\n out_shape=jax.ShapeDtypeStruct((256, 256), jnp.float32)\n)(threefry_key)\n```\n\nExample:\n```text\nfrom jax.experimental.pallas import tpu as pltpu\n\ndef kernel_body(o_ref):\n pltpu.prng_seed(0)\n o_ref[...] = pltpu.stateful_uniform(shape=o_ref.shape, minval=0.0, maxval=1.0)\n\npl.pallas_call(kernel_body,\n out_shape=jax.ShapeDtypeStruct((256, 256), jnp.float32))\n```\n\nExample:\n```text\ndef body(key_ref, o_ref):\n o_ref[...] = jax.random.uniform(\n key_ref[...], shape=o_ref[...].shape\n )\n\nrbg_key = jax_random.key(0, impl=\"threefry2x32\")\nkey = pltpu.to_pallas_key(rbg_key)\no_shape = jax.ShapeDtypeStruct((8, 128), dtype)\nresult = pl.pallas_call(\n body,\n in_specs=[pl.BlockSpec(memory_space=pltpu.SMEM)],\n out_shape=o_shape,\n)(key)\n```\n\nExample:\n```text\npltpu.sample_block(\n sampler_function, # A JAX random function, such as `jax.random.uniform`.\n global_key, # A global key shared across all blocks.\n block_size, # The local block size to generate.\n tile_size, # The tile size.\n total_size, # The total shape of the generated array across all blocks.\n block_index, # The block index into total_size. Usually this is the current program instance.\n **sampler_kwargs # Keyword arguments to sampler_function\n)\n```\n\nExample:\n```text\ndef make_kernel_body(index_map):\n def body(key_ref, o_ref):\n key = key_ref[...]\n samples = pltpu.sample_block(\n jax.random.uniform,\n key,\n block_size=o_ref[...].shape,\n tile_size=(16, 128),\n total_size=(64, 512),\n block_index=index_map(pl.program_id(0), pl.program_id(1)),\n minval=0.0,\n maxval=1.0)\n o_ref[...] = samples\n return body\n\nglobal_key = pltpu.to_pallas_key(jax_random.key(0))\no_shape = jnp.ones((64, 512), dtype=jnp.float32)\nkey_spec = pl.BlockSpec(memory_space=pltpu.SMEM)\nout_spec = pl.BlockSpec((16, 128), lambda i, j: (i, j))\nresult_16x128 = pl.pallas_call(\n make_kernel_body(index_map=lambda i, j: (i, j)),\n out_shape=o_shape,\n in_specs=[key_spec],\n out_specs=out_spec,\n grid=(4, 4),\n)(global_key)\n\nout_spec = pl.BlockSpec((32, 256), lambda i, j: (j, i))\nresult_32x256_transposed = pl.pallas_call(\n make_kernel_body(index_map=lambda i, j: (j, i)),\n in_specs=[key_spec],\n out_shape=o_shape,\n out_specs=out_spec,\n grid=(2, 2),\n)(global_key)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:14.722Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":100,"estimatedTokens":680}}151{"id":"doc-jax_example_libraries_optimizers_module_jax_docu-1b8d6c58","source":"documentation","title":"jax.example_libraries.optimizers module — JAX documentation","url":"https://docs.jax.dev/en/latest/jax.example_libraries.optimizers.html","text":"Example:\n```text\ninit_fun(params)\n\nArgs:\n params: pytree representing the initial parameters.\n\nReturns:\n A pytree representing the initial optimizer state, which includes the\n initial parameters and may also include auxiliary values like initial\n momentum. The optimizer state pytree structure generally differs from that\n of `params`.\n```\n\nExample:\n```text\nupdate_fun(step, grads, opt_state)\n\nArgs:\n step: integer representing the step index.\n grads: a pytree with the same structure as `get_params(opt_state)`\n representing the gradients to be used in updating the optimizer state.\n opt_state: a pytree representing the optimizer state to be updated.\n\nReturns:\n A pytree with the same structure as the `opt_state` argument representing\n the updated optimizer state.\n```\n\nExample:\n```text\nget_params(opt_state)\n\nArgs:\n opt_state: pytree representing an optimizer state.\n\nReturns:\n A pytree representing the parameters extracted from `opt_state`, such that\n the invariant `params == get_params(init_fun(params))` holds true.\n```\n\nExample:\n```text\nopt_init, opt_update, get_params = optimizers.sgd(learning_rate)\nopt_state = opt_init(params)\n\ndef step(step, opt_state):\n value, grads = jax.value_and_grad(loss_fn)(get_params(opt_state))\n opt_state = opt_update(step, grads, opt_state)\n return value, opt_state\n\nfor i in range(num_steps):\n value, opt_state = step(i, opt_state)\n```\n\nExample:\n```text\ninit_fun :: ndarray -> OptStatePytree ndarray\nupdate_fun :: OptStatePytree ndarray -> OptStatePytree ndarray\nget_params :: OptStatePytree ndarray -> ndarray\n```\n\nExample:\n```text\ninit_fun :: ParameterPytree ndarray -> OptimizerState\nupdate_fun :: OptimizerState -> OptimizerState\nget_params :: OptimizerState -> ParameterPytree ndarray\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:14.803Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":70,"estimatedTokens":443}}152{"id":"doc-transfer_guard_jax_documentation-93c3e275","source":"documentation","title":"Transfer guard — JAX documentation","url":"https://docs.jax.dev/en/latest/transfer_guard.html","text":"Example:\n```text\n>>> jax.config.update(\"jax_transfer_guard\", \"allow\") # This is default.\n>>>\n>>> x = jnp.array(1)\n>>> y = jnp.array(2)\n>>> z = jnp.array(3)\n>>>\n>>> print(\"x\", x) # All transfers are allowed.\nx 1\n>>> with jax.transfer_guard(\"disallow\"):\n... print(\"x\", x) # x has already been fetched into the host.\n... print(\"y\", jax.device_get(y)) # Explicit transfers are allowed.\n... try:\n... print(\"z\", z) # Implicit transfers are disallowed.\n... assert False, \"This line is expected to be unreachable.\"\n... except:\n... print(\"z could not be fetched\") \nx 1\ny 2\nz could not be fetched\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:14.809Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":24,"estimatedTokens":158}}153{"id":"doc-jax_internals_primitives_jax_documentation-07b5295b","source":"documentation","title":"JAX Internals: primitives — JAX documentation","url":"https://docs.jax.dev/en/latest/jax-primitives.html","text":"Example:\n```text\nfrom jax._src.lax import lax\nfrom jax._src import api\n\ndef multiply_add_lax(x, y, z):\n \"\"\"Implementation of multiply-add using the `jax.lax` primitives.\"\"\"\n return lax.add(lax.mul(x, y), z)\n\n\ndef square_add_lax(a, b):\n \"\"\"A square-add function using the newly defined multiply-add.\"\"\"\n return multiply_add_lax(a, a, b)\n\nprint(\"square_add_lax = \", square_add_lax(2., 10.))\n# Differentiate w.r.t. the first argument\nprint(\"grad(square_add_lax) = \", api.grad(square_add_lax, argnums=0)(2.0, 10.))\n```\n\nExample:\n```text\nsquare_add_lax = 14.0\ngrad(square_add_lax) = 4.0\n```\n\nExample:\n```text\n#@title Helper functions (execute this cell)\nimport functools\nimport traceback\n\n_indentation = 0\ndef _trace(msg=None):\n \"\"\"Print a message at current indentation.\"\"\"\n if msg is not None:\n print(\" \" * _indentation + msg)\n\ndef _trace_indent(msg=None):\n \"\"\"Print a message and then indent the rest.\"\"\"\n global _indentation\n _trace(msg)\n _indentation = 1 + _indentation\n\ndef _trace_unindent(msg=None):\n \"\"\"Unindent then print a message.\"\"\"\n global _indentation\n _indentation = _indentation - 1\n _trace(msg)\n\ndef trace(name):\n \"\"\"A decorator for functions to trace arguments and results.\"\"\"\n\n def trace_func(func):\n def pp(v):\n \"\"\"Print certain values more succinctly\"\"\"\n vtype = str(type(v))\n if \"jax._src.xla_bridge._JaxComputationBuilder\" in vtype:\n return \"<JaxComputationBuilder>\"\n elif \"jaxlib._jax_.XlaOp\" in vtype:\n return \"<XlaOp at 0x{:x}>\".format(id(v))\n elif (\"partial_eval.JaxprTracer\" in vtype or\n \"batching.BatchTracer\" in vtype or\n \"ad.JVPTracer\" in vtype):\n return \"Traced<{}>\".format(v.aval)\n elif isinstance(v, tuple):\n return \"({})\".format(pp_values(v))\n else:\n return str(v)\n def pp_values(args):\n return \", \".join([pp(arg) for arg in args])\n\n @functools.wraps(func)\n def func_wrapper(*args):\n _trace_indent(\"call {}({})\".format(name, pp_values(args)))\n res = func(*args)\n _trace_unindent(\"|<- {} = {}\".format(name, pp(res)))\n return res\n\n return func_wrapper\n\n return trace_func\n\nclass expectNotImplementedError(object):\n \"\"\"Context manager to check for NotImplementedError.\"\"\"\n def __enter__(self): pass\n def __exit__(self, type, value, tb):\n global _indentation\n _indentation = 0\n if type is NotImplementedError:\n print(\"\\nFound expected exception:\")\n traceback.print_exc(limit=3)\n return True\n elif type is None: # No exception\n assert False, \"Expected NotImplementedError\"\n else:\n return False\n```\n\nExample:\n```text\nimport jax.numpy as jnp\nimport numpy as np\n\n@trace(\"multiply_add_numpy\")\ndef multiply_add_numpy(x, y, z):\n return jnp.add(jnp.multiply(x, y), z)\n\n@trace(\"square_add_numpy\")\ndef square_add_numpy(a, b):\n return multiply_add_numpy(a, a, b)\n\nprint(\"\\nNormal evaluation:\")\nprint(\"square_add_numpy = \", square_add_numpy(2., 10.))\nprint(\"\\nGradient evaluation:\")\nprint(\"grad(square_add_numpy) = \", api.grad(square_add_numpy)(2.0, 10.))\n```\n\nExample:\n```text\nNormal evaluation:\ncall square_add_numpy(2.0, 10.0)\n call multiply_add_numpy(2.0, 2.0, 10.0)\n |<- multiply_add_numpy = 14.0\n|<- square_add_numpy = 14.0\nsquare_add_numpy = 14.0\n\nGradient evaluation:\ncall square_add_numpy(GradTracer(primal=2.0, typeof(tangent)=f32[]), 10.0)\n call multiply_add_numpy(GradTracer(primal=2.0, typeof(tangent)=f32[]), GradTracer(primal=2.0, typeof(tangent)=f32[]), 10.0)\n |<- multiply_add_numpy = GradTracer(primal=14.0, typeof(tangent)=f32[])\n|<- square_add_numpy = GradTracer(primal=14.0, typeof(tangent)=f32[])\ngrad(square_add_numpy) = 4.0\n```\n\nExample:\n```text\nfrom jax.extend import core\n\nmultiply_add_p = core.Primitive(\"multiply_add\") # Create the primitive\n\n@trace(\"multiply_add_prim\")\ndef multiply_add_prim(x, y, z):\n \"\"\"The JAX-traceable way to use the JAX primitive.\n\n Note that the traced arguments must be passed as positional arguments\n to `bind`.\n \"\"\"\n return multiply_add_p.bind(x, y, z)\n\n@trace(\"square_add_prim\")\ndef square_add_prim(a, b):\n \"\"\"A square-add function implemented using the new JAX-primitive.\"\"\"\n return multiply_add_prim(a, a, b)\n```\n\nExample:\n```text\nwith expectNotImplementedError():\n square_add_prim(2., 10.)\n```\n\nExample:\n```text\ncall square_add_prim(2.0, 10.0)\n call multiply_add_prim(2.0, 2.0, 10.0)\n\nFound expected exception:\n```\n\nExample:\n```text\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/2844449444.py\", line 2, in <module>\n square_add_prim(2., 10.)\n File \"/tmp/ipykernel_2054/3025987661.py\", line 48, in func_wrapper\n res = func(*args)\n ^^^^^^^^^^^\n File \"/tmp/ipykernel_2054/3275395289.py\", line 17, in square_add_prim\n return multiply_add_prim(a, a, b)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^\nNotImplementedError: Evaluation rule for 'multiply_add' not implemented\n```\n\nExample:\n```text\n@trace(\"multiply_add_impl\")\ndef multiply_add_impl(x, y, z):\n \"\"\"Concrete implementation of the primitive.\n\n This function does not need to be JAX traceable.\n\n Args:\n x, y, z: The concrete arguments of the primitive. Will only be called with\n concrete values.\n\n Returns:\n the concrete result of the primitive.\n \"\"\"\n # Note: you can use the ordinary (non-JAX) NumPy, which is not JAX-traceable.\n return np.add(np.multiply(x, y), z)\n\n# Now, register the primal implementation with JAX:\nmultiply_add_p.def_impl(multiply_add_impl)\n```\n\nExample:\n```text\n<function __main__.multiply_add_impl(x, y, z)>\n```\n\nExample:\n```text\nassert square_add_prim(2., 10.) == 14.\n```\n\nExample:\n```text\ncall square_add_prim(2.0, 10.0)\n call multiply_add_prim(2.0, 2.0, 10.0)\n call multiply_add_impl(2.0, 2.0, 10.0)\n |<- multiply_add_impl = 14.0\n |<- multiply_add_prim = 14.0\n|<- square_add_prim = 14.0\n```\n\nExample:\n```text\nwith expectNotImplementedError():\n api.jit(square_add_prim)(2., 10.)\n```\n\nExample:\n```text\ncall square_add_prim(JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n\nFound expected exception:\n```\n\nExample:\n```text\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/1813425700.py\", line 2, in <module>\n api.jit(square_add_prim)(2., 10.)\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/traceback_util.py\", line 194, in reraise_with_filtered_traceback\n return fun(*args, **kwargs) # pyrefly: ignore[not-callable]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/pjit.py\", line 263, in cache_miss\n p, args_flat = _infer_params(fun, jit_info, args, kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nNotImplementedError: Abstract evaluation for 'multiply_add' not implemented\n```\n\nExample:\n```text\nfrom jax import core\n\n@trace(\"multiply_add_abstract_eval\")\ndef multiply_add_abstract_eval(xs, ys, zs):\n \"\"\"Abstract evaluation of the primitive.\n\n This function does not need to be JAX traceable. It will be invoked with\n abstractions of the actual arguments\n\n Args:\n xs, ys, zs: Abstractions of the arguments.\n\n Result:\n a ShapedArray for the result of the primitive.\n \"\"\"\n assert xs.shape == ys.shape\n assert xs.shape == zs.shape\n return core.ShapedArray(xs.shape, xs.dtype)\n\n# Now, register the abstract evaluation with JAX:\nmultiply_add_p.def_abstract_eval(multiply_add_abstract_eval)\n```\n\nExample:\n```text\n<function __main__.multiply_add_abstract_eval(xs, ys, zs)>\n```\n\nExample:\n```text\ncall square_add_prim(JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n|<- square_add_prim = JitTracer(float32[])\n\nFound expected exception:\n```\n\nExample:\n```text\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/3025987661.py\", line 48, in func_wrapper\n res = func(*args)\n File \"/tmp/ipykernel_2054/3275395289.py\", line 17, in square_add_prim\n return multiply_add_prim(a, a, b)\n File \"/tmp/ipykernel_2054/3025987661.py\", line 48, in func_wrapper\n res = func(*args)\njax._src.source_info_util.JaxStackTraceBeforeTransformation: NotImplementedError: MLIR translation rule for primitive 'multiply_add' not found for platform cpu\n\nThe preceding stack trace is the source of the JAX operation that, once transformed by JAX, triggered the following exception.\n\n--------------------\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/1813425700.py\", line 2, in <module>\n api.jit(square_add_prim)(2., 10.)\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/traceback_util.py\", line 194, in reraise_with_filtered_traceback\n return fun(*args, **kwargs) # pyrefly: ignore[not-callable]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/pjit.py\", line 265, in cache_miss\n executable, pgle_profiler, const_args) = _run_python_pjit(\n ^^^^^^^^^^^^^^^^^\nNotImplementedError: MLIR translation rule for primitive 'multiply_add' not found for platform cpu\n```\n\nExample:\n```text\nfrom jax._src.lib.mlir.dialects import hlo\n\n@trace(\"multiply_add_lowering\")\ndef multiply_add_lowering(ctx, xc, yc, zc):\n \"\"\"The compilation to XLA of the primitive.\n\n Given an mlir.ir.Value for each argument, return the mlir.ir.Values for\n the results of the function.\n\n Does not need to be a JAX-traceable function.\n \"\"\"\n return [hlo.AddOp(hlo.MulOp(xc, yc), zc).result]\n\n# Now, register the lowering rule with JAX.\n# For GPU, refer to the https://docs.jax.dev/en/latest/Custom_Operation_for_GPUs.html\nfrom jax.interpreters import mlir\n\nmlir.register_lowering(multiply_add_p, multiply_add_lowering, platform='cpu')\n```\n\nExample:\n```text\nassert api.jit(lambda x, y: square_add_prim(x, y))(2., 10.) == 14.\n```\n\nExample:\n```text\ncall square_add_prim(JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n|<- square_add_prim = JitTracer(float32[])\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00db6720d0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d82584a0>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d82584e0>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d830f300>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d830e7e0>, all_default_mem_kind=True, lowering_cache={}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[], weak_type=True): RankedTensorType(tensor<f32>), ShapedArray(float32[]): RankedTensorType(tensor<f32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d8247eb0>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True)), avals_out=[ShapedArray(float32[])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d830ff40>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<f32>' at index: 0), BlockArgument(<block argument> of type 'tensor<f32>' at index: 1), BlockArgument(<block argument> of type 'tensor<f32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d8c49eb0>]\n```\n\nExample:\n```text\nassert api.jit(lambda x, y: square_add_prim(x, y),\n static_argnums=1)(2., 10.) == 14.\n```\n\nExample:\n```text\ncall square_add_prim(JitTracer(~float32[]), 10.0)\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), 10.0)\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n|<- square_add_prim = JitTracer(float32[])\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00d8247ed0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d8258ea0>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d8258ee0>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d8260e40>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d8260e90>, all_default_mem_kind=True, lowering_cache={}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[], weak_type=True): RankedTensorType(tensor<f32>), ShapedArray(float32[]): RankedTensorType(tensor<f32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d825cb30>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True)), avals_out=[ShapedArray(float32[])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d82617b0>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<f32>' at index: 0), BlockArgument(<block argument> of type 'tensor<f32>' at index: 1), BlockArgument(<block argument> of type 'tensor<f32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d8b7fe30>]\n```\n\nExample:\n```text\n# The second argument is set to `(2., 10.)` values where you\n# evaluate the Jacobian, and the third argument `(1., 1.)`\n# contains the values of the tangents for the arguments.\nwith expectNotImplementedError():\n api.jvp(square_add_prim, (2., 10.), (1., 1.))\n```\n\nExample:\n```text\ncall square_add_prim(Traced<~float32[]>, Traced<~float32[]>)\n call multiply_add_prim(Traced<~float32[]>, Traced<~float32[]>, Traced<~float32[]>)\n\nFound expected exception:\n```\n\nExample:\n```text\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/459539105.py\", line 5, in <module>\n api.jvp(square_add_prim, (2., 10.), (1., 1.))\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/traceback_util.py\", line 194, in reraise_with_filtered_traceback\n return fun(*args, **kwargs) # pyrefly: ignore[not-callable]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/api.py\", line 1450, in jvp\n return _jvp(fun, primals, tangents, has_aux=has_aux)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nNotImplementedError: Differentiation rule for 'multiply_add' not implemented\n```\n\nExample:\n```text\nfrom jax.interpreters import ad\n\n@trace(\"multiply_add_value_and_jvp\")\ndef multiply_add_value_and_jvp(arg_values, arg_tangents):\n \"\"\"Evaluates the primal output and the tangents (Jacobian-vector product).\n\n Given values of the arguments and perturbation of the arguments (tangents),\n compute the output of the primitive and the perturbation of the output.\n\n This method must be JAX-traceable. JAX may invoke it with abstract values\n for the arguments and tangents.\n\n Args:\n arg_values: A tuple of arguments\n arg_tangents: A tuple with the tangents of the arguments. The tuple has\n the same length as the arg_values. Some of the tangents may also be the\n special value `ad.Zero` to specify a zero tangent\n\n Returns:\n A pair of the primal output and the tangent.\n \"\"\"\n x, y, z = arg_values\n xt, yt, zt = arg_tangents\n _trace(\"Primal evaluation:\")\n # Now, you have a JAX-traceable computation of the output.\n # Normally, you can use the multiply add (`ma`) primitive itself to compute the primal output.\n primal_out = multiply_add_prim(x, y, z)\n\n _trace(\"Tangent evaluation:\")\n # You must use a JAX-traceable way to compute the tangent. It turns out that\n # the output tangent can be computed as (xt * y + x * yt + zt),\n # which you can implement in a JAX-traceable way using the same \"multiply_add_prim\" primitive.\n\n # You do need to deal specially with `Zero`. Here, you just turn it into a\n # proper tensor of 0s (of the same shape as 'x').\n # An alternative would be to check for `Zero` and perform algebraic\n # simplification of the output tangent computation.\n def make_zero(tan):\n return lax.full_like(x, 0) if type(tan) is ad.Zero else tan\n\n output_tangent = multiply_add_prim(make_zero(xt), y, multiply_add_prim(x, make_zero(yt), make_zero(zt)))\n return (primal_out, output_tangent)\n\n# Register the forward differentiation rule with JAX:\nad.primitive_jvps[multiply_add_p] = multiply_add_value_and_jvp\n```\n\nExample:\n```text\n# Tangent is: xt*y + x*yt + zt = 1.*2. + 2.*1. + 1. = 5.\nassert api.jvp(square_add_prim, (2., 10.), (1., 1.)) == (14., 5.)\n```\n\nExample:\n```text\ncall square_add_prim(Traced<~float32[]>, Traced<~float32[]>)\n call multiply_add_prim(Traced<~float32[]>, Traced<~float32[]>, Traced<~float32[]>)\n call multiply_add_value_and_jvp((2.0, 2.0, 10.0), (1.0, 1.0, 1.0))\n Primal evaluation:\n call multiply_add_prim(2.0, 2.0, 10.0)\n call multiply_add_impl(2.0, 2.0, 10.0)\n |<- multiply_add_impl = 14.0\n |<- multiply_add_prim = 14.0\n Tangent evaluation:\n call multiply_add_prim(2.0, 1.0, 1.0)\n call multiply_add_impl(2.0, 1.0, 1.0)\n |<- multiply_add_impl = 3.0\n |<- multiply_add_prim = 3.0\n call multiply_add_prim(1.0, 2.0, 3.0)\n call multiply_add_impl(1.0, 2.0, 3.0)\n |<- multiply_add_impl = 5.0\n |<- multiply_add_prim = 5.0\n |<- multiply_add_value_and_jvp = (14.0, 5.0)\n |<- multiply_add_prim = Traced<float32[]>\n|<- square_add_prim = Traced<float32[]>\n```\n\nExample:\n```text\nassert api.jit(lambda arg_values, arg_tangents:\n api.jvp(square_add_prim, arg_values, arg_tangents))(\n (2., 10.), (1., 1.)) == (14., 5.)\n```\n\nExample:\n```text\ncall square_add_prim(Traced<~float32[]>, Traced<~float32[]>)\n call multiply_add_prim(Traced<~float32[]>, Traced<~float32[]>, Traced<~float32[]>)\n call multiply_add_value_and_jvp((JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[])), (JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[])))\n Primal evaluation:\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n Tangent evaluation:\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n |<- multiply_add_value_and_jvp = (JitTracer(float32[]), JitTracer(float32[]))\n |<- multiply_add_prim = Traced<float32[]>\n|<- square_add_prim = Traced<float32[]>\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00d8247ed0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d80a2f20>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d80a2f60>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d8262dc0>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d8262ed0>, all_default_mem_kind=True, lowering_cache={}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[], weak_type=True): RankedTensorType(tensor<f32>), ShapedArray(float32[]): RankedTensorType(tensor<f32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d80a70b0>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True)), avals_out=[ShapedArray(float32[])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d8263bb0>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<f32>' at index: 0), BlockArgument(<block argument> of type 'tensor<f32>' at index: 1), BlockArgument(<block argument> of type 'tensor<f32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d80a80b0>]\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00d8247ed0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d80a2f20>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d80a2f60>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d8262dc0>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d8262ed0>, all_default_mem_kind=True, lowering_cache={LoweringCacheKey(primitive=multiply_add, eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), avals_in=(ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True)), effects=frozenset(), params=(), platforms=('cpu',)): LoweringCacheValue(func=<jaxlib.mlir.dialects.func.FuncOp object at 0x7a00d80a3200>, flat_output_types=[RankedTensorType(tensor<f32>)], output_treedef=PyTreeDef([*]), const_args=(), const_arg_avals=(), inline=True)}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[], weak_type=True): RankedTensorType(tensor<f32>), ShapedArray(float32[]): RankedTensorType(tensor<f32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d80a70b0>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True), ShapedArray(float32[])), avals_out=[ShapedArray(float32[])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d8263ca0>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<f32>' at index: 0), BlockArgument(<block argument> of type 'tensor<f32>' at index: 1), BlockArgument(<block argument> of type 'tensor<f32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d80aa8b0>]\n```\n\nExample:\n```text\n# This is reverse differentiation w.r.t. the first argument of `square_add_prim`\nwith expectNotImplementedError():\n api.grad(square_add_prim)(2., 10.)\n```\n\nExample:\n```text\ncall square_add_prim(GradTracer(primal=2.0, typeof(tangent)=f32[]), 10.0)\n call multiply_add_prim(GradTracer(primal=2.0, typeof(tangent)=f32[]), GradTracer(primal=2.0, typeof(tangent)=f32[]), 10.0)\n call multiply_add_value_and_jvp((2.0, 2.0, 10.0), (Traced<~float32[]>, Traced<~float32[]>, Zero(~float32[])))\n Primal evaluation:\n call multiply_add_prim(2.0, 2.0, 10.0)\n call multiply_add_impl(2.0, 2.0, 10.0)\n |<- multiply_add_impl = 14.0\n |<- multiply_add_prim = 14.0\n Tangent evaluation:\n call multiply_add_prim(2.0, Traced<~float32[]>, 0.0)\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = Traced<float32[]>\n call multiply_add_prim(Traced<~float32[]>, 2.0, Traced<float32[]>)\n call multiply_add_abstract_eval(~float32[], ~float32[], float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = Traced<float32[]>\n |<- multiply_add_value_and_jvp = (14.0, Traced<float32[]>)\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n call multiply_add_abstract_eval(~float32[], ~float32[], float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = GradTracer(primal=14.0, typeof(tangent)=f32[])\n|<- square_add_prim = GradTracer(primal=14.0, typeof(tangent)=f32[])\n\nFound expected exception:\n```\n\nExample:\n```text\nTraceback (most recent call last):\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/interpreters/ad.py\", line 292, in get_primitive_transpose\n return primitive_transposes[p]\n ~~~~~~~~~~~~~~~~~~~~^^^\nKeyError: multiply_add\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"<frozen runpy>\", line 198, in _run_module_as_main\n File \"<frozen runpy>\", line 88, in _run_code\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/ipykernel_launcher.py\", line 18, in <module>\n app.launch_new_instance()\njax._src.source_info_util.JaxStackTraceBeforeTransformation: NotImplementedError: Transpose rule (for reverse-mode differentiation) for 'multiply_add' not implemented\n\nThe preceding stack trace is the source of the JAX operation that, once transformed by JAX, triggered the following exception.\n\n--------------------\n\nThe above exception was the direct cause of the following exception:\n\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/2155094905.py\", line 3, in <module>\n api.grad(square_add_prim)(2., 10.)\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/traceback_util.py\", line 194, in reraise_with_filtered_traceback\n return fun(*args, **kwargs) # pyrefly: ignore[not-callable]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/api.py\", line 481, in grad_f\n _, g = value_and_grad_f(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nNotImplementedError: Transpose rule (for reverse-mode differentiation) for 'multiply_add' not implemented\n```\n\nExample:\n```text\na = xt * 4.\n b = 2. * yt\n c = a + b\n ft = c + yt\n```\n\nExample:\n```text\n# Initialize cotangents of inputs and intermediate variables:\n xct = yct = act = bct = cct = 0.\n # Initialize cotangent of the output:\n fct = 1.\n # Process `ft = c + yt`:\n cct += fct\n yct += fct\n # Process `c = a + b`:\n act += cct\n bct += cct\n # Process `b = 2. * yt`:\n yct += 2. * bct\n # Process `a = xt * 4.`:\n xct += act * 4.\n```\n\nExample:\n```text\np_transpose(out_ct, x, _, _) = (None, out_ct*cy, out_ct*cz)\n```\n\nExample:\n```text\nadd_transpose(out_ct, _, _) = (out_ct, out_ct)\n mult_transpose(out_ct, x, _) = (None, x * out_ct)\n mult_transpose(out_ct, _, y) = (out_ct * y, None)\n```\n\nExample:\n```text\n@trace(\"multiply_add_transpose\")\ndef multiply_add_transpose(ct, x, y, z):\n \"\"\"Evaluates the transpose of a linear primitive.\n\n This method is only used when computing the backward gradient following\n `value_and_jvp`, and is only needed for primitives that are used in the JVP\n calculation for some other primitive. You need a transposition for `multiply_add_prim`,\n because you have used `multiply_add_prim` in the computation of the `output_tangent` in\n `multiply_add_value_and_jvp`.\n\n In this case, multiply_add is not a linear primitive. However, it is used linearly\n w.r.t. tangents in `multiply_add_value_and_jvp`:\n `output_tangent(xt, yt, zt) = multiply_add_prim(xt, y, multiply_add_prim(x, yt, zt))`.\n\n Always one of the first two multiplicative arguments is a constant.\n\n Args:\n ct: The cotangent of the output of the primitive.\n x, y, z: The values of the arguments. The arguments that are used linearly\n get an ad.UndefinedPrimal value. The other arguments get a constant\n value.\n\n Returns:\n A tuple with the cotangent of the inputs, with the value None\n corresponding to the constant arguments.\n \"\"\"\n if not ad.is_undefined_primal(x):\n # This use of multiply_add is with a constant \"x\".\n assert ad.is_undefined_primal(y)\n ct_y = ad.Zero(y.aval) if type(ct) is ad.Zero else multiply_add_prim(x, ct, lax.full_like(x, 0))\n res = None, ct_y, ct\n else:\n # This use of multiply_add is with a constant \"y\".\n assert ad.is_undefined_primal(x)\n ct_x = ad.Zero(x.aval) if type(ct) is ad.Zero else multiply_add_prim(ct, y, lax.full_like(y, 0))\n res = ct_x, None, ct\n return res\n\nad.primitive_transposes[multiply_add_p] = multiply_add_transpose\n```\n\nExample:\n```text\nassert api.grad(square_add_prim)(2., 10.) == 4.\n```\n\nExample:\n```text\ncall square_add_prim(GradTracer(primal=2.0, typeof(tangent)=f32[]), 10.0)\n call multiply_add_prim(GradTracer(primal=2.0, typeof(tangent)=f32[]), GradTracer(primal=2.0, typeof(tangent)=f32[]), 10.0)\n call multiply_add_value_and_jvp((2.0, 2.0, 10.0), (Traced<~float32[]>, Traced<~float32[]>, Zero(~float32[])))\n Primal evaluation:\n call multiply_add_prim(2.0, 2.0, 10.0)\n call multiply_add_impl(2.0, 2.0, 10.0)\n |<- multiply_add_impl = 14.0\n |<- multiply_add_prim = 14.0\n Tangent evaluation:\n call multiply_add_prim(2.0, Traced<~float32[]>, 0.0)\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = Traced<float32[]>\n call multiply_add_prim(Traced<~float32[]>, 2.0, Traced<float32[]>)\n call multiply_add_abstract_eval(~float32[], ~float32[], float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = Traced<float32[]>\n |<- multiply_add_value_and_jvp = (14.0, Traced<float32[]>)\n |<- multiply_add_prim = GradTracer(primal=14.0, typeof(tangent)=f32[])\n|<- square_add_prim = GradTracer(primal=14.0, typeof(tangent)=f32[])\ncall multiply_add_transpose(1.0, UndefinedPrimal(~float32[]), 2.0, UndefinedPrimal(float32[]))\n call multiply_add_prim(1.0, 2.0, 0.0)\n call multiply_add_impl(1.0, 2.0, 0.0)\n |<- multiply_add_impl = 2.0\n |<- multiply_add_prim = 2.0\n|<- multiply_add_transpose = (2.0, None, 1.0)\ncall multiply_add_transpose(1.0, 2.0, UndefinedPrimal(~float32[]), 0.0)\n call multiply_add_prim(2.0, 1.0, 0.0)\n call multiply_add_impl(2.0, 1.0, 0.0)\n |<- multiply_add_impl = 2.0\n |<- multiply_add_prim = 2.0\n|<- multiply_add_transpose = (None, 2.0, 1.0)\n```\n\nExample:\n```text\nassert api.jit(api.grad(square_add_prim))(2., 10.) == 4.\n```\n\nExample:\n```text\ncall square_add_prim(GradTracer(primal=JitTracer(~float32[]), typeof(tangent)=f32[]), JitTracer(~float32[]))\n call multiply_add_prim(GradTracer(primal=JitTracer(~float32[]), typeof(tangent)=f32[]), GradTracer(primal=JitTracer(~float32[]), typeof(tangent)=f32[]), JitTracer(~float32[]))\n call multiply_add_value_and_jvp((JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[])), (Traced<~float32[]>, Traced<~float32[]>, Zero(~float32[])))\n Primal evaluation:\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n Tangent evaluation:\n call multiply_add_prim(JitTracer(~float32[]), Traced<~float32[]>, JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = Traced<float32[]>\n call multiply_add_prim(Traced<~float32[]>, JitTracer(~float32[]), Traced<float32[]>)\n call multiply_add_abstract_eval(~float32[], ~float32[], float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = Traced<float32[]>\n |<- multiply_add_value_and_jvp = (JitTracer(float32[]), Traced<float32[]>)\n |<- multiply_add_prim = GradTracer(primal=JitTracer(float32[]), typeof(tangent)=f32[])\n|<- square_add_prim = GradTracer(primal=JitTracer(float32[]), typeof(tangent)=f32[])\ncall multiply_add_transpose(JitTracer(float32[]), UndefinedPrimal(~float32[]), JitTracer(~float32[]), UndefinedPrimal(float32[]))\n call multiply_add_prim(JitTracer(float32[]), JitTracer(~float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(float32[], ~float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n|<- multiply_add_transpose = (JitTracer(float32[]), None, JitTracer(float32[]))\ncall multiply_add_transpose(JitTracer(float32[]), JitTracer(~float32[]), UndefinedPrimal(~float32[]), JitTracer(~float32[]))\n call multiply_add_prim(JitTracer(~float32[]), JitTracer(float32[]), JitTracer(~float32[]))\n call multiply_add_abstract_eval(~float32[], float32[], ~float32[])\n |<- multiply_add_abstract_eval = float32[]\n |<- multiply_add_prim = JitTracer(float32[])\n|<- multiply_add_transpose = (None, JitTracer(float32[]), JitTracer(float32[]))\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00d8247ed0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d80eda30>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d80edca0>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d80b78d0>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d80b7740>, all_default_mem_kind=True, lowering_cache={}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[], weak_type=True): RankedTensorType(tensor<f32>), ShapedArray(float32[]): RankedTensorType(tensor<f32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d80e65b0>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[]), ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True)), avals_out=[ShapedArray(float32[])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d80b8130>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<f32>' at index: 0), BlockArgument(<block argument> of type 'tensor<f32>' at index: 1), BlockArgument(<block argument> of type 'tensor<f32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d8303170>]\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00d8247ed0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d80eda30>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d80edca0>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d80b78d0>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d80b7740>, all_default_mem_kind=True, lowering_cache={LoweringCacheKey(primitive=multiply_add, eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), avals_in=(ShapedArray(float32[]), ShapedArray(float32[], weak_type=True), ShapedArray(float32[], weak_type=True)), effects=frozenset(), params=(), platforms=('cpu',)): LoweringCacheValue(func=<jaxlib.mlir.dialects.func.FuncOp object at 0x7a00d80ee080>, flat_output_types=[RankedTensorType(tensor<f32>)], output_treedef=PyTreeDef([*]), const_args=(), const_arg_avals=(), inline=True)}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[], weak_type=True): RankedTensorType(tensor<f32>), ShapedArray(float32[]): RankedTensorType(tensor<f32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d80e65b0>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[], weak_type=True), ShapedArray(float32[]), ShapedArray(float32[], weak_type=True)), avals_out=[ShapedArray(float32[])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d80b84f0>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<f32>' at index: 0), BlockArgument(<block argument> of type 'tensor<f32>' at index: 1), BlockArgument(<block argument> of type 'tensor<f32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d80f0ab0>]\n```\n\nExample:\n```text\n# The arguments are two vectors instead of two scalars.\nwith expectNotImplementedError():\n api.vmap(square_add_prim, in_axes=0, out_axes=0)(np.array([2., 3.]),\n np.array([10., 20.]))\n```\n\nExample:\n```text\ncall square_add_prim(Traced<float32[]>, Traced<float32[]>)\n call multiply_add_prim(Traced<float32[]>, Traced<float32[]>, Traced<float32[]>)\n\nFound expected exception:\n```\n\nExample:\n```text\nTraceback (most recent call last):\n File \"/tmp/ipykernel_2054/1080163607.py\", line 3, in <module>\n api.vmap(square_add_prim, in_axes=0, out_axes=0)(np.array([2., 3.]),\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/traceback_util.py\", line 194, in reraise_with_filtered_traceback\n return fun(*args, **kwargs) # pyrefly: ignore[not-callable]\n ^^^^^^^^^^^^^^^^^^^^\n File \"/home/docs/checkouts/readthedocs.org/user_builds/jax/envs/latest/lib/python3.12/site-packages/jax/_src/api.py\", line 1239, in vmap_f\n out_flat, inferred_out_axes = batching.batch(\n ^^^^^^^^^^^^^^^\nNotImplementedError: Batching rule for 'multiply_add' not implemented\n```\n\nExample:\n```text\nfrom jax.interpreters import batching\n\n@trace(\"multiply_add_batch\")\ndef multiply_add_batch(vector_arg_values, batch_axes):\n \"\"\"Computes the batched version of the primitive.\n\n This must be a JAX-traceable function.\n\n Since the `multiply_add primitive` already operates point-wise on arbitrary\n dimension tensors, to batch it you can use the primitive itself. This works as\n long as both the inputs have the same dimensions and are batched along the\n same axes. The result is batched along the axis that the inputs are batched.\n\n Args:\n vector_arg_values: A tuple of two arguments, each being a tensor of matching\n shape.\n batch_axes: The axes that are being batched. See vmap documentation.\n\n Returns:\n A tuple of the result, and the result axis that was batched.\n \"\"\"\n assert batch_axes[0] == batch_axes[1]\n assert batch_axes[0] == batch_axes[2]\n _trace(\"Using multiply_add to compute the batch:\")\n res = multiply_add_prim(*vector_arg_values)\n return res, batch_axes[0]\n\n\nbatching.primitive_batchers[multiply_add_p] = multiply_add_batch\n```\n\nExample:\n```text\nassert np.allclose(api.vmap(square_add_prim, in_axes=0, out_axes=0)(\n np.array([2., 3.]),\n np.array([10., 20.])),\n [14., 29.])\n```\n\nExample:\n```text\ncall square_add_prim(Traced<float32[]>, Traced<float32[]>)\n call multiply_add_prim(Traced<float32[]>, Traced<float32[]>, Traced<float32[]>)\n call multiply_add_batch(([2. 3.], [2. 3.], [10. 20.]), (0, 0, 0))\n Using multiply_add to compute the batch:\n call multiply_add_prim([2. 3.], [2. 3.], [10. 20.])\n call multiply_add_impl([2. 3.], [2. 3.], [10. 20.])\n |<- multiply_add_impl = [14. 29.]\n |<- multiply_add_prim = [14. 29.]\n |<- multiply_add_batch = ([14. 29.], 0)\n |<- multiply_add_prim = Traced<float32[]>\n|<- square_add_prim = Traced<float32[]>\n```\n\nExample:\n```text\nassert np.allclose(api.jit(api.vmap(square_add_prim, in_axes=0, out_axes=0))\n (np.array([2., 3.]),\n np.array([10., 20.])),\n [14., 29.])\n```\n\nExample:\n```text\ncall square_add_prim(Traced<float32[]>, Traced<float32[]>)\n call multiply_add_prim(Traced<float32[]>, Traced<float32[]>, Traced<float32[]>)\n call multiply_add_batch((JitTracer(float32[2]), JitTracer(float32[2]), JitTracer(float32[2])), (0, 0, 0))\n Using multiply_add to compute the batch:\n call multiply_add_prim(JitTracer(float32[2]), JitTracer(float32[2]), JitTracer(float32[2]))\n call multiply_add_abstract_eval(float32[2], float32[2], float32[2])\n |<- multiply_add_abstract_eval = float32[2]\n |<- multiply_add_prim = JitTracer(float32[2])\n |<- multiply_add_batch = (JitTracer(float32[2]), 0)\n |<- multiply_add_prim = Traced<float32[]>\n|<- square_add_prim = Traced<float32[]>\ncall multiply_add_lowering(LoweringRuleContext(module_context=ModuleContext(context=<jax._src.interpreters.mlir.JaxIrContext object at 0x7a00d8247ed0>, module=<jaxlib.mlir._mlir_libs._mlir.ir.Module object at 0x7a00d80ee5c0>, ip=<jaxlib.mlir._mlir_libs._mlir.ir.InsertionPoint object at 0x7a00d80ee600>, symbol_table=<jaxlib.mlir._mlir_libs._mlir.ir.SymbolTable object at 0x7a00d80b8960>, platforms=('cpu',), backend=<jaxlib._jax.Client object at 0x7a00db66c940>, axis_context=ShardingContext(num_devices=1, device_assignment=None, abstract_mesh=None), keepalives=[], channel_iterator=count(2), host_callbacks=[], shape_poly_state=<jax._src.interpreters.mlir.ShapePolyLoweringState object at 0x7a00d80b8a40>, all_default_mem_kind=True, lowering_cache={}, cached_primitive_lowerings={}, sharding_attr_cache={}, aval_to_ir_types_cache={ShapedArray(float32[2]): RankedTensorType(tensor<2xf32>), ShapedArray(int32[]): RankedTensorType(tensor<i32>)}, pallas_lowering_cache={}, pallas_collective_id_mapping=CollectiveIdMapping(auto={}, manual={}, all_ids=set()), traceback_caches=TracebackCaches(traceback_to_location_cache=<jaxlib.mlir._mlir_libs._jax_mlir_ext.TracebackToLocationCache object at 0x7a00d80e55b0>, canonical_name_cache={}), lowering_parameters=LoweringParameters(override_lowering_rules=None, global_constant_computation=False, for_export=False, export_ignore_forward_compatibility=False, hoist_constants_as_args=False)), name_stack=NameStack(stack=()), traceback=None, primitive=multiply_add, avals_in=(ShapedArray(float32[2]), ShapedArray(float32[2]), ShapedArray(float32[2])), avals_out=[ShapedArray(float32[2])], tokens_in=<jax._src.interpreters.mlir.TokenSet object at 0x7a00d80b94b0>, tokens_out=None, const_lowering={}, axis_size_env=None, dim_var_values=[], jaxpr_eqn_ctx=JaxprEqnContext(compute_type=None, threefry_partitionable=True, cur_abstract_mesh=AbstractMesh((), axis_types=()), remove_size_one_mesh_axis=False, xla_metadata=None), platforms=None), BlockArgument(<block argument> of type 'tensor<2xf32>' at index: 0), BlockArgument(<block argument> of type 'tensor<2xf32>' at index: 1), BlockArgument(<block argument> of type 'tensor<2xf32>' at index: 2))\n|<- multiply_add_lowering = [<jaxlib.mlir._mlir_libs._mlir.ir.OpResult object at 0x7a00d80f1af0>]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:14.835Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":53,"totalLines":877,"estimatedTokens":12314}}154{"id":"doc-sequencing_side_effects_in_jax_jax_documentation-2358dd55","source":"documentation","title":"Sequencing side-effects in JAX — JAX documentation","url":"https://docs.jax.dev/en/latest/jep/10657-sequencing-effects.html","text":"Example:\n```text\ndef f():\n print(\"hello\")\n return 2\ndef g():\n print(\"world\")\n return 3\nf()\ng()\n```\n\nExample:\n```text\n@jax.jit(device=<device 0>)\ndef f():\n return 2\n\n@jax.jit(device=<device 1>)\ndef g():\n return 3\nf()\ng()\n```\n\nExample:\n```text\n@jax.jit(device=<device 0>)\ndef f():\n jax.print(\"hello\")\n return 2\n\n@jax.jit(device=<device 1>)\ndef g():\n jax.print(\"world\")\n return 3\nf()\ng()\n```\n\nExample:\n```text\n@jax.jit\ndef f(x):\n jax.print(\"hello\")\n jax.print(\"world\")\n return x\n```\n\nExample:\n```text\n@jax.jit\ndef f(x, y):\n log_value(x)\n log_value(y)\nf(1, 2)\n```\n\nExample:\n```text\n@jax.jit\ndef f(token, x):\n token = jax.print(token, \"hello\")\n token = jax.print(token, \"world\")\n return token, x\n```\n\nExample:\n```text\n@jax.jit\ndef f(runtime_token, x):\n compiler_token = new_compiler_token()\n compiler_token = jax.print(compiler_token, \"hello\")\n compiler_token = jax.print(compiler_token, \"world\")\n return runtime_token, x\n```\n\nExample:\n```text\ndef _execute(compiled_computation, *args):\n outputs = compiled_computation.execute(*args)\n return outputs\n```\n\nExample:\n```text\ndef _execute(compiled_computation, *args):\n runtime_token = get_runtime_token() # Grab global token\n runtime_token, *outputs = compiled_computation.execute(runtime_token, *args)\n update_runtime_token(runtime_token) # Update global token\n return outputs\n```\n\nExample:\n```text\n@jax.jit\ndef f():\n jax.print(\"hello world\")\n return\nf() # Executed asynchronously\n```\n\nExample:\n```text\n@jax.jit\ndef f():\n jax.print(\"hello world\")\n return new_runtime_token()\nf() # Executed asynchronously\n```\n\nExample:\n```text\n@jax.jit\ndef f():\n jax.print(\"hello\")\n\n@jax.jit\ndef g():\n jax.print(\"world\")\n\nf()\ng()\n```\n\nExample:\n```text\n@jax.jit(device=<device 0>)\ndef f():\n jax.print(\"hello\")\n\n@jax.jit(device=<device 1>)\ndef g():\n jax.print(\"world\")\n\nf()\ng()\n```\n\nExample:\n```text\n@jax.jit(device=<device 0>)\ndef f():\n jax.print(\"hello\")\n return new_runtime_token()\n\n@jax.jit(device=<device 1>)\ndef g():\n jax.print(\"world\")\n return new_runtime_token()\n\nt0 = f()\nt1 = g()\nblock_until_ready((t0, t1))\n```\n\nExample:\n```text\ndef _execute(compiled_computation, *args):\n output_token, *outputs = compiled_computation.execute(runtime_token, *args)\n update_output_token(output_token, compiled_computation.device)\n return outputs\n```\n\nExample:\n```text\ndef effects_barrier():\n output_token.block_until_ready()\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:14.848Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":171,"estimatedTokens":601}}155{"id":"doc-error_glossary_mistral_docs-45941ace","source":"documentation","title":"Error glossary | Mistral Docs","url":"https://docs.mistral.ai/resources/error-glossary","text":"Example:\n```text\n{\n \"object\": \"error\",\n \"message\": \"A human-readable description of the error.\",\n \"type\": \"invalid_request_error\",\n \"param\": \"model\",\n \"code\": \"unknown_model\"\n}\n```\n\nExample:\n```text\nimport time\nimport random\nfrom mistralai.client import Mistral\n\nclient = Mistral(api_key=\"YOUR_API_KEY\")\n\ndef call_with_retry(func, max_retries=5):\n for attempt in range(max_retries):\n try:\n return func()\n except Exception as e:\n if attempt == max_retries - 1:\n raise\n wait = (2 ** attempt) + random.uniform(0, 1)\n time.sleep(wait)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.469Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":31,"estimatedTokens":158}}156{"id":"doc-github_automation_with_mistral_ai_agents_mistral-aed781c9","source":"documentation","title":"Github Automation with Mistral AI Agents - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/mistral-agents-agents_api-github_agent-readme","text":"Example:\n```text\npip install chainlit mcp mistralai\n```\n\nExample:\n```text\nserver_params = StdioServerParameters(\n command=\"docker\",\n args=[\n \"run\",\n \"-i\",\n \"--rm\",\n \"-e\",\n \"GITHUB_PERSONAL_ACCESS_TOKEN\",\n \"ghcr.io/github/github-mcp-server\"\n ],\n env={\n\"GITHUB_PERSONAL_ACCESS_TOKEN\": os.environ[\"GITHUB_PERSONAL_ACCESS_TOKEN\"]\n}\n```\n\nExample:\n```text\ndocker pull ghcr.io/github/github-mcp-server\n```\n\nExample:\n```text\nexport MISTRAL_API_KEY=\"your_api_key_here\"\nexport GITHUB_PERSONAL_ACCESS_TOKEN=\"your_api_key_here\"\n```\n\nExample:\n```text\nchainlit run github.py\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.471Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":39,"estimatedTokens":159}}157{"id":"doc-smart_chips_google_sheets_google_for_developers-8a516ad3","source":"documentation","title":"Smart chips | Google Sheets | Google for Developers","url":"https://developers.google.com/workspace/sheets/api/guides/chips","text":"Example:\n```text\n{\n \"updateCells\": {\n \"rows\": [\n {\n \"values\": [\n {\n \"userEnteredValue\": {\n \"stringValue\": \"@ is the owner of @.\"\n },\n \"chipRuns\": [\n {\n \"chip\": {\n \"personProperties\": {\n \"email\": \"johndoe@gmail.com\",\n \"displayFormat\": \"DEFAULT\"\n }\n }\n },\n {\n \"startIndex\": 18,\n \"chip\": {\n \"richLinkProperties\": {\n \"uri\": \"https://docs.google.com/document/d/YOUR_DOCUMENT_ID/edit\"\n }\n }\n }\n ]\n }\n ]\n }\n ],\n \"fields\": \"userEnteredValue,chipRuns\",\n \"range\": {\n \"startRowIndex\": 0,\n \"startColumnIndex\": 0\n }\n }\n }\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.709Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":43,"estimatedTokens":300}}158{"id":"doc-update_a_section_google_chat_google_for_develope-a543a420","source":"documentation","title":"Update a section | Google Chat | Google for Developers","url":"https://developers.google.com/workspace/chat/update-section","text":"Example:\n```text\nfrom google.cloud import chat_v1\nfrom google.protobuf import field_mask_pb2\n\ndef update_section():\n # Create a client\n client = chat_v1.ChatServiceClient()\n\n # Initialize request\n request = chat_v1.UpdateSectionRequest(\n section=chat_v1.Section(\n name=\"SECTION_NAME\",\n display_name=\"NEW_SECTION_DISPLAY_NAME\"\n ),\n update_mask=field_mask_pb2.FieldMask(paths=[\"display_name\"])\n )\n\n # Make the request\n response = client.update_section(request=request)\n\n print(response)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.800Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":25,"estimatedTokens":143}}159{"id":"doc-create_and_update_interactive_cards_google_chat_-f3fa9aa0","source":"documentation","title":"Create and update interactive cards | Google Chat | Google for Developers","url":"https://developers.google.com/workspace/chat/create-update-interactive-cards","text":"Example:\n```text\n/**\n * This sample shows how to create a message with a card on behalf of a user.\n */\nconst {google} = require('googleapis');\nconst {auth} = require('google-auth-library');\n\nasync function main() {\n // Create a client\n const authClient = await auth.getClient({\n scopes: ['https://www.googleapis.com/auth/chat.messages.create']\n });\n google.options({auth: authClient});\n\n // Initialize the Chat API with Developer Preview labels\n const chat = await google.discoverAPI(\n 'https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY'\n );\n\n // The space to create the message in.\n const parent = 'spaces/SPACE_NAME';\n\n // Create the request\n const request = {\n parent: parent,\n requestBody: {\n text: 'Here is a card created on my behalf:',\n cardsV2: [{\n cardId: 'unique-card-id',\n card: {\n header: {\n title: 'Card Title',\n subtitle: 'Card Subtitle'\n },\n sections: [{\n widgets: [{\n textParagraph: {\n text: 'This card is attached to a user message.'\n }\n }]\n }]\n }\n }]\n }\n };\n\n // Call the API\n const response = await chat.spaces.messages.create(request);\n\n // Handle the response\n console.log(response.data);\n}\n\nmain().catch(console.error);\n```\n\nExample:\n```text\n\"\"\"\nThis sample shows how to create a message with a card on behalf of a user.\n\"\"\"\nfrom google.oauth2 import service_account\nfrom googleapiclient.discovery import build\nimport google.auth\n\ndef create_message_with_card():\n # Create a client\n scopes = [\"https://www.googleapis.com/auth/chat.messages.create\"]\n credentials, _ = google.auth.default(scopes=scopes)\n\n # Build the service endpoint for Chat API with Developer Preview labels.\n service = build(\n 'chat',\n 'v1',\n credentials=credentials,\n discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY'\n )\n\n # The space to create the message in.\n parent = \"spaces/SPACE_NAME\"\n\n # Create the request\n result = service.spaces().messages().create(\n parent=parent,\n body={\n 'text': 'Here is a card created on my behalf:',\n 'cardsV2': [{\n 'cardId': 'unique-card-id',\n 'card': {\n 'header': {\n 'title': 'Card Title',\n 'subtitle': 'Card Subtitle'\n },\n 'sections': [{\n 'widgets': [{\n 'textParagraph': {\n 'text': 'This card is attached to a user message.'\n }\n }]\n }]\n }\n }]\n }\n ).execute()\n\n print(result)\n\nif __name__ == \"__main__\":\n create_message_with_card()\n```\n\nExample:\n```text\n/**\n * This sample shows how to create a message with a card on behalf of a user.\n */\nimport com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;\nimport com.google.api.client.http.GenericUrl;\nimport com.google.api.client.http.HttpRequest;\nimport com.google.api.client.http.HttpRequestFactory;\nimport com.google.api.client.http.HttpTransport;\nimport com.google.api.client.http.json.JsonHttpContent;\nimport com.google.api.client.json.gson.GsonFactory;\nimport com.google.auth.http.HttpCredentialsAdapter;\nimport com.google.auth.oauth2.GoogleCredentials;\nimport java.util.Arrays;\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class CreateMessageWithCard {\n public static void main(String[] args) throws Exception {\n HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();\n GsonFactory jsonFactory = GsonFactory.getDefaultInstance();\n\n GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()\n .createScoped(Arrays.asList(\"https://www.googleapis.com/auth/chat.messages.create\"));\n HttpRequestFactory requestFactory = transport.createRequestFactory(new HttpCredentialsAdapter(credentials));\n\n String parent = \"spaces/SPACE_NAME\";\n GenericUrl url = new GenericUrl(\"https://chat.googleapis.com/v1/\" + parent + \"/messages\");\n\n // Construct the message body\n Map<String, Object> message = new HashMap<>();\n message.put(\"text\", \"Here is a card created on my behalf:\");\n\n Map<String, Object> header = new HashMap<>();\n header.put(\"title\", \"Card Title\");\n header.put(\"subtitle\", \"Card Subtitle\");\n\n Map<String, Object> textParagraph = new HashMap<>();\n textParagraph.put(\"text\", \"This card is attached to a user message.\");\n\n Map<String, Object> widget = new HashMap<>();\n widget.put(\"textParagraph\", textParagraph);\n\n Map<String, Object> section = new HashMap<>();\n section.put(\"widgets\", Collections.singletonList(widget));\n\n Map<String, Object> card = new HashMap<>();\n card.put(\"header\", header);\n card.put(\"sections\", Collections.singletonList(section));\n\n Map<String, Object> cardWithId = new HashMap<>();\n cardWithId.put(\"cardId\", \"unique-card-id\");\n cardWithId.put(\"card\", card);\n\n message.put(\"cardsV2\", Collections.singletonList(cardWithId));\n\n HttpRequest request = requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, message));\n System.out.println(request.execute().parseAsString());\n }\n}\n```\n\nExample:\n```text\n/**\n * This sample shows how to create a message with a card on behalf of a user.\n */\nfunction createMessageWithCard() {\n const parent = 'spaces/SPACE_NAME';\n const url = `https://chat.googleapis.com/v1/${parent}/messages`;\n\n const message = {\n text: 'Here is a card created on my behalf:',\n cardsV2: [{\n cardId: 'unique-card-id',\n card: {\n header: {\n title: 'Card Title',\n subtitle: 'Card Subtitle'\n },\n sections: [{\n widgets: [{\n textParagraph: {\n text: 'This card is attached to a user message.'\n }\n }]\n }]\n }\n }]\n };\n\n const options = {\n method: 'post',\n headers: {\n Authorization: 'Bearer ' + ScriptApp.getOAuthToken()\n },\n contentType: 'application/json',\n payload: JSON.stringify(message),\n muteHttpExceptions: true\n };\n\n try {\n const response = UrlFetchApp.fetch(url, options);\n console.log(response.getContentText());\n } catch (err) {\n console.log('Failed to create message: ' + err.message);\n }\n}\n```\n\nExample:\n```text\n/**\n * This sample shows how to update cards on a message.\n */\nconst {google} = require('googleapis');\nconst {auth} = require('google-auth-library');\n\nasync function main() {\n // Create a client with app credentials\n const authClient = await auth.getClient({\n scopes: ['https://www.googleapis.com/auth/chat.bot']\n });\n google.options({auth: authClient});\n\n // Initialize the Chat API with Developer Preview labels\n const chat = await google.discoverAPI(\n 'https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY'\n );\n\n // The message to update.\n const messageName = 'spaces/SPACE_NAME/messages/MESSAGE_ID';\n\n // Create the request\n const request = {\n name: messageName,\n requestBody: {\n cardsV2: [{\n cardId: 'unique-card-id',\n card: {\n header: {\n title: 'Updated Card Title',\n subtitle: 'Updated Card Subtitle'\n },\n sections: [{\n widgets: [{\n textParagraph: {\n text: 'The card content has been updated asynchronously.'\n }\n }]\n }]\n }\n }]\n }\n };\n\n // Call the API\n await chat.spaces.messages.replaceCards(request);\n console.log('Cards updated.');\n}\n\nmain().catch(console.error);\n```\n\nExample:\n```text\n\"\"\"\nThis sample shows how to update cards on a message.\n\"\"\"\nfrom google.oauth2 import service_account\nfrom googleapiclient.discovery import build\nimport google.auth\n\ndef replace_message_cards():\n # Create a client with app credentials\n scopes = [\"https://www.googleapis.com/auth/chat.bot\"]\n credentials, _ = google.auth.default(scopes=scopes)\n\n # Build the service endpoint for Chat API with Developer Preview labels.\n service = build(\n 'chat',\n 'v1',\n credentials=credentials,\n discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY'\n )\n\n # The message to update.\n message_name = \"spaces/SPACE_NAME/messages/MESSAGE_ID\"\n\n # Create the request\n result = service.spaces().messages().replaceCards(\n name=message_name,\n body={\n 'cardsV2': [{\n 'cardId': 'unique-card-id',\n 'card': {\n 'header': {\n 'title': 'Updated Card Title',\n 'subtitle': 'Updated Card Subtitle'\n },\n 'sections': [{\n 'widgets': [{\n 'textParagraph': {\n 'text': 'The card content has been updated asynchronously.'\n }\n }]\n }]\n }\n }]\n }\n ).execute()\n\n print(\"Cards updated.\")\n\nif __name__ == \"__main__\":\n replace_message_cards()\n```\n\nExample:\n```text\n/**\n * This sample shows how to update cards on a message.\n */\nimport com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;\nimport com.google.api.client.http.GenericUrl;\nimport com.google.api.client.http.HttpRequest;\nimport com.google.api.client.http.HttpRequestFactory;\nimport com.google.api.client.http.HttpTransport;\nimport com.google.api.client.http.json.JsonHttpContent;\nimport com.google.api.client.json.gson.GsonFactory;\nimport com.google.auth.http.HttpCredentialsAdapter;\nimport com.google.auth.oauth2.GoogleCredentials;\nimport java.util.Arrays;\nimport java.util.Collections;\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class ReplaceMessageCards {\n public static void main(String[] args) throws Exception {\n HttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();\n GsonFactory jsonFactory = GsonFactory.getDefaultInstance();\n\n GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()\n .createScoped(Arrays.asList(\"https://www.googleapis.com/auth/chat.bot\"));\n HttpRequestFactory requestFactory = transport.createRequestFactory(new HttpCredentialsAdapter(credentials));\n\n String messageName = \"spaces/SPACE_NAME/messages/MESSAGE_ID\";\n GenericUrl url = new GenericUrl(\"https://chat.googleapis.com/v1/\" + messageName + \":replaceCards\");\n\n // Construct the body\n Map<String, Object> header = new HashMap<>();\n header.put(\"title\", \"Updated Card Title\");\n header.put(\"subtitle\", \"Updated Card Subtitle\");\n\n Map<String, Object> textParagraph = new HashMap<>();\n textParagraph.put(\"text\", \"The card content has been updated asynchronously.\");\n\n Map<String, Object> widget = new HashMap<>();\n widget.put(\"textParagraph\", textParagraph);\n\n Map<String, Object> section = new HashMap<>();\n section.put(\"widgets\", Collections.singletonList(widget));\n\n Map<String, Object> card = new HashMap<>();\n card.put(\"header\", header);\n card.put(\"sections\", Collections.singletonList(section));\n\n Map<String, Object> cardWithId = new HashMap<>();\n cardWithId.put(\"cardId\", \"unique-card-id\");\n cardWithId.put(\"card\", card);\n\n Map<String, Object> body = new HashMap<>();\n body.put(\"cardsV2\", Collections.singletonList(cardWithId));\n\n HttpRequest request = requestFactory.buildPostRequest(url, new JsonHttpContent(jsonFactory, body));\n request.execute();\n System.out.println(\"Cards updated.\");\n }\n}\n```\n\nExample:\n```text\n/**\n * This sample shows how to update cards on a message.\n */\nfunction replaceMessageCards() {\n const messageName = 'spaces/SPACE_NAME/messages/MESSAGE_ID';\n const url = `https://chat.googleapis.com/v1/${messageName}:replaceCards`;\n\n const request = {\n cardsV2: [{\n cardId: 'unique-card-id',\n card: {\n header: {\n title: 'Updated Card Title',\n subtitle: 'Updated Card Subtitle'\n },\n sections: [{\n widgets: [{\n textParagraph: {\n text: 'The card content has been updated asynchronously.'\n }\n }]\n }]\n }\n }]\n };\n\n const options = {\n method: 'post',\n headers: {\n Authorization: 'Bearer ' + ScriptApp.getOAuthToken()\n },\n contentType: 'application/json',\n payload: JSON.stringify(request),\n muteHttpExceptions: true\n };\n\n try {\n const response = UrlFetchApp.fetch(url, options);\n console.log('Cards updated.');\n } catch (err) {\n console.log('Failed to update cards: ' + err.message);\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.821Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":443,"estimatedTokens":3249}}160{"id":"doc-get_details_about_a_space_google_chat_google_for-eed81804","source":"documentation","title":"Get details about a space | Google Chat | Google for Developers","url":"https://developers.google.com/workspace/chat/get-spaces","text":"Example:\n```text\nimport {createClientWithUserCredentials} from './authentication-utils.js';\n\nconst USER_AUTH_OAUTH_SCOPES = [\n 'https://www.googleapis.com/auth/chat.spaces.readonly',\n];\n\n// This sample shows how to get space with user credential\nasync function main() {\n // Create a client\n const chatClient = await createClientWithUserCredentials(\n USER_AUTH_OAUTH_SCOPES,\n );\n\n // Initialize request argument(s)\n const request = {\n // Replace SPACE_NAME here\n name: 'spaces/SPACE_NAME',\n };\n\n // Make the request\n const response = await chatClient.getSpace(request);\n\n // Handle the response\n console.log(response);\n}\n\nawait main();\n```\n\nExample:\n```text\nfrom authentication_utils import create_client_with_user_credentials\nfrom google.apps import chat_v1 as google_chat\n\nSCOPES = [\"https://www.googleapis.com/auth/chat.spaces.readonly\"]\n\n# This sample shows how to get space with user credential\ndef get_space_with_user_cred():\n # Create a client\n client = create_client_with_user_credentials(SCOPES)\n\n # Initialize request argument(s)\n request = google_chat.GetSpaceRequest(\n # Replace SPACE_NAME here\n name = \"spaces/SPACE_NAME\",\n )\n\n # Make the request\n response = client.get_space(request)\n\n # Handle the response\n print(response)\n\nget_space_with_user_cred()\n```\n\nExample:\n```text\nimport com.google.chat.v1.ChatServiceClient;\nimport com.google.chat.v1.GetSpaceRequest;\nimport com.google.chat.v1.Space;\n\n// This sample shows how to get space with user credential.\npublic class GetSpaceUserCred {\n\n private static final String SCOPE =\n \"https://www.googleapis.com/auth/chat.spaces.readonly\";\n\n public static void main(String[] args) throws Exception {\n try (ChatServiceClient chatServiceClient =\n AuthenticationUtils.createClientWithUserCredentials(\n ImmutableList.of(SCOPE))) {\n GetSpaceRequest.Builder request = GetSpaceRequest.newBuilder()\n // Replace SPACE_NAME here\n .setName(\"spaces/SPACE_NAME\");\n Space response = chatServiceClient.getSpace(request.build());\n\n System.out.println(JsonFormat.printer().print(response));\n }\n }\n}\n```\n\nExample:\n```text\n/**\n * This sample shows how to get space with user credential\n *\n * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.spaces.readonly'\n * referenced in the manifest file (appsscript.json).\n */\nfunction getSpaceUserCred() {\n // Initialize request argument(s)\n // TODO(developer): Replace SPACE_NAME here\n const name = \"spaces/SPACE_NAME\";\n\n // Make the request\n const response = Chat.Spaces.get(name);\n\n // Handle the response\n console.log(response);\n}\n```\n\nExample:\n```text\nimport {createClientWithAppCredentials} from './authentication-utils.js';\n\n// This sample shows how to get space with app credential\nasync function main() {\n // Create a client\n const chatClient = createClientWithAppCredentials();\n\n // Initialize request argument(s)\n const request = {\n // Replace SPACE_NAME here\n name: 'spaces/SPACE_NAME',\n };\n\n // Make the request\n const response = await chatClient.getSpace(request);\n\n // Handle the response\n console.log(response);\n}\n\nawait main();\n```\n\nExample:\n```text\nfrom authentication_utils import create_client_with_app_credentials\nfrom google.apps import chat_v1 as google_chat\n\n# This sample shows how to get space with app credential\ndef get_space_with_app_cred():\n # Create a client\n client = create_client_with_app_credentials()\n\n # Initialize request argument(s)\n request = google_chat.GetSpaceRequest(\n # Replace SPACE_NAME here\n name = \"spaces/SPACE_NAME\",\n )\n\n # Make the request\n response = client.get_space(request)\n\n # Handle the response\n print(response)\n\nget_space_with_app_cred()\n```\n\nExample:\n```text\nimport com.google.chat.v1.ChatServiceClient;\nimport com.google.chat.v1.GetSpaceRequest;\nimport com.google.chat.v1.Space;\n\n// This sample shows how to get space with app credential.\npublic class GetSpaceAppCred {\n\n public static void main(String[] args) throws Exception {\n try (ChatServiceClient chatServiceClient =\n AuthenticationUtils.createClientWithAppCredentials()) {\n GetSpaceRequest.Builder request = GetSpaceRequest.newBuilder()\n // Replace SPACE_NAME here\n .setName(\"spaces/SPACE_NAME\");\n Space response = chatServiceClient.getSpace(request.build());\n\n System.out.println(JsonFormat.printer().print(response));\n }\n }\n}\n```\n\nExample:\n```text\n/**\n * This sample shows how to get space with app credential\n *\n * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot'\n * used by service accounts.\n */\nfunction getSpaceAppCred() {\n // Initialize request argument(s)\n // TODO(developer): Replace SPACE_NAME here\n const name = \"spaces/SPACE_NAME\";\n const parameters = {};\n\n // Make the request\n const response = Chat.Spaces.get(\n name,\n parameters,\n getHeaderWithAppCredentials(),\n );\n\n // Handle the response\n console.log(response);\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:55.834Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":206,"estimatedTokens":1259}}161{"id":"doc-creating_and_publishing_unscoped_public_packages-5d778e56","source":"documentation","title":"Creating and publishing unscoped public packages | npm Docs","url":"https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages","text":"Example:\n```bash\ngit initgit remote add origin git://git-remote-url\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.357Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":22}}162{"id":"doc-npm_bugs_npm_docs-37fb5af3","source":"documentation","title":"npm-bugs | npm Docs","url":"https://docs.npmjs.com/cli/v12/commands/npm-bugs","text":"Example:\n```bash\nnpm bugs [<pkgname> [<pkgname> ...]]\nalias: issues\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.371Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":7,"estimatedTokens":22}}163{"id":"doc-npm_npm_docs-aa05ff61","source":"documentation","title":"npm | npm Docs","url":"https://docs.npmjs.com/cli/v12/commands/npm","text":"Example:\n```bash\nnpm\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.372Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":10}}164{"id":"doc-npm_pkg_npm_docs-8dca9a73","source":"documentation","title":"npm-pkg | npm Docs","url":"https://docs.npmjs.com/cli/v12/commands/npm-pkg","text":"Example:\n```bash\nnpm pkg set <key>=<value> [<key>=<value> ...]npm pkg get [<key> [<key> ...]]npm pkg delete <key> [<key> ...]npm pkg set [<array>[<index>].<key>=<value> ...]npm pkg set [<array>[].<key>=<value> ...]npm pkg fix\n```\n\nExample:\n```bash\nnpm pkg get name\n```\n\nExample:\n```bash\nnpm pkg get name version\n```\n\nExample:\n```bash\nnpm pkg get scripts.test\n```\n\nExample:\n```bash\nnpm pkg get contributors.email\n```\n\nExample:\n```bash\nnpm pkg get contributors[0].email\n```\n\nExample:\n```bash\nnpm pkg get \"exports[.].require\"\n```\n\nExample:\n```bash\nnpm pkg set bin.mynewcommand=cli.js\n```\n\nExample:\n```bash\nnpm pkg set description='Awesome package' engines.node='>=10'\n```\n\nExample:\n```bash\nnpm pkg set contributors[0].name='Foo' contributors[0].email='foo@bar.ca'\n```\n\nExample:\n```bash\nnpm pkg set contributors[].name='Foo' contributors[].name='Bar'\n```\n\nExample:\n```bash\nnpm pkg set private=true --json\n```\n\nExample:\n```bash\nnpm pkg set tap.timeout=60 --json\n```\n\nExample:\n```bash\nnpm pkg delete scripts.build\n```\n\nExample:\n```bash\nnpm pkg set funding=https://example.com --ws\n```\n\nExample:\n```bash\nnpm pkg get name version --ws{ \"a\": { \"name\": \"a\", \"version\": \"1.0.0\" }, \"b\": { \"name\": \"b\", \"version\": \"1.0.0\" }}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.382Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":81,"estimatedTokens":312}}165{"id":"doc-npm_get_npm_docs-d3262c9d","source":"documentation","title":"npm-get | npm Docs","url":"https://docs.npmjs.com/cli/v12/commands/npm-get","text":"Example:\n```bash\nnpm get [<key> ...] (See `npm config`)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.398Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":19}}166{"id":"doc-npm_login_npm_docs-ed9ad54f","source":"documentation","title":"npm-login | npm Docs","url":"https://docs.npmjs.com/cli/v12/commands/npm-login","text":"Example:\n```bash\nnpm login\n```\n\nExample:\n```bash\n# log in, linking the scope to the custom registrynpm login --scope=@mycorp --registry=https://registry.mycorp.com\n# log out, removing the link and the auth tokennpm logout --scope=@mycorp\n```\n\nExample:\n```bash\n# accept all defaults, and create a package named \"@foo/whatever\",# instead of just named \"whatever\"npm init --scope=@foo --yes\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.401Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":17,"estimatedTokens":102}}167{"id":"doc-npm_install_ci_test_npm_docs-2acb3ad4","source":"documentation","title":"npm-install-ci-test | npm Docs","url":"https://docs.npmjs.com/cli/v8/commands/npm-install-ci-test","text":"Example:\n```bash\nnpm install-ci-test\nalias: cit\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.419Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":7,"estimatedTokens":17}}168{"id":"doc-rename_keys_processor_opensearch_documentation-5092e6dc","source":"documentation","title":"Rename keys processor | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/data-prepper/pipelines/configuration/processors/rename-keys/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nrename-keys-nested-pipeline:\n source:\n http:\n path: /logs\n ssl: false\n processor:\n - rename_keys:\n entries:\n # Top-level rename\n - from_key: message\n to_key: msg\n # Level-2 (nested) renames — use slash paths\n - from_key: user/name\n to_key: user/username\n - from_key: user/id\n to_key: user/user_id\n - from_key: http/response/code\n to_key: http/status_code\n # If a target exists already, overwrite it\n - from_key: env\n to_key: metadata/environment\n overwrite_if_to_key_exists: true\n sink:\n - opensearch:\n hosts: [\"https://opensearch:9200\"]\n insecure: true\n username: admin\n password: admin_password\n index_type: custom\n index: rename-%{yyyy.MM.dd}\n```\n\nExample:\n```text\ncurl -sS -X POST \"http://localhost:2021/logs\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\n \"message\": \"hello world\",\n \"user\": { \"name\": \"alice\", \"id\": 123 },\n \"http\": { \"response\": { \"code\": 200 } },\n \"env\": \"prod\",\n \"metadata\": { \"environment\": \"staging\" }\n },\n {\n \"message\": \"goodbye\",\n \"user\": { \"name\": \"bob\", \"id\": 456 },\n \"http\": { \"response\": { \"code\": 503 } },\n \"env\": \"dev\"\n }\n ]'\n```\n\nExample:\n```text\n{\n ...\n \"hits\": {\n \"total\": {\n \"value\": 2,\n \"relation\": \"eq\"\n },\n \"max_score\": 1,\n \"hits\": [\n {\n \"_index\": \"rename-2025.11.04\",\n \"_id\": \"kq3NTpoBNvg1WLcAJOak\",\n \"_score\": 1,\n \"_source\": {\n \"user\": {\n \"username\": \"alice\",\n \"user_id\": 123\n },\n \"http\": {\n \"response\": {},\n \"status_code\": 200\n },\n \"metadata\": {\n \"environment\": \"prod\"\n },\n \"msg\": \"hello world\"\n }\n },\n {\n \"_index\": \"rename-2025.11.04\",\n \"_id\": \"k63NTpoBNvg1WLcAJOak\",\n \"_score\": 1,\n \"_source\": {\n \"user\": {\n \"username\": \"bob\",\n \"user_id\": 456\n },\n \"http\": {\n \"response\": {},\n \"status_code\": 503\n },\n \"msg\": \"goodbye\",\n \"metadata\": {\n \"environment\": \"dev\"\n }\n }\n }\n ]\n }\n}\n```\n\nExample:\n```text\nprocessor:\n - rename_keys:\n entries:\n - from_key: \"message\"\n to_key: \"message2\"\n - from_key: \"message2\"\n to_key: \"message3\"\n```\n\nExample:\n```text\n{\"message3\": \"hello\"}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.226Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":130,"estimatedTokens":832}}169{"id":"doc-integrate_pay_upon_invoice_paypal_developer-e5f41f0e","source":"documentation","title":"Integrate Pay upon Invoice | PayPal Developer","url":"https://developer.paypal.com/ratepay/integrate","text":"Copy for LLMView as MarkdownIntegrate Pay upon InvoiceLearn how to integrate Pay Upon Invoice with PayPal. Get approval, set up webhooks, and manage payment preferences for smoother transactions in your checkout.Last 11, 2026DOCSCURRENTKnow before you code Request approval to enable Pay upon Invoice by visiting these Sandbox and Live - https://www.sandbox.paypal.com/bizsignup/entry?country.x=DE&product=payment_methods&capabilities=PAY_UPON_INVOICE Live - https://www.paypal.com/bizsignup/entry?country.x=DE&product=payment_methods&capabilities=PAY_UPON_INVOICE Make sure you're subscribed to the following webhook PAYMENT.CAPTURE.COMPLETED webhook event indicates a successful order capture. The PAYMENT.CAPTURE.DENIED and CHECKOUT.PAYMENT-APPROVAL.REVERSED webhook events indicate a failed order capture. Make sure your preference for receiving payments in your PayPal business or merchant account is set to accept and convert to the currency in your account. In your profile, select Account Settings > Payment preferences > Block payments and click Update to mark this preference. You can use only intent=CAPTURE in Create order to process payments using Pay upon Invoice. Request that buyers provide their birth date to process payments using Pay upon Invoice. You are legally obligated to display the messages to the buyer as described in the Error codes and error messages section. Use Postman to explore and test PayPal APIs. 1. Offer Pay upon Invoice on your checkout pageCreate the user interface to offer Pay upon Invoice and collect the buyer's information.On your Pay upon Invoice checkout page, you'll need to complete the Integrate with the FraudNet JavaScript library to allow Ratepay to complete their buyer credit and risk checks. Required. Present the following legal text to the buyer in English or German in one of the following Integrate with the PUI Legal Component: <script src=\"https://www.paypal.com/sdk/js?client-id=test&components=legal\"></script> <div id=\"paypal-legal-container\"></div> <script> paypal ) .render(\"#paypal-legal-container\"); </script> B. Copy and paste the below text directly. EnglishGermanscroll leftscroll rightBy clicking on the button, you agree to the terms of payment and performance of a risk check from the payment partner, Ratepay. You also agree to PayPal's privacy statement. If your request to purchase upon invoice is accepted, the purchase price claim will be assigned to Ratepay, and you may only pay Ratepay, not the merchant. 2. Create an orderCreate an order with Pay upon Invoice as the payment source. Use the buyer information you captured from your user interface to create an order with Pay upon Invoice as the payment source.Sample requestAPI endpoint order API endpoint order curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer <Access-Token>\" \\ -H \"PayPal-Request-Id: 7b92603e-77ed-4896-8e78-5dea2050476a\" \\ -d '{ \"intent\": \"CAPTURE\", \"processing_instruction\": \"ORDER_COMPLETE_ON_PAYMENT_APPROVAL\", \"purchase_units\": [ { \"amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\", \"breakdown\": { \"item_total\": { \"currency_code\": \"EUR\", \"value\": \"81.00\" }, \"tax_total\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" } } }, \"shipping\": { \"name\": { \"full_name\": \"John Doe\" }, \"address\": { \"address_line_1\": \"Taunusanlage 12\", \"admin_area_2\": \"FRANKFURT AM MAIN\", \"postal_code\": \"60325\", \"country_code\": \"DE\" } }, \"items\": [ { \"name\": \"Air Jordan Shoe\", \"category\": \"PHYSICAL_GOODS\", \"unit_amount\": { \"currency_code\": \"EUR\", \"value\": \"81.00\" }, \"tax\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" }, \"tax_rate\": \"19.00\", \"quantity\": \"1\" } ], \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"custom_id\": \"MERCHANT_CUSTOM_ID\" } ], \"payment_source\": { \"pay_upon_invoice\": { \"name\": { \"given_name\": \"John\", \"surname\": \"Doe\" }, \"email\": \"[email protected]\", \"birth_date\": \"1990-01-01\", \"phone\": { \"national_number\": \"6912345678\", \"country_code\": \"49\" }, \"billing_address\": { \"address_line_1\": \"Schönhauser Allee 84\", \"admin_area_2\": \"Berlin\", \"postal_code\": \"10439\", \"country_code\": \"DE\" }, \"experience_context\": { \"locale\": \"en-DE\", \"brand_name\": \"EXAMPLE INC\", \"logo_url\": \"https://example.com/logoUrl.svg\", \"customer_service_instructions\": [ \"Customer service phone is +49 6912345678.\" ] } } } }' Modify the code After you copy the code in the sample request, modify the - Your access token. intent - This parameter must be set to CAPTURE as shown in this sample code. - Pass the amount of the order and the currency code. - Pass the name, category, unit amount, tax amount and tax rate of various items in the order. Please items from the category PHYSICAL_GOODS are permissible for Pay Upon Invoice. If items that do not belong in this category are wrongfully tagged as such, the transaction can be reversed. - Pass the optional shipping name and address. payment_source - Specify the as the payment_source and include the country_code. Account holder's name on name field. Account holder's email on email field. Account holder's date of birth on birth_date field. Account holder's phone number on phone field. Account holder's billing address on billing_address field. experience_context - Specify preferred language, brand name, logo, and customer service instructions to be presented on Ratepay's payment instruction email sent to the buyer. Currently, you can use only German as the preferred language (locale=de-DE). processing_instruction - Set this value to ORDER_COMPLETE_ON_PAYMENT_APPROVAL as shown in this sample code. invoice_id - Pass the optional invoice number that identifies the order in your system. This order ID shows up in the payment instruction email that Ratepay sends to the buyer. We recommend that you pass this value to help Ratepay communicate with the buyer. If your request doesn't pass a value for invoice_id, Ratepay's payment instruction email shows the id value of the PayPal checkout order resource. or add other parameters in the Create order request body to create an order that reflects the actual order details. or add other parameters in the Create order request body to create an order that reflects the actual order details. Step ResultStep resultA successful request results in the return status code of HTTP 201 Created. A JSON response body that contains the order ID. You'll use the order ID in the next step. This indicates that Ratepay performed the buyer risk assessment successfully and approved the payment.When the status returns PENDING_APPROVAL, display a message to the buyer that indicates checkout is complete. In the next step, listen to the webhooks to get the result of the order capture, so you can notify the buyer offline of a successful or failed transaction.Sample response{ \"id\": \"5O190127TN364715T\", \"status\": \"PENDING_APPROVAL\", \"payment_source\": { \"pay_upon_invoice\": { \"birth_date\": \"1990-01-01\", \"name\": { \"given_name\": \"John\", \"surname\": \"Doe\" }, \"email\": \"[email protected]\", \"phone\": { \"national_number\": \"6912345678\", \"country_code\": \"49\" }, \"billing_address\": { \"address_line_1\": \"Schönhauser Allee 84\", \"admin_area_2\": \"Berlin\", \"postal_code\": \"10439\", \"country_code\": \"DE\" } } }, \"links\": [ { \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\", \"rel\": \"self\", \"method\": \"GET\" } ] } 3. Listen to webhooksListen to the following webhooks to get the result of order PAYMENT.CAPTURE.COMPLETED webhook event indicates a successful order capture. The PAYMENT.CAPTURE.DENIED and CHECKOUT.PAYMENT-APPROVAL.REVERSED webhook events indicate a failed order capture. Getting the result might be delayed by a few moments. Sample PAYMENT.CAPTURE.COMPLETED webhook { \"id\": \"WH-6WA12701B00483532-15737896PW730511B\", \"event_version\": \"1.0\", \"create_time\": \"2021-03-19T08:07:57.563Z\", \"resource_type\": \"capture\", \"resource_version\": \"2.0\", \"event_type\": \"PAYMENT.CAPTURE.COMPLETED\", \"summary\": \"Payment completed for EUR 1.0 EUR\", \"resource\": { \"id\": \"84745544P6340640G\", \"status\": \"COMPLETED\", \"amount\": { \"value\": \"100.00\", \"currency_code\": \"EUR\" }, \"seller_receivable_breakdown\": { \"paypal_fee\": { \"value\": \"3.00\", \"currency_code\": \"EUR\" }, \"gross_amount\": { \"value\": \"100.00\", \"currency_code\": \"EUR\" }, \"net_amount\": { \"value\": \"97.00\", \"currency_code\": \"EUR\" } }, \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"seller_protection\": { \"status\": \"NOT_ELIGIBLE\" }, \"supplementary_data\": { \"related_ids\": { \"order_id\": \"5O190127TN364715T\" } }, \"update_time\": \"2021-03-19T08:07:40Z\", \"create_time\": \"2021-03-19T08:06:45Z\", \"final_capture\": true, \"links\": [ { \"method\": \"GET\", \"rel\": \"self\", \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R\" }, { \"method\": \"POST\", \"rel\": \"refund\", \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R/refund\" }, { \"method\": \"GET\", \"rel\": \"up\", \"href\": \"https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T\" } ] }, \"links\": [ { \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-6WA12701B00483532-15737896PW730511B\", \"rel\": \"self\", \"method\": \"GET\" }, { \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-6WA12701B00483532-15737896PW730511B/resend\", \"rel\": \"resend\", \"method\": \"POST\" } ] } Make sure the order ID from Step 2 matches resource.supplementary_data.related_ids.order_id parameter in the webhook payload. Sample PAYMENT.CAPTURE.DENIED webhook { \"id\": \"WH-11M70257FM3776948-8B478027S4286991F\", \"event_version\": \"1.0\", \"create_time\": \"2021-03-19T08:17:29.782Z\", \"resource_type\": \"capture\", \"resource_version\": \"2.0\", \"event_type\": \"PAYMENT.CAPTURE.DENIED\", \"summary\": \"Payment denied for EUR 100.0 EUR\", \"resource\": { \"id\": \"826413372K501814R\", \"status\": \"DECLINED\", \"amount\": { \"value\": \"100.00\", \"currency_code\": \"EUR\" }, \"seller_receivable_breakdown\": { \"gross_amount\": { \"value\": \"100.00\", \"currency_code\": \"EUR\" }, \"net_amount\": { \"value\": \"100.00\", \"currency_code\": \"EUR\" } }, \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"seller_protection\": { \"status\": \"NOT_ELIGIBLE\" }, \"supplementary_data\": { \"related_ids\": { \"order_id\": \"5O190127TN364715T\" } }, \"update_time\": \"2021-03-19T08:17:12Z\", \"create_time\": \"2021-03-19T08:16:01Z\", \"final_capture\": true, \"links\": [ { \"method\": \"GET\", \"rel\": \"self\", \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R\" }, { \"method\": \"POST\", \"rel\": \"refund\", \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R/refund\" }, { \"method\": \"GET\", \"rel\": \"up\", \"href\": \"https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T\" } ] }, \"links\": [ { \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-11M70257FM3776948-8B478027S4286991F\", \"rel\": \"self\", \"method\": \"GET\" }, { \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-11M70257FM3776948-8B478027S4286991F/resend\", \"rel\": \"resend\", \"method\": \"POST\" } ] } Make sure the order ID from Step 2 matches the resource.supplementary_data.related_ids.order_id parameter in the webhook payload. { \"id\": \"WH-COC11055RA711503B-4YM959094A144403T\", \"create_time\": \"2021-03-19T08:17:29.782Z\", \"event_type\": \"CHECKOUT.PAYMENT-APPROVAL.REVERSED\", \"summary\": \"A payment has been reversed after approval.\", \"resource\": { \"order_id\": \"5O190127TN364715T\", \"purchase_units\": [ { \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"invoice_id\": \"MERCHANT_INVOICE_ID\" } ], \"payment_source\": { \"pay_upon_invoice\": { \"birth_date\": \"1990-01-01\", \"name\": { \"given_name\": \"John\", \"surname\": \"Doe\" }, \"email\": \"[email protected]\", \"phone\": { \"national_number\": \"6912345678\", \"country_code\": \"49\" }, \"billing_address\": { \"address_line_1\": \"Schönhauser Allee 84\", \"admin_area_2\": \"Berlin\", \"postal_code\": \"10439\", \"country_code\": \"DE\" } } } }, \"event_version\": \"1.0\" } Make sure the order ID from Step 2 matches the resource.order_id parameter in the webhook payload. Alternatively, if your app misses the webhook needed to capture the order, you can get the order capture result by sending a GET call to the Show order details endpoint of the Orders v2 API. caution when polling for order capture results using the Show order details endpoint. PayPal enforces rate limits on API requests. Sample Request curl -v -X GET https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer <Access-Token>\" Sample Response { \"id\": \"5O190127TN364715T\", \"intent\": \"CAPTURE\", \"status\": \"COMPLETED\", \"processing_instruction\": \"ORDER_COMPLETE_ON_PAYMENT_APPROVAL\", \"payment_source\": { \"pay_upon_invoice\": { \"birth_date\": \"1990-01-01\", \"name\": { \"given_name\": \"John\", \"surname\": \"Doe\" }, \"email\": \"[email protected]\", \"phone\": { \"national_number\": \"6912345678\", \"country_code\": \"49\" }, \"billing_address\": { \"address_line_1\": \"Schönhauser Allee 84\", \"admin_area_2\": \"Berlin\", \"postal_code\": \"10439\", \"country_code\": \"DE\" }, \"payment_reference\": \"b8a1525dlYzu6Mn62umI\", \"deposit_bank_details\": { \"bic\": \"DEUTDEFFXXX\", \"bank_name\": \"Deutsche Bank\", \"iban\": \"DE89370400440532013000\", \"account_holder_name\": \"Paypal - Ratepay GmbH - Test Bank Account\" } } }, \"purchase_units\": [ { \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\", \"breakdown\": { \"item_total\": { \"currency_code\": \"EUR\", \"value\": \"81.00\" }, \"tax_total\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" } } }, \"shipping\": { \"name\": { \"full_name\": \"John Doe\" }, \"address\": { \"address_line_1\": \"Taunusanlage 12\", \"admin_area_2\": \"FRANKFURT AM MAIN\", \"postal_code\": \"60325\", \"country_code\": \"DE\" } }, \"items\": [ { \"name\": \"Air Jordan Shoe\", \"category\": \"PHYSICAL_GOODS\", \"unit_amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\" }, \"tax\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" }, \"tax_rate\": \"19.00\", \"quantity\": \"1\" } ], \"payments\": { \"captures\": [ { \"id\": \"826413372K501814R\", \"status\": \"COMPLETED\", \"amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\" }, \"final_capture\": true, \"seller_protection\": { \"status\": \"NOT_ELIGIBLE\" }, \"seller_receivable_breakdown\": { \"gross_amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\" }, \"paypal_fee\": { \"currency_code\": \"EUR\", \"value\": \"3.00\" }, \"net_amount\": { \"currency_code\": \"EUR\", \"value\": \"97.00\" } }, \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"links\": [ { \"href\": \"https://api-m.paypal.com/v2/payments/captures/3C679366HH908993F\", \"rel\": \"self\", \"method\": \"GET\" }, { \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\", \"rel\": \"up\", \"method\": \"GET\" }, { \"href\": \"https://api-m.paypal.com/v2/payments/captures/3C679366HH908993F/refund\", \"rel\": \"refund\", \"method\": \"POST\" } ], \"create_time\": \"2021-03-19T08:16:01Z\", \"update_time\": \"2021-03-19T08:17:12Z\" } ] } } ], \"links\": [ { \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\", \"rel\": \"self\", \"method\": \"GET\" } ] } Step result A successful request returns the HTTP 200 OK status code with a JSON response body that returns a COMPLETED status. A successfully captured order has the order status as COMPLETED, which means the order was captured successfully. A capture with COMPLETED status is included in the purchase_units[0].payments.captures[0] response parameter. The up HATEOAS link indicates the order associated with this capture. The payment reference is included in the payment_source.pay_upon_invoice.payment_reference response parameter. The buyer needs to enter this value in the reason for transfer (dt. Verwendungszweck) during the bank transfer. 4. Notify Buyer of successNotify the buyer of the successful transaction offline and send the instructions to pay the invoice. Obtain these instructions on a per transaction basis from the Orders API show order details endpoint. The payment reference is included in the payment_source.pay_upon_invoice.payment_reference response parameter. The buyer must enter this value in the reason for transfer (dt. Verwendungszweck) during the bank transfer. The deposit bank information is included in the payment_source.pay_upon_invoice.deposit_bank_details response parameter. CodeSample Requestcurl -v -X GET https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer <Access-Token>\" Sample Response { \"id\": \"5O190127TN364715T\", \"intent\": \"CAPTURE\", \"status\": \"COMPLETED\", \"processing_instruction\": \"ORDER_COMPLETE_ON_PAYMENT_APPROVAL\", \"payment_source\": { \"pay_upon_invoice\": { \"birth_date\": \"1990-01-01\", \"name\": { \"given_name\": \"John\", \"surname\": \"Doe\" }, \"email\": \"[email protected]\", \"phone\": { \"national_number\": \"6912345678\", \"country_code\": \"49\" }, \"billing_address\": { \"address_line_1\": \"Schönhauser Allee 84\", \"admin_area_2\": \"Berlin\", \"postal_code\": \"10439\", \"country_code\": \"DE\" }, \"payment_reference\": \"b8a1525dlYzu6Mn62umI\", \"deposit_bank_details\": { \"bic\": \"DEUTDEFFXXX\", \"bank_name\": \"Deutsche Bank\", \"iban\": \"DE89370400440532013000\", \"account_holder_name\": \"Paypal - Ratepay GmbH - Test Bank Account\" } } }, \"purchase_units\": [ { \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\", \"breakdown\": { \"item_total\": { \"currency_code\": \"EUR\", \"value\": \"81.00\" }, \"tax_total\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" } } }, \"shipping\": { \"name\": { \"full_name\": \"John Doe\" }, \"address\": { \"address_line_1\": \"Taunusanlage 12\", \"admin_area_2\": \"FRANKFURT AM MAIN\", \"postal_code\": \"60325\", \"country_code\": \"DE\" } }, \"items\": [ { \"name\": \"Air Jordan Shoe\", \"category\": \"PHYSICAL_GOODS\", \"unit_amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\" }, \"tax\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" }, \"tax_rate\": \"19.00\", \"quantity\": \"1\" } ], \"payments\": { \"captures\": [ { \"id\": \"826413372K501814R\", \"status\": \"COMPLETED\", \"amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\" }, \"final_capture\": true, \"seller_protection\": { \"status\": \"NOT_ELIGIBLE\" }, \"seller_receivable_breakdown\": { \"gross_amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\" }, \"paypal_fee\": { \"currency_code\": \"EUR\", \"value\": \"3.00\" }, \"net_amount\": { \"currency_code\": \"EUR\", \"value\": \"97.00\" } }, \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"custom_id\": \"MERCHANT_CUSTOM_ID\", \"links\": [ { \"href\": \"https://api-m.paypal.com/v2/payments/captures/3C679366HH908993F\", \"rel\": \"self\", \"method\": \"GET\" }, { \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\", \"rel\": \"up\", \"method\": \"GET\" }, { \"href\": \"https://api-m.paypal.com/v2/payments/captures/3C679366HH908993F/refund\", \"rel\": \"refund\", \"method\": \"POST\" } ], \"create_time\": \"2021-03-19T08:16:01Z\", \"update_time\": \"2021-03-19T08:17:12Z\" } ] } } ], \"links\": [ { \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\", \"rel\": \"self\", \"method\": \"GET\" } ] } Step result A successful request returns the HTTP 200 OK status code with a JSON response body that returns a COMPLETED status. A successfully captured order has the order status as COMPLETED, which means the order was captured successfully. A capture with COMPLETED status is present in the response parameter purchase_units[0].payments.captures[0]. The up HATEOAS link indicates the order associated with this capture. The deposit bank information is present in the payment_source.pay_upon_invoice.deposit_bank_details response parameter. Send an invoice to the buyer and include the payment instructions as received on a per transaction basis pointing out that payment must be made to Ratepay. Display the appropriate error message to the buyerIf Step 1 is unsuccessful, it returns the HTTP 422 UNPROCESSABLE_ENTITY status code with a JSON response body that contains an error code in the issue parameter. Sample request curl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \\ -H \"Content-Type: application/json\" \\ -H \"Authorization: Bearer <Access-Token>\" \\ -H \"PayPal-Request-Id: 7b92603e-77ed-4896-8e78-5dea2050476a\" \\ -d '{ \"intent\": \"CAPTURE\", \"processing_instruction\": \"ORDER_COMPLETE_ON_PAYMENT_APPROVAL\", \"purchase_units\": [ { \"amount\": { \"currency_code\": \"EUR\", \"value\": \"100.00\", \"breakdown\": { \"item_total\": { \"currency_code\": \"EUR\", \"value\": \"81.00\" }, \"tax_total\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" } } }, \"shipping\": { \"name\": { \"full_name\": \"John Doe\" }, \"address\": { \"address_line_1\": \"Taunusanlage 12\", \"admin_area_2\": \"FRANKFURT AM MAIN\", \"postal_code\": \"60325\", \"country_code\": \"DE\" } }, \"items\": [ { \"name\": \"Air Jordan Shoe\", \"category\": \"PHYSICAL_GOODS\", \"unit_amount\": { \"currency_code\": \"EUR\", \"value\": \"81.00\" }, \"tax\": { \"currency_code\": \"EUR\", \"value\": \"19.00\" }, \"tax_rate\": \"19.00\", \"quantity\": \"1\" } ], \"invoice_id\": \"MERCHANT_INVOICE_ID\", \"custom_id\": \"MERCHANT_CUSTOM_ID\" } ], \"payment_source\": { \"pay_upon_invoice\": { \"name\": { \"given_name\": \"John\", \"surname\": \"Doe\" }, \"email\": \"[email protected]\", \"birth_date\": \"1990-01-01\", \"phone\": { \"national_number\": \"6912345678\", \"country_code\": \"49\" }, \"billing_address\": { \"address_line_1\": \"Schönhauser Allee 84\", \"admin_area_2\": \"Berlin\", \"postal_code\": \"10439\", \"country_code\": \"DE\" }, \"experience_context\": { \"locale\": \"en-DE\", \"brand_name\": \"EXAMPLE INC\", \"logo_url\": \"https://example.com/logoUrl.svg\", \"customer_service_instructions\": [ \"Customer service phone is +49 6912345678.\" ] } } } }' Step result An unsuccessful request results in the return status code of HTTP 422 Unprocessable Entity. A JSON response body that contains an error code in the issue parameter and the error description in the description parameter. Sample response { \"name\": \"UNPROCESSABLE_ENTITY\", \"details\": [ { \"issue\": \"PAYMENT_SOURCE_INFO_CANNOT_BE_VERIFIED\", \"description\": \"The combination of the payment_source name, billing address, shipping name and shipping address could not be verified. Please correct this information and try again by creating a new order.\" } ], \"message\": \"The requested action could not be performed, semantically incorrect, or failed business validation.\", \"debug_id\": \"82c4e721e5c58\", \"links\": [ { \"href\": \"https://developer.paypal.com/api/orders/v2/error-messages\", \"rel\": \"information_link\", \"method\": \"GET\" } ] } Duplicate orders When a duplicate order is detected, the Orders API declines the order and returns the following error code and Error Pay Upon Invoice (Rechnungskauf) order with the same payload has already been successfully processed in the last few seconds. To process a new order, please try again in a few seconds. Error codes and error messages Ratepay mandates that you display these error messages to the buyer for the following error code, Error message (English), Error message (German)Error codeError message (English)Error message (German)PAYMENT_SOURCE_INFO_CANNOT_BE_VERIFIEDThe combination of your name and address could not be validated. Please correct your data and try again. You can find further information in the Ratepay Data Privacy Statement or you can contact Ratepay using this contact form.Die Kombination aus Ihrem Namen und Ihrer Anschrift konnte nicht validiert werden. Bitte korrigieren Sie Ihre Daten und versuchen Sie es erneut. Weitere Informationen finden Sie in den Ratepay Datenschutzbestimmungen oder nutzen Sie das Ratepay Kontaktformular.PAYMENT_SOURCE_DECLINED_BY_PROCESSORIt is not possible to use the selected payment method. This decision is based on automated data processing. You can find further information in the Ratepay Data Privacy Statement or you can contact Ratepay using this contact form.Die gewählte Zahlungsart kann nicht genutzt werden. Diese Entscheidung basiert auf einem automatisierten Datenverarbeitungsverfahren. Weitere Informationen finden Sie in den Ratepay Datenschutzbestimmungen oder nutzen Sie das Ratepay Kontaktformular. Test your integration Use these buyer email addresses to simulate the failure scenarios in the PayPal sandbox environment. Error code, Buyer emailError codeBuyer emailPAYMENT_SOURCE_INFO_CANNOT_BE_VERIFIED[email protected]PAYMENT_SOURCE_DECLINED_BY_PROCESSOR[email protected]PAYMENT_SOURCE_CANNOT_BE_USED[email protected]BILLING_ADDRESS_INVALID[email protected]SHIPPING_ADDRESS_INVALID[email protected] Any buyer email not listed in the table will simulate a successful scenario on PayPal sandbox environment.On this pageOn this pageKnow before you code1. Offer Pay upon Invoice on your checkout page2. Create an orderSample requestModify the codeStep ResultStep resultSample response3. Listen to webhooksSample PAYMENT.CAPTURE.COMPLETED webhookSample PAYMENT.CAPTURE.DENIED webhookSample RequestSample ResponseStep result4. Notify Buyer of successCodeSample RequestSample ResponseStep resultDisplay the appropriate error message to the buyerSample requestStep resultSample responseDuplicate ordersError codes and error messagesTest your integration\n\nExample:\n```text\n<script src=\"https://www.paypal.com/sdk/js?client-id=test&components=legal\"></script>\n<div id=\"paypal-legal-container\"></div>\n<script>\n paypal\n .Legal({\n fundingSource: paypal.Legal.FUNDING.PAY_UPON_INVOICE,\n })\n .render(\"#paypal-legal-container\");\n</script>\n```\n\nExample:\n```text\ncurl -v -X POST https://api-m.sandbox.paypal.com/v2/checkout/orders \\\n-H \"Content-Type: application/json\" \\\n-H \"Authorization: Bearer <Access-Token>\" \\\n-H \"PayPal-Request-Id: 7b92603e-77ed-4896-8e78-5dea2050476a\" \\\n-d '{\n \"intent\": \"CAPTURE\",\n \"processing_instruction\": \"ORDER_COMPLETE_ON_PAYMENT_APPROVAL\",\n \"purchase_units\": [\n {\n \"amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"100.00\",\n \"breakdown\": {\n \"item_total\": {\n \"currency_code\": \"EUR\",\n \"value\": \"81.00\"\n },\n \"tax_total\": {\n \"currency_code\": \"EUR\",\n \"value\": \"19.00\"\n }\n }\n },\n \"shipping\": {\n \"name\": {\n \"full_name\": \"John Doe\"\n },\n \"address\": {\n \"address_line_1\": \"Taunusanlage 12\",\n \"admin_area_2\": \"FRANKFURT AM MAIN\",\n \"postal_code\": \"60325\",\n \"country_code\": \"DE\"\n }\n },\n \"items\": [\n {\n \"name\": \"Air Jordan Shoe\",\n \"category\": \"PHYSICAL_GOODS\",\n \"unit_amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"81.00\"\n },\n \"tax\": {\n \"currency_code\": \"EUR\",\n \"value\": \"19.00\"\n },\n \"tax_rate\": \"19.00\",\n \"quantity\": \"1\"\n }\n ],\n \"invoice_id\": \"MERCHANT_INVOICE_ID\",\n \"custom_id\": \"MERCHANT_CUSTOM_ID\"\n }\n ],\n \"payment_source\": {\n \"pay_upon_invoice\": {\n \"name\": {\n \"given_name\": \"John\",\n \"surname\": \"Doe\"\n },\n \"email\": \"[email protected]\",\n \"birth_date\": \"1990-01-01\",\n \"phone\": {\n \"national_number\": \"6912345678\",\n \"country_code\": \"49\"\n },\n \"billing_address\": {\n \"address_line_1\": \"Schönhauser Allee 84\",\n \"admin_area_2\": \"Berlin\",\n \"postal_code\": \"10439\",\n \"country_code\": \"DE\"\n },\n \"experience_context\": {\n \"locale\": \"en-DE\",\n \"brand_name\": \"EXAMPLE INC\",\n \"logo_url\": \"https://example.com/logoUrl.svg\",\n \"customer_service_instructions\": [\n \"Customer service phone is +49 6912345678.\"\n ]\n }\n }\n }\n}'\n```\n\nExample:\n```text\n{\n \"id\": \"5O190127TN364715T\",\n \"status\": \"PENDING_APPROVAL\",\n \"payment_source\": {\n \"pay_upon_invoice\": {\n \"birth_date\": \"1990-01-01\",\n \"name\": {\n \"given_name\": \"John\",\n \"surname\": \"Doe\"\n },\n \"email\": \"[email protected]\",\n \"phone\": {\n \"national_number\": \"6912345678\",\n \"country_code\": \"49\"\n },\n \"billing_address\": {\n \"address_line_1\": \"Schönhauser Allee 84\",\n \"admin_area_2\": \"Berlin\",\n \"postal_code\": \"10439\",\n \"country_code\": \"DE\"\n }\n }\n },\n \"links\": [\n {\n \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\",\n \"rel\": \"self\",\n \"method\": \"GET\"\n }\n ]\n}\n```\n\nExample:\n```text\n{\n \"id\": \"WH-6WA12701B00483532-15737896PW730511B\",\n \"event_version\": \"1.0\",\n \"create_time\": \"2021-03-19T08:07:57.563Z\",\n \"resource_type\": \"capture\",\n \"resource_version\": \"2.0\",\n \"event_type\": \"PAYMENT.CAPTURE.COMPLETED\",\n \"summary\": \"Payment completed for EUR 1.0 EUR\",\n \"resource\": {\n \"id\": \"84745544P6340640G\",\n \"status\": \"COMPLETED\",\n \"amount\": {\n \"value\": \"100.00\",\n \"currency_code\": \"EUR\"\n },\n \"seller_receivable_breakdown\": {\n \"paypal_fee\": {\n \"value\": \"3.00\",\n \"currency_code\": \"EUR\"\n },\n \"gross_amount\": {\n \"value\": \"100.00\",\n \"currency_code\": \"EUR\"\n },\n \"net_amount\": {\n \"value\": \"97.00\",\n \"currency_code\": \"EUR\"\n }\n },\n \"custom_id\": \"MERCHANT_CUSTOM_ID\",\n \"invoice_id\": \"MERCHANT_INVOICE_ID\",\n \"seller_protection\": {\n \"status\": \"NOT_ELIGIBLE\"\n },\n \"supplementary_data\": {\n \"related_ids\": {\n \"order_id\": \"5O190127TN364715T\"\n }\n },\n \"update_time\": \"2021-03-19T08:07:40Z\",\n \"create_time\": \"2021-03-19T08:06:45Z\",\n \"final_capture\": true,\n \"links\": [\n {\n \"method\": \"GET\",\n \"rel\": \"self\",\n \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R\"\n },\n {\n \"method\": \"POST\",\n \"rel\": \"refund\",\n \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R/refund\"\n },\n {\n \"method\": \"GET\",\n \"rel\": \"up\",\n \"href\": \"https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T\"\n }\n ]\n },\n \"links\": [\n {\n \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-6WA12701B00483532-15737896PW730511B\",\n \"rel\": \"self\",\n \"method\": \"GET\"\n },\n {\n \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-6WA12701B00483532-15737896PW730511B/resend\",\n \"rel\": \"resend\",\n \"method\": \"POST\"\n }\n ]\n}\n```\n\nExample:\n```text\n{\n \"id\": \"WH-11M70257FM3776948-8B478027S4286991F\",\n \"event_version\": \"1.0\",\n \"create_time\": \"2021-03-19T08:17:29.782Z\",\n \"resource_type\": \"capture\",\n \"resource_version\": \"2.0\",\n \"event_type\": \"PAYMENT.CAPTURE.DENIED\",\n \"summary\": \"Payment denied for EUR 100.0 EUR\",\n \"resource\": {\n \"id\": \"826413372K501814R\",\n \"status\": \"DECLINED\",\n \"amount\": {\n \"value\": \"100.00\",\n \"currency_code\": \"EUR\"\n },\n \"seller_receivable_breakdown\": {\n \"gross_amount\": {\n \"value\": \"100.00\",\n \"currency_code\": \"EUR\"\n },\n \"net_amount\": {\n \"value\": \"100.00\",\n \"currency_code\": \"EUR\"\n }\n },\n \"custom_id\": \"MERCHANT_CUSTOM_ID\",\n \"invoice_id\": \"MERCHANT_INVOICE_ID\",\n \"seller_protection\": {\n \"status\": \"NOT_ELIGIBLE\"\n },\n \"supplementary_data\": {\n \"related_ids\": {\n \"order_id\": \"5O190127TN364715T\"\n }\n },\n \"update_time\": \"2021-03-19T08:17:12Z\",\n \"create_time\": \"2021-03-19T08:16:01Z\",\n \"final_capture\": true,\n \"links\": [\n {\n \"method\": \"GET\",\n \"rel\": \"self\",\n \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R\"\n },\n {\n \"method\": \"POST\",\n \"rel\": \"refund\",\n \"href\": \"https://api-m.sandbox.paypal.com/v2/payments/captures/826413372K501814R/refund\"\n },\n {\n \"method\": \"GET\",\n \"rel\": \"up\",\n \"href\": \"https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T\"\n }\n ]\n },\n \"links\": [\n {\n \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-11M70257FM3776948-8B478027S4286991F\",\n \"rel\": \"self\",\n \"method\": \"GET\"\n },\n {\n \"href\": \"https://api-m.sandbox.paypal.com/v1/notifications/webhooks-events/WH-11M70257FM3776948-8B478027S4286991F/resend\",\n \"rel\": \"resend\",\n \"method\": \"POST\"\n }\n ]\n}\n```\n\nExample:\n```text\n{\n \"id\": \"WH-COC11055RA711503B-4YM959094A144403T\",\n \"create_time\": \"2021-03-19T08:17:29.782Z\",\n \"event_type\": \"CHECKOUT.PAYMENT-APPROVAL.REVERSED\",\n \"summary\": \"A payment has been reversed after approval.\",\n \"resource\": {\n \"order_id\": \"5O190127TN364715T\",\n \"purchase_units\": [\n {\n \"custom_id\": \"MERCHANT_CUSTOM_ID\",\n \"invoice_id\": \"MERCHANT_INVOICE_ID\"\n }\n ],\n \"payment_source\": {\n \"pay_upon_invoice\": {\n \"birth_date\": \"1990-01-01\",\n \"name\": {\n \"given_name\": \"John\",\n \"surname\": \"Doe\"\n },\n \"email\": \"[email protected]\",\n \"phone\": {\n \"national_number\": \"6912345678\",\n \"country_code\": \"49\"\n },\n \"billing_address\": {\n \"address_line_1\": \"Schönhauser Allee 84\",\n \"admin_area_2\": \"Berlin\",\n \"postal_code\": \"10439\",\n \"country_code\": \"DE\"\n }\n }\n }\n },\n \"event_version\": \"1.0\"\n}\n```\n\nExample:\n```text\ncurl -v -X GET https://api-m.sandbox.paypal.com/v2/checkout/orders/5O190127TN364715T \\\n -H \"Content-Type: application/json\" \\\n -H \"Authorization: Bearer <Access-Token>\"\n```\n\nExample:\n```text\n{\n \"id\": \"5O190127TN364715T\",\n \"intent\": \"CAPTURE\",\n \"status\": \"COMPLETED\",\n \"processing_instruction\": \"ORDER_COMPLETE_ON_PAYMENT_APPROVAL\",\n \"payment_source\": {\n \"pay_upon_invoice\": {\n \"birth_date\": \"1990-01-01\",\n \"name\": {\n \"given_name\": \"John\",\n \"surname\": \"Doe\"\n },\n \"email\": \"[email protected]\",\n \"phone\": {\n \"national_number\": \"6912345678\",\n \"country_code\": \"49\"\n },\n \"billing_address\": {\n \"address_line_1\": \"Schönhauser Allee 84\",\n \"admin_area_2\": \"Berlin\",\n \"postal_code\": \"10439\",\n \"country_code\": \"DE\"\n },\n \"payment_reference\": \"b8a1525dlYzu6Mn62umI\",\n \"deposit_bank_details\": {\n \"bic\": \"DEUTDEFFXXX\",\n \"bank_name\": \"Deutsche Bank\",\n \"iban\": \"DE89370400440532013000\",\n \"account_holder_name\": \"Paypal - Ratepay GmbH - Test Bank Account\"\n }\n }\n },\n \"purchase_units\": [\n {\n \"invoice_id\": \"MERCHANT_INVOICE_ID\",\n \"custom_id\": \"MERCHANT_CUSTOM_ID\",\n \"amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"100.00\",\n \"breakdown\": {\n \"item_total\": {\n \"currency_code\": \"EUR\",\n \"value\": \"81.00\"\n },\n \"tax_total\": {\n \"currency_code\": \"EUR\",\n \"value\": \"19.00\"\n }\n }\n },\n \"shipping\": {\n \"name\": {\n \"full_name\": \"John Doe\"\n },\n \"address\": {\n \"address_line_1\": \"Taunusanlage 12\",\n \"admin_area_2\": \"FRANKFURT AM MAIN\",\n \"postal_code\": \"60325\",\n \"country_code\": \"DE\"\n }\n },\n \"items\": [\n {\n \"name\": \"Air Jordan Shoe\",\n \"category\": \"PHYSICAL_GOODS\",\n \"unit_amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"100.00\"\n },\n \"tax\": {\n \"currency_code\": \"EUR\",\n \"value\": \"19.00\"\n },\n \"tax_rate\": \"19.00\",\n \"quantity\": \"1\"\n }\n ],\n \"payments\": {\n \"captures\": [\n {\n \"id\": \"826413372K501814R\",\n \"status\": \"COMPLETED\",\n \"amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"100.00\"\n },\n \"final_capture\": true,\n \"seller_protection\": {\n \"status\": \"NOT_ELIGIBLE\"\n },\n \"seller_receivable_breakdown\": {\n \"gross_amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"100.00\"\n },\n \"paypal_fee\": {\n \"currency_code\": \"EUR\",\n \"value\": \"3.00\"\n },\n \"net_amount\": {\n \"currency_code\": \"EUR\",\n \"value\": \"97.00\"\n }\n },\n \"invoice_id\": \"MERCHANT_INVOICE_ID\",\n \"custom_id\": \"MERCHANT_CUSTOM_ID\",\n \"links\": [\n {\n \"href\": \"https://api-m.paypal.com/v2/payments/captures/3C679366HH908993F\",\n \"rel\": \"self\",\n \"method\": \"GET\"\n },\n {\n \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\",\n \"rel\": \"up\",\n \"method\": \"GET\"\n },\n {\n \"href\": \"https://api-m.paypal.com/v2/payments/captures/3C679366HH908993F/refund\",\n \"rel\": \"refund\",\n \"method\": \"POST\"\n }\n ],\n \"create_time\": \"2021-03-19T08:16:01Z\",\n \"update_time\": \"2021-03-19T08:17:12Z\"\n }\n ]\n }\n }\n ],\n \"links\": [\n {\n \"href\": \"https://api-m.paypal.com/v2/checkout/orders/5O190127TN364715T\",\n \"rel\": \"self\",\n \"method\": \"GET\"\n }\n ]\n}\n```\n\nExample:\n```text\n{\n \"name\": \"UNPROCESSABLE_ENTITY\",\n \"details\": [\n {\n \"issue\": \"PAYMENT_SOURCE_INFO_CANNOT_BE_VERIFIED\",\n \"description\": \"The combination of the payment_source name, billing address, shipping name and shipping address could not be verified. Please correct this information and try again by creating a new order.\"\n }\n ],\n \"message\": \"The requested action could not be performed, semantically incorrect, or failed business validation.\",\n \"debug_id\": \"82c4e721e5c58\",\n \"links\": [\n {\n \"href\": \"https://developer.paypal.com/api/orders/v2/error-messages\",\n \"rel\": \"information_link\",\n \"method\": \"GET\"\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:45.660Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":9,"totalLines":499,"estimatedTokens":9411}}170{"id":"doc-customize_the_checkout_experience_paypal_develop-2178e64b","source":"documentation","title":"Customize the Checkout experience | PayPal Developer","url":"https://developer.paypal.com/platforms/checkout/standard/customize/","text":"Copy for LLMView as MarkdownCustomize the Checkout experienceLast 20, 2026DOCSCURRENTSTANDARDExtend your Checkout integration with these features. We recommend starting with showing a cancellation page and validating user input. Features Feature, DescriptionFeatureDescriptionApp SwitchStreamline checkout by helping buyers finish transactions in the PayPal app.Authorize payment and capture funds laterChange your checkout integration from a one-step payment solution to a two-step, authorize and capture later solution so you can complete business tasks, like verifying inventory, before finalizing the transaction.Buttons style guideCustomize the appearance of your payment buttons.Contact moduleHelp payers add or modify contact information during checkout.Display funding sourceAs a best practice, show your payer the funding source they used for their purchase.Display PayPal buttons with other payment methodsProvide a clean user interface when you present PayPal and other funding sources on your site.Handle errorsEnsure errors returned are handled gracefully in the payer's experience.Handle funding failuresAction to take if a payer's funding source fails.Messaging with buttonsRender a message with your payment buttons.Multi-seller paymentsCheck out from multiple sellers on your platform in one purchase.Overcharge handlingReapprove a transaction if a buyer was charged more than the amount they approved.Pass buyer identifierStreamline authentication by passing your payer's email address to prefill their login in PayPal.Pass line-item detailsPass item descriptions to help payers verify purchase details in PayPal.Pay now or continueDetermine whether or not your payer returns to your website to complete the checkout flow.PayPal Checkout with single-page applicationsThis guide is for websites that use a library or framework, like React, Vue, or Angular.Recurring payments moduleImplement frictionless transactions for subscriptions, trials, auto-reloads, and other recurring payments.Shipping moduleOffer shipping options to your payer.Show a cancellation pageGive payers clear confirmation when they cancel during the checkout flow.Standalone payment buttonsRender individual payment buttons for each supported payment method.Update order detailsAdjust the order and transaction details during the checkout process.Validate user input on your pageValidate web forms before payers submit data for checkout.On this pageOn this pageFeatures\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:45.663Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":618}}171{"id":"doc-sale-799dcdeb","source":"documentation","title":"Sale","url":"https://developer.paypal.com/braintree/docs/reference/request/transaction/sale/php","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '10.00',\n 'paymentMethodNonce' => $nonceFromTheClient,\n 'deviceData' => $deviceDataFromTheClient,\n 'options' => [\n 'submitForSettlement' => True\n ]\n]);\n\nif ($result->success) {\n // See $result->transaction for details\n} else {\n // Handle errors\n}\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '100.00',\n 'orderId' => 'order id',\n 'merchantAccountId' => 'a_merchant_account_id',\n 'paymentMethodNonce' => $nonceFromTheClient,\n 'deviceData' => $deviceDataFromTheClient,\n 'customer' => [\n 'firstName' => 'Drew',\n 'lastName' => 'Smith',\n 'company' => 'Braintree',\n 'phone' => '312-555-1234',\n 'fax' => '312-555-1235',\n 'website' => 'http://www.example.com',\n 'email' => 'drew@example.com'\n ],\n 'billing' => [\n 'firstName' => 'Paul',\n 'lastName' => 'Smith',\n 'company' => 'Braintree',\n 'streetAddress' => '1 E Main St',\n 'extendedAddress' => 'Suite 403',\n 'locality' => 'Chicago',\n 'region' => 'IL',\n 'postalCode' => '60622',\n 'countryCodeAlpha2' => 'US'\n ],\n 'shipping' => [\n 'firstName' => 'Jen',\n 'lastName' => 'Smith',\n 'company' => 'Braintree',\n 'streetAddress' => '1 E 1st St',\n 'extendedAddress' => 'Suite 403',\n 'locality' => 'Bartlett',\n 'region' => 'IL',\n 'postalCode' => '60103',\n 'countryCodeAlpha2' => 'US'\n ],\n 'options' => [\n 'submitForSettlement' => true\n ]\n]);\n```\n\nExample:\n```php\n$result->success; // true\n$result->transaction->status; // e.g. 'submitted_for_settlement'\n$result->transaction->type; // e.g. 'credit'\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '10.00',\n 'paymentMethodNonce' => nonceFromTheClient,\n 'customerId' => 'the_customer_id',\n 'options' => [\n 'storeInVaultOnSuccess' => true,\n ]\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '10.00',\n 'paymentMethodNonce' => nonceFromTheClient,\n 'customer' => [\n 'id' => 'a_customer_id'\n ],\n 'options' => [\n 'storeInVaultOnSuccess' => true,\n ]\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'paymentMethodToken' => 'the_payment_method_token',\n 'amount' => '100.00'\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'customerId' => 'the_customer_id',\n 'amount' => '100.00'\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'paymentMethodToken' => 'the_payment_method_token',\n 'paymentMethodNonce' => cvvOnlyNonceFromClient,\n 'amount' => '100.00'\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '100.00',\n 'merchantAccountId' => 'gbp_merchant_account',\n 'paymentMethodNonce' => nonceFromTheClient\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'customerId' => 'the_customer_id',\n 'amount' => '100.00',\n 'billingAddressId' => 'AA',\n 'shippingAddressId' => 'AB'\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '100.00',\n 'paymentMethodNonce' => nonceFromTheClient,\n 'customFields' => [\n 'custom_field_one' => 'custom value',\n 'custom_field_two' => 'another custom value'\n ]\n]);\n\n$result->transaction->customFields['custom_field_one']\n# 'custom value'\n\n$result->transaction->customFields['custom_field_two']\n# 'another custom value'\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '10.00',\n 'paymentMethodNonce' => nonceFromTheClient,\n 'descriptor' => [\n 'name' => 'company*my product',\n 'phone' => '3125551212',\n 'url' => 'company.com'\n ]\n]);\n$result->transaction->descriptor->name\n# 'company*my product'\n\n$result->transaction->descriptor->phone\n# '3125551212'\n```\n\nExample:\n```html\nBT *MYDESCRIPTOR123abc\n```\n\nExample:\n```html\nBT *MYDESCRIPTORISLONG\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '100.00',\n 'merchantAccountId' => 'blue_ladders_store',\n 'paymentMethodNonce' => nonceFromTheClient,\n 'options' => [\n 'submitForSettlement' => true,\n 'holdInEscrow' => true,\n ],\n 'serviceFeeAmount' => \"10.00\"\n]);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:45.738Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":15,"totalLines":203,"estimatedTokens":1154}}172{"id":"doc-error_codes_paypal_developer-1362fcd2","source":"documentation","title":"Error codes | PayPal Developer","url":"https://developer.paypal.com/docs/checkout/apm/reference/error-codes/","text":"Copy for LLMView as MarkdownError codesLast 4, 2026DOCSCURRENTThe following error codes can be returned in the cancel URL the merchant receives. The format for the error codes returned in the cancel URL /checkout/cancel?errorcode=internal_server_error&token=XXX. query parameters in the cancel URL are not case sensitive. Error code, DescriptionError codeDescriptionorder_not_confirmedThe order hasn't been validated. You might see this error when the order status is not in the PAYER_ACTION_REQUIRED state or when a payment method hasn't been attached to the order. Call the Confirm payment method endpoint.system_config_errorAn authentication failure has occurred or the request is invalid.invalid_payment_methodAn unexpected payment method is attached to the order. This can happen when the wrong order ID is attached to a payment method. Confirm the order ID is correct.payee_not_enabled_for_payment_methodYou aren't authorized to accept this payment method.payment_method_change_not_allowedRelated to idempotency check. Make sure the following aren't missing or PayPal-Request-Id, the payment ID, and the payment payload.processing_errorRelated to idempotency check. The PayPal-Request-Id and payload match an order, but the order is no longer in the PENDING state.min_amount_required_by_payment_methodThe transaction amount doesn't meet the minimum transaction requirement of the payment method.payment_method_errorThe transaction initiation was declined by the payment method.declined_by_payment_methodThe transaction initiation was declined by the payment method.currency_not_supported_by_payment_methodThe currency specified isn't supported by the payment method.country_not_supported_by_payment_methodThe country specified isn't supported by the payment method.invalid_expiry_dateExpiry date should be a date in future and within the threshold for the payment source.unsupported_processing_instructionThe specified processing_instruction isn't supported for the given payment_source. Please refer to processing_instruction for the list of payment_source options that you can use for this value.order_complete_on_payment_approvalA processing_instruction of ORDER_COMPLETE_ON_PAYMENT_APPROVAL is required for the specified payment_source.order_completion_in_progressThe order was created with a processing_instruction of ORDER_COMPLETE_ON_PAYMENT_APPROVAL. The customer has approved the payment and PayPal is still in the process of capturing the order on your behalf as instructed. Please try your request again.internal_server_errorThis error /description, database connection issues, timeouts, and unknown errors.not_enabled_for_payment_sourceThe API caller or payee can't process the selected payment source. If you have already completed the steps to authorize the API caller or payee, allow 2 business days for PayPal to complete the setup. If you continue to receive this error, contact your Account Manager or check the request status.payment_errorAll other errors.On this pageOn this pageNo Headings\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:45.815Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":758}}173{"id":"doc-gitlab_duo_data_usage_gitlab_docs-4d1bb0f9","source":"documentation","title":"GitLab Duo data usage | GitLab Docs","url":"https://docs.gitlab.com/user/gitlab_duo/data_usage/","text":"GitLab Duo Agent PlatformGitLab Duo Non-AgenticData usagePrompt guardrailsGitLab Docs /GitLab Duo /Data usageHelp us learn about your current experience with the documentation. Take the survey.GitLab Duo data usageGitLab Duo uses generative AI to help increase your velocity and make you more productive. Each AI-native feature operates independently and is not required for other features to function.GitLab uses the right large language models (LLMs) for specific tasks. These LLMs are Anthropic Claude, Fireworks AI-hosted Codestral, Gemini Enterprise Agent Platform models, and OpenAI models.Progressive enhancementGitLab Duo AI-native features are designed as a progressive enhancement to existing GitLab features across the DevSecOps platform. These features are designed to fail gracefully and should not prevent the core functionality of the underlying feature. You should note each feature is subject to its expected functionality as defined by the relevant feature support policy.Stability and performanceGitLab Duo AI-native features are in a variety of feature support levels. Due to the nature of these features, there may be high demand for usage which may cause degraded performance or unexpected downtime of the feature. We have built these features to gracefully degrade and have controls in place to allow us to mitigate abuse or misuse. GitLab may disable beta and experimental features for any or all customers at any time at our discretion.Data privacyGitLab Duo AI-native features are powered by generative AI models. GitLab processes any personal data in accordance with the GitLab Privacy Statement.For a list of AI model sub-processors GitLab uses to provide these features, see third-party sub-processors.Data retentionModel sub-processorsFor GitLab Duo requests, GitLab has a zero data retention policy with Fireworks AI. Fireworks AI discards model input and output data immediately after the output is provided and does not store input and output data for abuse monitoring. The exception to this policy is when prompt caching is turned on for GitLab Duo Code Suggestions and GitLab Duo Agentic Chat. For OpenAI models, you cannot turn off prompt caching.Certain Anthropic and OpenAI models, including when hosted on Amazon Bedrock and Gemini Enterprise Agent Platform, are subject to limited vendor-side data retention. For more information about these models, see supported AI models for GitLab Duo Agent Platform.GitLabGitLab Duo Chat and GitLab Duo Agent Platform retain chat and workflow history to help you return quickly to previously discussed topics. You can delete chats in the GitLab Duo Chat interface. On GitLab.com, GitLab retains chat and workflow history for anti-abuse purposes. GitLab does not otherwise retain input and output data unless customers provide consent through a GitLab Support ticket.When you enable expanded logging for GitLab Duo Agent Platform, GitLab retains trace data. Logging information related to AI features is separate from any zero data retention policy with GitLab AI model sub-processors. For more information, see GitLab log system.Model trainingGitLab does not train generative AI models.All GitLab AI model sub-processors are restricted from using model input and output to train models. These sub-processors are under data protection agreements with GitLab that prohibit the use of customer content for their own purposes, except to perform their independent legal obligations.TelemetryGitLab Duo collects aggregated or de-identified first-party usage data through a Snowplow collector. This usage data includes the following of unique usersNumber of unique instancesPrompt and suffix lengthsModel usedStatus code responsesAPI responses timesCode Suggestions also the suggestion was in (for example, Python)Editor being used (for example, VS Code)Number of suggestions shown, accepted, rejected, or that had errorsDuration of time that a suggestion was shownGitLab Model Context Protocol serverThe following information applies to GitLab Model Context Protocol (MCP) server usage in GitLab Self-Managed instances.GitLab does not transmit, store, retain, or process any data when the GitLab MCP server is used. All communication occurs directly between the MCP client and the GitLab MCP server in your environment.Repository data and metadata are not sent to GitLab.You control which MCP clients connect to your instance. Each client’s own privacy and data retention policies apply.Model accuracy and qualityGenerative AI may produce unexpected results that may failed pipelinesInsecure codeOffensive or insensitiveOut of date informationGitLab is actively iterating on all our AI-assisted capabilities to improve the quality of the generated content. We improve the quality through prompt engineering, evaluating new AI/ML models to power these features, and through novel heuristics built into these features directly.Secret detection and redactionHistoryIntroduced in GitLab 17.9.GitLab Duo includes secret detection and redaction during flow execution. Depending on the scenario, GitLab Duo automatically detects and removes sensitive information like API keys, credentials, and tokens from your code before processing it with large language models.Your code goes through a pre-scan security workflow when using GitLab code is scanned for sensitive information using Gitleaks.Any detected secrets are automatically removed from the request.Secret scanning runs in the following completion context transformation (before the context is sent to AI)AI context transformationWorkflow tool resultsAgentic Chat user inputGit command loggingCLI config loggingSecret scanning does not occur when you interact with GitLab Duo Chat through the web interface.Exception: Secret false positive detectionSecret false positive detection is an opt-in feature that sends information about the vulnerability, including code context surrounding detected secrets, to LLMs for analysis. This is a deliberate exception to the secret detection and redaction behavior.Because this feature is opt-in, you must explicitly enable it at both the group and project level before any vulnerability data is sent to LLMs. Review your organization’s data policies before enabling this feature.Share group usage data with GitLabHistoryIntroduced in GitLab 18.9.1.To help improve service quality, you can share usage data about GitLab Duo Agent Platform features with GitLab.After you turn on data collection, AI interactions from all projects and subgroups in your namespace are logged with GitLab. This data is used exclusively for service improvement and debugging, and not for training AI models.You can also turn on usage data collection for an GitLab 18.9.1 or later.Have the Owner role for a top-level group.On GitLab.com, your group must have GitLab Duo enabled.To turn on data collection for your the top bar, select Search or go to and find your group.In the left sidebar, select Settings > GitLab Duo.Select Change configuration.Under Data collection, select the Collect usage data checkbox.Select Save changes.Agent Platform usage dataWhen you turn on data collection, the following data is prompt and response text from interactions with GitLab Duo.Session context, including sessions that were ongoing at the time the setting is enabled.Model metadata (model version, token counts, latency).Tool calls and their results.Session IDs to correlate with user feedback.The following information is not included in logs, unless users include it in their own IDs or usernames.Email addresses or personal identifiers.Project or namespace identifiers.GitLab does not remove identifiers that users have included in their prompt.Prompt cachingPrompt caching improves latency by avoiding the reprocessing of cached prompt and input data. When you turn on prompt caching, the model vendor temporarily stores prompt data in memory. The cached data is never logged to any persistent storage.For both Agent Platform features that use the prompt registry and Code Suggestions, token caching is automatically turned on for supported models.Turn off prompt cachingBy default, prompt caching is turned on. You can turn prompt caching off for a top-level group or an instance.For a top-level Owner role for the top-level group.In the top bar, select Search or go to and find your group.In the left sidebar, select Settings > GitLab Duo.Select Change configuration.In the Data and privacy section, under Prompt cache, clear the Turn on prompt caching checkbox.Select Save changes.For an access.In the upper-right corner, select Admin.In the left sidebar, select GitLab Duo.Select Change configuration.In the Data and privacy section, under Prompt cache, clear the Turn on prompt caching checkbox.Select Save changes.Progressive enhancementStability and performanceData privacyData retentionModel sub-processorsGitLabModel trainingTelemetryGitLab Model Context Protocol serverModel accuracy and qualitySecret detection and false positive detectionShare group usage data with GitLabAgent Platform usage dataPrompt cachingTurn off prompt caching\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:04.539Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":2274}}174{"id":"doc-solution_components_gitlab_docs-1ba28a84","source":"documentation","title":"Solution Components | GitLab Docs","url":"https://docs.gitlab.com/solutions/components/","text":"CloudCoding Languages and FrameworksIntegrationsSolution ComponentsDevSecOps workflow for mobile appsGitLab Application Security Workflow Integrated with SnykChange management with ServiceNowJira VSA IntegrationJira DORA IntegrationSecret DetectionOSS License CheckSecurity Metrics and KPIsDuo MetricsDuo WorkflowSeparations of Duties GuideGitLab Docs /Solutions /Solution ComponentsHelp us learn about your current experience with the documentation. Take the survey.Solution ComponentsThis documentation section covers a variety of Solution components developed and provided by GitLab. To download and run these solution components, request an invitation code from your account team.The use of any Solution component is subject to the GitLab Subscription Agreement (the “Agreement”) and constitutes Free Software as defined within the Agreement.DevSecOps WorkflowGitLab Solution to provide end to end DevSecOps workflow.Mobile AppsDuo Adoption MetricsGitLab Solution to provide metrics on Duo Adoption.Duo Adoption MetricsIntegrated DevSecOpsGitLab Solution to provide an integrated end to end DevSecOps workflow.Secure Software Development SASTChange Control Use CasesGitLab Solution Packages to provide rules and policies to enforce standards and application security tests.Secret detectionOSS License CheckMetrics and KPIsGitLab Metrics and KPI Dashboard and SolutionSecurity Metrics and KPIs DashboardAutomatically sync Jira incidents to GitLab to unlock DORA metrics tracking. Real-time replication enables Change Failure Rate and Time to Restore Service measurement.Jira to GitLab DORA IntegrationAutomatically sync Jira issues to GitLab to unlock VSA metrics tracking. Real-time replication enables Lead Time, Issues Created, and Issues Closed measurement.Jira to GitLab VSA IntegrationGenAI and Data ScienceAgentic Coding Style GuideCompliance and Best PracticesGuide on Separation of DutiesDevSecOps WorkflowDuo Adoption MetricsIntegrated DevSecOpsBy Use CasesMetrics and KPIsGenAI and Data ScienceCompliance and Best Practices\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:04.547Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":513}}175{"id":"doc-validate_gitlab_ci_cd_configuration_gitlab_docs-709fa618","source":"documentation","title":"Validate GitLab CI/CD configuration | GitLab Docs","url":"https://docs.gitlab.com/ci/yaml/lint/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationGetting startedTutorialsCI/CD YAML syntax referenceOptimize your YAML filesValidate syntaxPipeline editorArtifacts reportsInclude examplesNeedsWorkflow examplesCI/CD expressionsFunctionsDeprecated keywordsRunnersPipelinesJobsCI/CD componentsCI/CD inputsCI/CD variablesPipeline securityGitLab Secrets ManagerExternal secretsDebuggingAuto DevOpsTestingCI/CD sustainabilityGoogle Cloud integrationMigrate to GitLab CI/CDExternal repository integrationsMobile DevOpsSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Use CI/CD to build your … /CI/CD YAML syntax refere… /Validate syntaxHelp us learn about your current experience with the documentation. Take the survey.Validate GitLab CI/CD , Premium, , GitLab Self-Managed, GitLab DedicatedUse the CI Lint tool to check the validity of GitLab CI/CD configuration. You can validate the syntax from a .gitlab-ci.yml file or any other sample CI/CD configuration. This tool checks for syntax and logic errors, and can simulate pipeline creation to try to find more complicated configuration problems.If you use the pipeline editor, it verifies configuration syntax automatically.Alternatively, you can validate CI/CD configuration GitLab for VS Code extensionThe GitLab CLI (glab)The CI lint API endpointCheck CI/CD syntaxThe CI lint tool checks the syntax of GitLab CI/CD configuration, including configuration added with the includes keyword.To check CI/CD configuration with the CI lint the top bar, select Search or go to and find your project.In the left sidebar, select Build > Pipeline editor.Select the Validate tab.Select Lint CI/CD sample.Paste a copy of the CI/CD configuration you want to check into the text box.Select Validate.Simulate a pipelineYou can simulate the creation of a GitLab CI/CD pipeline to find more complicated issues, including problems with needs and rules configuration. A simulation runs as a Git push event on the default branch.Prerequisites:You must have permissions to create pipelines on this branch to validate with a simulation.To simulate a the top bar, select Search or go to and find your project.In the left sidebar, select Build > Pipeline editor.Select the Validate tab.Select Lint CI/CD sample.Paste a copy of the CI/CD configuration you want to check into the text box.Select Simulate pipeline creation for the default branch.Select Validate.Check CI/CD syntaxSimulate a pipeline\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:04.576Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":683}}176{"id":"doc-gpt_4o_mini_transcribe_model_openai_api-8eb5d9de","source":"documentation","title":"GPT-4o mini Transcribe Model | OpenAI API","url":"https://developers.openai.com/api/docs/models/gpt-4o-mini-transcribe","text":"For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.\n\nChatGPT Home API Codex Docs Guides, concepts, and product docs for Codex Use cases Example workflows and tasks teams can take on with ChatGPT or Codex Docs Use cases Resources ChatGPT Plugins Extend ChatGPT and Codex Workspace Agents Trigger published ChatGPT workspace agents Commerce Build commerce flows in ChatGPT Ads Publish and measure ads in ChatGPT Resources Showcase Demo apps to get inspired Blog Learnings and experiences from developers Cookbook Notebook examples for building with OpenAI models Learn Docs, videos, and demo apps for building with OpenAI Community Programs, meetups, and support for builders Start searching API Dashboard Try ChatGPT\n\nOverview Models Agents Tools Voice & Audio Production API reference\n\nSearch the API docs Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching\n\nPrimary navigation API Codex ChatGPT Docs Use cases Resources Resources Search docsSuggestedresponses createreasoning_effortrealtimeprompt caching Overview Models Agents Tools Voice & Audio Production API reference OverviewModelsAgentsToolsVoice & AudioProductionAPI referenceDocs sectionModels Home Get started Quickstart Using GPT-5.6 Key concepts Core concepts Responses API Conversation state Background mode Streaming WebSocket mode Multi-agent Webhooks File inputs Compaction Counting tokens SDKs and CLI OpenAI SDK OpenAI CLI Resources Changelog Deprecations Supported countries OpenAI Crawlers Terms and policies Legacy APIs Agent Builder Overview Migration guide Node reference Safety in building agents Evals Getting started Working with evals Prompt optimizer External models Best practices Graders Fine-tuning Optimization cycle Supervised fine-tuning Vision fine-tuning Direct preference optimization Reinforcement fine-tuning RFT use cases Best practices Assistants API Migration guide Deep dive Tools Model catalog Choose a model Pricing Model selection Text and code Text generation Code generation Structured output Prompting Overview Prompt engineering Citation formatting Migration guide Prompt generation Frontend prompting Reasoning Reasoning models Reasoning best practices Images and video Images and vision Image generation Video generation Realtime and audio Audio and speech Overview Voice agents Specialized models Deep research Embeddings Moderation Overview Agents SDK Quickstart Agent definitions Models and providers Running agents Sandbox agents Orchestration Guardrails Results and state Integrations and observability Evaluate agent workflows ChatKit Overview Customize Widgets Actions Advanced integrations Overview Function calling Search and retrieval Web search File search Retrieval Connect tools and data MCP and Connectors Secure MCP Tunnel Build tool workflows Skills Tool search Programmatic tool calling Computer and code Shell Computer use Apply Patch Local shell Code interpreter Media Image generation Overview Get started Voice agents Live translation Realtime prompting guide Audio Audio and speech Transcription File transcription Realtime transcription Speech generation Connection methods WebRTC WebSocket SIP Sessions and operations Managing conversations Voice activity detection Realtime with tools Webhooks and server-side controls Managing costs Go live Production best practices Deployment checklist Performance and quality Latency optimization Predicted Outputs Fast mode Accuracy optimization Cost and throughput Cost optimization Prompt caching Batch Flex processing Safety and governance Safety best practices Red teaming Safety checks Cybersecurity checks Under 18 API Guidance Content provenance Your data Permissions Infrastructure and access Terraform provider Overview Projects and access Service accounts Rate limits and spend Model, tool, and data controls Import and reconciliation Private Link IP allowlist Workload identity federation X.509 certificates (beta) Kubernetes AWS Microsoft Azure Google Cloud Oracle Cloud Infrastructure GitHub Actions SPIFFE IP egress ranges Amazon Bedrock Operations Rate limits Spend limits Admin APIs Error codes Docs Use cases DocsUse casesDocs sectionDocs Plugins Workspace Agents Commerce Ads PluginsWorkspace AgentsCommerceAdsDocs sectionSelect... Home Quickstart Core concepts Plugin architecture Skills MCP server Plan Brainstorm use cases Define tools Build Build an MCP server Add UI to your MCP server (optional) Authenticate users Build skills Package your plugin Examples Test and publish Connect and test your plugin Submit and publish Submission error reference Conversion specs Restaurant reservation spec Get Quote spec Product checkout spec Guides UI guidelines Optimize Metadata Submit a Claude Code plugin Security & Privacy Troubleshooting Resources Changelog Plugin guidelines MCP server review requirements Plugin UI reference Checkout API reference Home Get started Trigger workspace agent runs Authenticate with Workspace Agent access tokens Home Guides Get started Best practices File Upload Overview Products API Overview Feeds Products Promotions Ads Overview Measurement Measurement Pixel Multiple Pixels (Advanced) Image Tag Conversions API Supported Events Advertiser API Overview API Partner Setup Quickstart Bulk API Product Feeds Delta Feeds API Campaign Targeting Conversion-Optimized Campaigns API Reference Authentication Ad Account Campaigns Ad Groups Ads Insights Files Conversion Setup Overview Features Configuration Developers Security Administration Use Cases Resources OverviewFeaturesConfigurationDevelopersSecurityAdministrationUse CasesResourcesDocs sectionOverview Home Get started Quickstart Use ChatGPT Get started with Work Import from another agent Foundations Prompting Personalize ChatGPT Skills & Plugins Permissions Explore What's new Models Pricing Glossary Available on ChatGPT desktop app Remote ChatGPT on the web Codex CLI Codex IDE extension Codex cloud Releases Changelog Feature Maturity Open Source Overview Workflows Projects and chats Sites Visualizations Scheduled tasks Long-running work Notifications Pets Codex Micro Capabilities Browser Computer use Voice Plugins Web search Image generation Image inputs Appshots Chrome extension Work with files Reference Commands Slash commands Settings Troubleshooting Overview Customization Overview Memories Computer History Config file Config Basics Advanced Config Config Reference Environment Variables Sample Config Agent configuration AGENTS.md Subagents Speed Rules Extend ChatGPT and Codex Record & Replay MCP Linux Desktop app Windows Desktop app Windows sandbox WSL Overview Development workflows Code review Integrated terminal Extend and automate Build skills Build plugins Hooks Environments Modes Local environments Cloud environment Git worktrees Build with Codex Codex SDK App Server MCP Server GitHub Action Non-interactive mode Third-party integrations GitHub Slack Linear Reference CLI customization Developer commands Developer settings Overview Permissions Profiles Sandboxing Auto-review Agent approvals & security Internet access Codex Security Overview Codex Security plugin Quickstart Run a security scan Run a deep scan Review code changes Use the Security workbench Triage a backlog Fix findings Propose security hardening Write vulnerability reports Export and track findings Changelog Codex Security CLI Quickstart Run bulk scans Run scans in CI Reference FAQ TypeScript SDK Codex Security cloud Setup Security Review Improving the threat model FAQ Cyber safety Models & Trusted Access Recommended configuration Overview Getting started Admin rollout guide ChatGPT Work Overview ChatGPT Work admin FAQ Identity and authentication Authentication overview Personal Access Tokens Service accounts Workspace access, policy, and models Groups and provisioning Roles and workspace permissions GPTs and Sharing Managed configuration Prisma AIRS HIPAA configuration Workspace model availability Plugin and connector controls Plugin controls Skill controls Usage, governance, and compliance Governance Workspace analytics Analytics API Compliance API and audit events Deployment and model providers Manage app updates Windows app deployment Remote connections Amazon Bedrock Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Explore use cases Collections Home Videos Showcase OpenAI Academy Online trainings Community Codex Ambassadors Codex for Students Codex for Open Source Meetups Blog Company blog Developer blog Showcase Blog Cookbook Learn Community ShowcaseBlogCookbookLearnCommunityDocs sectionSelect... All posts Recent Custom Code Review rules for Codex Mastering remote engineering work from your phone Making private MCP servers reachable without making them public How Perplexity Brought Voice Search to Millions Using the Realtime API Designing delightful frontends with GPT-5.4 Topics General API Apps SDK Audio Codex Home Topics Agents Evals Multimodal Text Guardrails Optimization ChatGPT Codex gpt-oss Contribute Cookbook on GitHub Home OpenAI Developers plugin Docs MCP Categories Demo apps Videos Topics Agents Audio & Voice Computer Use Codex Evals gpt-oss Fine-tuning Image generation Scaling Tools Video generation Community Programs Codex Ambassadors Codex for Students Codex for Open Source OpenAI for Startups Events Meetups Spaces Developer Forum Discord Reddit X API Dashboard Try ChatGPT\n\nModel catalog Choose a model Pricing Model selection Text and code Text generation Code generation Structured output Prompting Overview Prompt engineering Citation formatting Migration guide Prompt generation Frontend prompting Reasoning Reasoning models Reasoning best practices Images and video Images and vision Image generation Video generation Realtime and audio Audio and speech Overview Voice agents Specialized models Deep research Embeddings Moderation ModelsGPT-4o mini TranscribeDefaultSpeech-to-text model powered by GPT-4o miniSpeech-to-text model powered by GPT-4o miniComparePerformanceHighSpeedFastPrice$1.25•$5Input•OutputInputAudio, textOutputTextGPT-4o mini Transcribe is a speech-to-text model that uses GPT-4o mini to transcribe audio. It offers improvements to word error rate and better language recognition and accuracy compared to original Whisper models. Use it for more accurate transcripts.16,000 context window2,000 max output tokensJun 01, 2024 knowledge cutoffPricingPricing is based on the number of tokens used, or other metrics based on the model type. For tool-specific models, like search and computer use, there’s a fee per tool call. See details in the pricing page.Audio tokensPer 1M tokensInput$1.25Output$5.00Quick comparisonInputOutputGPT-4o Transcribe$2.50GPT-4o mini Transcribe$1.25ModalitiesTextInput and outputImageNot supportedAudioInput onlyVideoNot supportedEndpointsChat Completionsv1/chat/completionsResponsesv1/responsesRealtimev1/realtimeRealtime translationv1/realtime/translationsRealtime transcriptionv1/realtime/transcription_sessionsAssistantsv1/assistantsBatchv1/batchFine-tuningv1/fine-tuningEmbeddingsv1/embeddingsImage generationv1/images/generationsVideosv1/videosImage editv1/images/editsSpeech generationv1/audio/speechTranscriptionv1/audio/transcriptionsTranslationv1/audio/translationsModerationv1/moderationsCompletions (legacy)v1/completionsSnapshotsSnapshots let you lock in a specific version of the model so that performance and behavior remain consistent. Below is a list of all available snapshots and aliases for GPT-4o mini Transcribe.gpt-4o-mini-transcribegpt-4o-mini-transcribe-2025-12-15gpt-4o-mini-transcribe-2025-03-20gpt-4o-mini-transcribe-2025-12-15Rate limitsRate limits ensure fair and reliable access to the API by placing specific caps on requests, tokens, audio duration, or other usage within a given time period. Your usage tier determines how high these limits are set and automatically increases as you send more requests and spend more on the API.TierRPMTPMFreeNot supportedTier 150050,000Tier 22,000150,000Tier 35,000600,000Tier 410,0002,000,000Tier 510,0008,000,000\n\nAsk AI Docs agent Loading docs agent...\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:58.312Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":0,"totalLines":15,"estimatedTokens":3071}}177{"id":"doc-workflows_executions-386fa116","source":"documentation","title":"Workflows Executions","url":"https://docs.mistral.ai/api/endpoint/workflows/executions","text":"Example:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecution({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution(execution_id=\"<id>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id} \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"end_time\": null,\n \"execution_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"result\": null,\n \"root_execution_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"start_time\": \"2025-12-17T10:25:07.818693Z\",\n \"status\": \"RUNNING\",\n \"workflow_name\": \"support-workflow\"\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecutionHistory({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution_history(execution_id=\"<id>\", decode_payloads=True)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/history \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\nnull\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.signalWorkflowExecution({\n executionId: \"<id>\",\n signalInvocationBody: {\n name: \"<value>\",\n },\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.signal_workflow_execution(execution_id=\"<id>\", name=\"<value>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/signals \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"name\": \"approve\"\n}'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.queryWorkflowExecution({\n executionId: \"<id>\",\n queryInvocationBody: {\n name: \"<value>\",\n },\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.query_workflow_execution(execution_id=\"<id>\", name=\"<value>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/queries \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"name\": \"get_progress\"\n}'\n```\n\nExample:\n```text\n{\n \"query_name\": \"status\",\n \"result\": null\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n await mistral.workflows.executions.terminateWorkflowExecution({\n executionId: \"<id>\",\n });\n\n\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n mistral.workflows.executions.terminate_workflow_execution(execution_id=\"<id>\")\n\n # Use the SDK ...\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/terminate \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.batchTerminateWorkflowExecutions({\n executionIds: [\n \"<value 1>\",\n \"<value 2>\",\n ],\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.batch_terminate_workflow_executions(execution_ids=[\n \"<value 1>\",\n \"<value 2>\",\n ])\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/terminate \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"execution_ids\": [\n \"approved\"\n ]\n}'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n await mistral.workflows.executions.cancelWorkflowExecution({\n executionId: \"<id>\",\n });\n\n\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n mistral.workflows.executions.cancel_workflow_execution(execution_id=\"<id>\")\n\n # Use the SDK ...\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/cancel \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.batchCancelWorkflowExecutions({\n executionIds: [],\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.batch_cancel_workflow_executions(execution_ids=[])\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/cancel \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"execution_ids\": [\n \"approved\"\n ]\n}'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n await mistral.workflows.executions.resetWorkflow({\n executionId: \"<id>\",\n resetInvocationBody: {\n eventId: 24149,\n },\n });\n\n\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n mistral.workflows.executions.reset_workflow(execution_id=\"<id>\", event_id=24149, exclude_signals=False, exclude_updates=False)\n\n # Use the SDK ...\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/reset \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"event_id\": 87\n}'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.updateWorkflowExecution({\n executionId: \"<id>\",\n updateInvocationBody: {\n name: \"<value>\",\n },\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.update_workflow_execution(execution_id=\"<id>\", name=\"<value>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/updates \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"name\": \"status_update\"\n}'\n```\n\nExample:\n```text\n{\n \"result\": null,\n \"update_name\": \"status_update\"\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecutionTraceInfo({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution_trace_info(execution_id=\"<id>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/info \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecutionTraceOtel({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution_trace_otel(execution_id=\"<id>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/otel \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"data_source\": \"workflow-trace\",\n \"end_time\": null,\n \"execution_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"result\": null,\n \"root_execution_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"start_time\": \"2025-12-17T10:25:07.818693Z\",\n \"status\": \"RUNNING\",\n \"workflow_name\": \"support-workflow\"\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecutionTraceSummary({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution_trace_summary(execution_id=\"<id>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/summary \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecutionTraceEvents({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution_trace_events(execution_id=\"<id>\", merge_same_id_events=False, include_internal_events=False)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/trace/events \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.stream({\n executionId: \"<id>\",\n });\n\n for await (const event of result) {\n console.log(event);\n }\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.stream(execution_id=\"<id>\")\n\n with res as event_stream:\n for event in event_stream:\n # handle event\n print(event, flush=True)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/stream \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.getWorkflowExecutionLogs({\n executionId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.get_workflow_execution_logs(execution_id=\"<id>\", order=\"asc\", limit=50)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/logs \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"results\": [\n {\n \"body\": \"ipsum eiusmod\",\n \"log_attributes\": [\n \"consequat do\"\n ],\n \"severity_text\": \"reprehenderit ut dolore\",\n \"span_id\": \"occaecat dolor sit\",\n \"timestamp\": \"2025-12-17T10:25:07.818693Z\",\n \"trace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\"\n }\n ]\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.workflows.executions.streamWorkflowExecutionLogs({\n executionId: \"<id>\",\n });\n\n for await (const event of result) {\n console.log(event);\n }\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.workflows.executions.stream_workflow_execution_logs(execution_id=\"<id>\")\n\n with res as event_stream:\n for event in event_stream:\n # handle event\n print(event, flush=True)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/workflows/executions/{execution_id}/logs/stream \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.510Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":57,"totalLines":834,"estimatedTokens":3673}}178{"id":"doc-agents_tools_overview_mistral_docs-4f8e9459","source":"documentation","title":"Agents Tools Overview | Mistral Docs","url":"https://docs.mistral.ai/studio/agents/agent-tools","text":"Agents & ConversationsWebsearch\n\nExample:\n```text\nagent = client.beta.agents.create(\n model=\"<model>\",\n name=\"<name_of_the_agent>\",\n description=\"<description>\",\n instructions=\"<instructions_or_system_prompt>\",\n tools=[<list_of_tools>]\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.514Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":14,"estimatedTokens":68}}179{"id":"doc-beta_observability_traces-4d4ecb3a","source":"documentation","title":"Beta Observability Traces","url":"https://docs.mistral.ai/api/endpoint/beta/observability/traces","text":"Example:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.traces.search({\n tracesRequest: {},\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.traces.search(page_size=50)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/search \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{}'\n```\n\nExample:\n```text\n{\n \"traces\": {}\n}\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/aggregate \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"metric\": {\n \"aggregation\": \"count\",\n \"measure\": \"ipsum eiusmod\"\n }\n}'\n```\n\nExample:\n```text\n{\n \"data\": [\n {\n \"metric_name\": \"ipsum eiusmod\"\n }\n ],\n \"meta\": {\n \"from_timestamp\": \"2025-12-17T10:25:07.818693Z\",\n \"to_timestamp\": \"2025-12-17T10:25:07.818693Z\"\n }\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.traces.getTraceFields();\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.traces.get_trace_fields()\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/fields \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"field_definitions\": [\n {\n \"label\": \"approved\",\n \"name\": \"My resource\",\n \"supported_aggregations\": [\n \"count\"\n ],\n \"supported_operators\": [\n \"eq\"\n ],\n \"type\": \"ENUM\"\n }\n ]\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.traces.getTraceById({\n traceId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.traces.get_trace_by_id(trace_id=\"<id>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/{trace_id} \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"agent_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"agent_name\": \"support-assistant\",\n \"cache_creation_input_tokens\": 87,\n \"cache_read_input_tokens\": 14,\n \"conversation_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"customer_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"duration_ns\": 56,\n \"end_time\": \"2025-12-17T10:25:07.818693Z\",\n \"environment\": \"nostrud\",\n \"error_count\": 91,\n \"evaluation_count\": 32,\n \"first_turn_last_input_message\": \"aute aliqua aute commodo\",\n \"first_turn_last_output_message\": \"irure\",\n \"gen_ai_span_count\": 78,\n \"input_tokens\": 5,\n \"last_turn_last_input_message\": \"dolor\",\n \"last_turn_last_output_message\": \"sunt\",\n \"llm_call_count\": 69,\n \"models_used\": [\n \"nisi minim commodo irure minim\"\n ],\n \"organization_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"output_tokens\": 41,\n \"retrieval_count\": 18,\n \"root_span_id\": \"occaecat\",\n \"root_span_name\": \"fugiat\",\n \"service_name\": \"workflow-worker\",\n \"span_count\": 74,\n \"start_time\": \"2025-12-17T10:25:07.818693Z\",\n \"status_code\": \"Error\",\n \"tool_call_count\": 29,\n \"tools_used\": [\n \"nostrud anim\"\n ],\n \"trace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"user_id\": \"9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce\",\n \"workflow_name\": \"support-workflow\",\n \"workspace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\"\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.traces.getTraceSpans({\n traceId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.traces.get_trace_spans(trace_id=\"<id>\", page_size=50)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/{trace_id}/spans \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"spans\": {}\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.traces.fetchOptions({\n fieldName: \"<value>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.traces.fetch_options(field_name=\"<value>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/fields/{field_name}/options \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"options\": null\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.traces.getSpanById({\n traceId: \"<id>\",\n spanId: \"<id>\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.traces.get_span_by_id(trace_id=\"<id>\", span_id=\"<id>\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/traces/{trace_id}/spans/{span_id} \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"agent_description\": \"ipsum eiusmod\",\n \"agent_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"agent_name\": \"support-assistant\",\n \"agent_version\": \"occaecat dolor sit\",\n \"conversation_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"customer_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"data_source_id\": \"irure\",\n \"duration_ns\": 87,\n \"end_time\": \"2025-12-17T10:25:07.818693Z\",\n \"error_type\": \"dolor\",\n \"input_messages\": \"sunt\",\n \"operation_name\": \"nisi minim commodo irure minim\",\n \"organization_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"output_messages\": \"occaecat\",\n \"output_type\": \"fugiat\",\n \"parent_span_id\": \"non nisi proident Lorem\",\n \"prompt_name\": \"nostrud anim\",\n \"provider_name\": \"exercitation aliqua sint\",\n \"request_choice_count\": 14,\n \"request_encoding_formats\": [\n \"ut sint\"\n ],\n \"request_frequency_penalty\": null,\n \"request_max_tokens\": 56,\n \"request_model\": \"dolor voluptate eu\",\n \"request_presence_penalty\": null,\n \"request_seed\": 91,\n \"request_stop_sequences\": [\n \"quis minim non magna quis\"\n ],\n \"request_temperature\": null,\n \"request_top_k\": null,\n \"request_top_p\": null,\n \"resource_attributes\": [\n \"et voluptate\"\n ],\n \"response_finish_reasons\": [\n \"commodo labore aliqua ad\"\n ],\n \"response_id\": \"elit culpa est non\",\n \"response_model\": \"dolore aliqua eu\",\n \"scope_name\": \"proident\",\n \"scope_version\": \"anim eiusmod labore\",\n \"service_name\": \"workflow-worker\",\n \"span_attributes\": [\n \"voluptate aliquip\"\n ],\n \"span_id\": \"et excepteur dolore commodo id\",\n \"span_kind\": \"in consectetur excepteur sint\",\n \"span_name\": \"sunt amet\",\n \"start_time\": \"2025-12-17T10:25:07.818693Z\",\n \"status_code\": \"Error\",\n \"status_message\": \"duis ea\",\n \"system_instructions\": \"nisi laborum\",\n \"tool_call_arguments\": \"cupidatat nulla velit\",\n \"tool_call_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"tool_call_result\": \"velit qui velit ullamco\",\n \"tool_definitions\": \"ad do deserunt exercitation\",\n \"tool_name\": \"search\",\n \"tool_type\": \"velit laboris fugiat\",\n \"trace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"trace_state\": \"cillum culpa aute minim\",\n \"usage_cache_creation_input_tokens\": 32,\n \"usage_cache_read_input_tokens\": 78,\n \"usage_input_tokens\": 5,\n \"usage_output_tokens\": 69,\n \"user_id\": \"9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce\",\n \"workflow_name\": \"support-workflow\",\n \"workspace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.517Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":26,"totalLines":442,"estimatedTokens":2227}}180{"id":"doc-beta_observability_campaigns-695dd927","source":"documentation","title":"Beta Observability Campaigns","url":"https://docs.mistral.ai/api/endpoint/beta/observability/campaigns","text":"Example:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.campaigns.list({});\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.campaigns.list(page_size=50, page=1)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/campaigns \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"campaigns\": {\n \"count\": 87\n }\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.campaigns.create({\n searchParams: {\n filters: {\n field: \"<value>\",\n op: \"lt\",\n value: \"<value>\",\n },\n },\n judgeId: \"9b501b9f-3525-44a7-a51a-5352679be9ed\",\n name: \"<value>\",\n description: \"shakily triangular scotch requirement whether once oh\",\n maxNbEvents: 232889,\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.campaigns.create(search_params={\n \"filters\": {\n \"field\": \"<value>\",\n \"op\": \"lt\",\n \"value\": \"<value>\",\n },\n }, judge_id=\"9b501b9f-3525-44a7-a51a-5352679be9ed\", name=\"<value>\", description=\"shakily triangular scotch requirement whether once oh\", max_nb_events=232889)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/campaigns \\\n -X POST \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"description\": \"My Campaign description.\",\n \"judge_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"max_nb_events\": \"100\",\n \"name\": \"My Campaign\",\n \"search_params\": {\n \"filters\": null\n }\n}'\n```\n\nExample:\n```text\n{\n \"created_at\": \"2025-12-17T10:25:07.818693Z\",\n \"deleted_at\": null,\n \"description\": \"My resource description.\",\n \"id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"judge\": {\n \"created_at\": \"2025-12-17T10:25:07.818693Z\",\n \"deleted_at\": null,\n \"description\": \"My resource description.\",\n \"id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\",\n \"instructions\": \"Evaluate the response.\",\n \"model_name\": \"mistral-small-latest\",\n \"name\": \"My resource\",\n \"output\": {\n \"options\": [\n {\n \"description\": \"My Judge\",\n \"value\": \"approved\"\n }\n ]\n },\n \"owner_id\": \"9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce\",\n \"tools\": [\n \"approved\"\n ],\n \"updated_at\": \"2025-12-17T10:41:03.469341Z\",\n \"workspace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\"\n },\n \"max_nb_events\": \"100\",\n \"name\": \"My resource\",\n \"owner_id\": \"9c0ab39f-0cd0-46cd-bd30-8bf2d50be5ce\",\n \"search_params\": {\n \"filters\": null\n },\n \"updated_at\": \"2025-12-17T10:41:03.469341Z\",\n \"workspace_id\": \"019b2bd7-96e7-7219-8c0b-45a73da50088\"\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.campaigns.fetch({\n campaignId: \"fd7945d6-00e2-4852-9054-bcbb968d7f98\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.campaigns.fetch(campaign_id=\"fd7945d6-00e2-4852-9054-bcbb968d7f98\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/campaigns/{campaign_id} \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n await mistral.beta.observability.campaigns.delete({\n campaignId: \"90e07b45-8cf7-4081-8558-a786779e039d\",\n });\n\n\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n mistral.beta.observability.campaigns.delete(campaign_id=\"90e07b45-8cf7-4081-8558-a786779e039d\")\n\n # Use the SDK ...\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/campaigns/{campaign_id} \\\n -X DELETE \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE' \\\n -H 'Content-Type: application/json'\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.campaigns.fetchStatus({\n campaignId: \"4b1dd9a5-8dc9-48e1-bd11-29443e959902\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.campaigns.fetch_status(campaign_id=\"4b1dd9a5-8dc9-48e1-bd11-29443e959902\")\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/campaigns/{campaign_id}/status \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"status\": \"RUNNING\"\n}\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst mistral = new Mistral({\n apiKey: \"MISTRAL_API_KEY\",\n});\n\nasync function run() {\n const result = await mistral.beta.observability.campaigns.listEvents({\n campaignId: \"305b5e46-a650-4d8a-8b5b-d23ef90ec831\",\n });\n\n console.log(result);\n}\n\nrun();\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nimport os\n\n\nwith Mistral(\n api_key=os.getenv(\"MISTRAL_API_KEY\", \"\"),\n) as mistral:\n\n res = mistral.beta.observability.campaigns.list_events(campaign_id=\"305b5e46-a650-4d8a-8b5b-d23ef90ec831\", page_size=50, page=1)\n\n # Handle response\n print(res)\n```\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/observability/campaigns/{campaign_id}/selected-events \\\n -X GET \\\n -H 'Authorization: Bearer YOUR_APIKEY_HERE'\n```\n\nExample:\n```text\n{\n \"completion_events\": {\n \"count\": 87\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.529Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":22,"totalLines":343,"estimatedTokens":1627}}181{"id":"doc-build_an_agent_with_tools_mistral_docs-e46603ae","source":"documentation","title":"Build an agent with tools | Mistral Docs","url":"https://docs.mistral.ai/getting-started/quickstarts/developer/build-an-agent","text":"Send your first API requestSet up RAG with document search\n\nExample:\n```text\nimport json\nimport os\nfrom mistralai.client import Mistral\n\nclient = Mistral(api_key=os.environ[\"MISTRAL_API_KEY\"])\n\n# Define the tool schema\ntools = [\n {\n \"type\": \"function\",\n \"function\": {\n \"name\": \"get_weather\",\n \"description\": \"Get the current weather for a given city.\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"city\": {\n \"type\": \"string\",\n \"description\": \"The city name, e.g. 'Paris'.\"\n }\n },\n \"required\": [\"city\"]\n }\n }\n }\n]\n```\n\nExample:\n```text\nmessages = [\n {\"role\": \"user\", \"content\": \"What's the weather in Paris today?\"}\n]\n\nresponse = client.chat.complete(\n model=\"mistral-medium-latest\",\n messages=messages,\n tools=tools,\n)\n\ntool_call = response.choices[0].message.tool_calls[0]\nprint(f\"Model wants to call: {tool_call.function.name}\")\nprint(f\"With arguments: {tool_call.function.arguments}\")\n```\n\nExample:\n```text\n# Simulate the function (replace with a real API call)\ndef get_weather(city: str) -> dict:\n return {\"city\": city, \"temperature\": \"18°C\", \"condition\": \"Partly cloudy\"}\n\n# Execute the tool call\nargs = json.loads(tool_call.function.arguments)\nresult = get_weather(**args)\n\n# Send the result back to the model\nmessages.append(response.choices[0].message)\nmessages.append({\n \"role\": \"tool\",\n \"name\": tool_call.function.name,\n \"content\": json.dumps(result),\n \"tool_call_id\": tool_call.id,\n})\n\nfinal_response = client.chat.complete(\n model=\"mistral-medium-latest\",\n messages=messages,\n tools=tools,\n)\n\nprint(final_response.choices[0].message.content)\n# \"The weather in Paris is 18°C and partly cloudy.\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.546Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":79,"estimatedTokens":471}}182{"id":"doc-using_mistral_ai_with_llamaindex_mistral_ai_cook-d7da5121","source":"documentation","title":"Using Mistral AI with LlamaIndex - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/third_party-llamaindex-llamaindex_agentic_rag","text":"Example:\n```text\n!pip install llama-index-core \n!pip install llama-index-embeddings-mistralai\n!pip install llama-index-llms-mistralai\n!pip install llama-index-readers-file\n!pip install mistralai pypdf\n```\n\nExample:\n```text\nfrom llama_index.llms.mistralai import MistralAI\nfrom llama_index.embeddings.mistralai import MistralAIEmbedding\nfrom llama_index.core.settings import Settings\n\napi_key = \"\"\nllm = MistralAI(api_key=api_key,model=\"mistral-large-latest\")\nembed_model = MistralAIEmbedding(model_name='mistral-embed', api_key=api_key)\n\nSettings.llm = llm\nSettings.embed_model = embed_model\n```\n\nExample:\n```text\n!wget \"https://www.dropbox.com/scl/fi/ywc29qvt66s8i97h1taci/lyft-10k-2020.pdf?rlkey=d7bru2jno7398imeirn09fey5&dl=0\" -q -O ./lyft_10k_2020.pdf\n!wget \"https://www.dropbox.com/scl/fi/lpmmki7a9a14s1l5ef7ep/lyft-10k-2021.pdf?rlkey=ud5cwlfotrii6r5jjag1o3hvm&dl=0\" -q -O ./lyft_10k_2021.pdf\n!wget \"https://www.dropbox.com/scl/fi/iffbbnbw9h7shqnnot5es/lyft-10k-2022.pdf?rlkey=grkdgxcrib60oegtp4jn8hpl8&dl=0\" -q -O ./lyft_10k_2022.pdf\n```\n\nExample:\n```text\nfrom llama_index.core import SimpleDirectoryReader, VectorStoreIndex\n\nlyft_2020_docs = SimpleDirectoryReader(input_files=[\"./lyft_10k_2020.pdf\"]).load_data()\nlyft_2020_index = VectorStoreIndex.from_documents(lyft_2020_docs)\nlyft_2020_engine = lyft_2020_index.as_query_engine()\n\nlyft_2021_docs = SimpleDirectoryReader(input_files=[\"./lyft_10k_2021.pdf\"]).load_data()\nlyft_2021_index = VectorStoreIndex.from_documents(lyft_2021_docs)\nlyft_2021_engine = lyft_2021_index.as_query_engine()\n\nlyft_2022_docs = SimpleDirectoryReader(input_files=[\"./lyft_10k_2022.pdf\"]).load_data()\nlyft_2022_index = VectorStoreIndex.from_documents(lyft_2022_docs)\nlyft_2022_engine = lyft_2022_index.as_query_engine()\n\nresponse = lyft_2022_engine.query(\"What was Lyft's profit in 2022?\")\nprint(response)\n```\n\nExample:\n```text\nfrom llama_index.core.tools import QueryEngineTool, ToolMetadata\n\nquery_engine_tools = [\n QueryEngineTool(\n query_engine=lyft_2020_engine,\n metadata=ToolMetadata(\n name=\"lyft_2020_10k_form\",\n description=\"Annual report of Lyft's financial activities in 2020\",\n ),\n ),\n QueryEngineTool(\n query_engine=lyft_2021_engine,\n metadata=ToolMetadata(\n name=\"lyft_2021_10k_form\",\n description=\"Annual report of Lyft's financial activities in 2021\",\n ),\n ),\n QueryEngineTool(\n query_engine=lyft_2022_engine,\n metadata=ToolMetadata(\n name=\"lyft_2022_10k_form\",\n description=\"Annual report of Lyft's financial activities in 2022\",\n ),\n ),\n]\n```\n\nExample:\n```text\nfrom llama_index.core.agent import ReActAgent\n\nlyft_agent = ReActAgent.from_tools(query_engine_tools, llm=llm, verbose=True)\nresponse = lyft_agent.chat(\"What are the risk factors in 2022?\")\nprint(response)\n```\n\nExample:\n```text\nfrom llama_index.core.agent import ReActAgent\n\nlyft_agent = ReActAgent.from_tools(query_engine_tools, llm=llm, verbose=True)\nresponse = lyft_agent.chat(\"What is Lyft's profit in 2022 vs 2020? Generate only one step at a time. Use existing tools.\")\nprint(response)\n```\n\nExample:\n```text\nfrom llama_index.core.agent import ReActAgent\n\nlyft_agent = ReActAgent.from_tools(query_engine_tools, llm=llm, verbose=True)\nresponse = lyft_agent.chat(\"What did Lyft do in R&D in 2022 versus 2021? Generate only one step at a time. Use existing tools.\")\nprint(response)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.559Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":107,"estimatedTokens":866}}183{"id":"doc-call_transcript_to_prd_to_ticket_agent_convertin-f5dd250f","source":"documentation","title":"Call Transcript-to-PRD-to-Ticket Agent: Converting Meeting Transcripts to Linear Tickets using Mistral AI LLMs - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/mistral-agents-non_framework-transcript_linearticket_agent-transcripttolinearticketagent","text":"Example:\n```text\n!pip install mistralai==1.5.1 # MistralAI\n!pip install gql==3.5.0 # GraphQL\n!pip install pydantic==2.10.6 # Data validation\n!pip install pypdf==5.3.0 # PDF processing\n```\n\nExample:\n```text\nfrom mistralai.client import Mistral\nfrom gql import gql, Client\nfrom gql.transport.requests import RequestsHTTPTransport\nfrom pydantic import BaseModel\nfrom typing import List, Dict, Optional, Any\nfrom dataclasses import dataclass\nfrom pypdf import PdfReader\nimport json\n```\n\nExample:\n```text\n!wget 'https://raw.githubusercontent.com/mistralai/cookbook/main/mistral/agents/non_framework/transcript_linearticket_agent/lechat_product_call_trascript.pdf' -O './lechat_product_call_trascript.pdf'\n```\n\nExample:\n```text\n@dataclass\nclass Config:\n \"\"\"Configuration settings for the application.\"\"\"\n LINEAR_API_KEY: str # OAuth token for Linear API authentication\n LINEAR_TEAM_ID: str # Unique identifier for your Linear team/project\n LINEAR_GRAPHQL_URL: str # Linear's GraphQL API endpoint (usually \"https://api.linear.app/graphql\")\n MISTRAL_API_KEY: str # API Key for accessing Mistral LLMs\n MISTRAL_MODEL: str # Specific Mistral model to use (e.g., \"mistral-large-latest\")\n\nconfig = Config(\n LINEAR_API_KEY = \"YOUR API KEY ON LINEAR\",\n LINEAR_TEAM_ID = \"YOUR TEAM ID ON LINEAR\",\n LINEAR_GRAPHQL_URL = \"https://api.linear.app/graphql\",\n MISTRAL_API_KEY = \"YOUR MISTRAL API KEY\", # Get your API key from https://console.mistral.ai/api-keys/\n MISTRAL_MODEL = \"ministral-large-latest\",\n)\n```\n\nExample:\n```text\nclass FeaturesList(BaseModel):\n \"\"\"Pydantic model for structured feature data.\"\"\"\n Features: List[str]\n DescriptionOfFeatures: List[str]\n```\n\nExample:\n```text\nclass PRDAgent:\n \"\"\"Agent responsible for generating and refining PRD from transcripts.\"\"\"\n\n def __init__(self, transcript: str, mistral_client: Mistral, model: str = \"mistral-large-latest\"):\n \"\"\"\n Initialize PRD agent.\n\n Args:\n transcript (str): Call transcript text\n mistral_client (Mistral): Initialized Mistral client\n model (str): Model name to use\n \"\"\"\n self.transcript: str = transcript\n self.prd: Optional[str] = None\n self.feedback: Optional[str] = None\n self.client: Mistral = mistral_client\n self.model: str = model\n\n def generate_initial_prd(self) -> str:\n \"\"\"\n Generate initial PRD from transcript.\n\n Returns:\n str: Generated PRD text\n \"\"\"\n prompt = f\"\"\"\n Based on the following call transcript, create an initial Product Requirements Document (PRD) with some or all of these sections:\n 1. Title\n 2. Purpose\n 3. Scope\n 4. Features and Requirements\n 5. User Personas\n 6. Technical Requirements\n 7. Constraints\n 8. Success Metrics\n 9. Timeline and Milestones\n\n Transcript:\n {self.transcript}\n\n Align everything only with the information provided in the transcript. If any section is not present in the transcript, you can skip it in the PRD.\n\n PRD:\n \"\"\"\n response = self.client.chat.complete(\n model=self.model,\n messages=[{\"role\": \"user\", \"content\": prompt}],\n temperature=0.1\n )\n self.prd = response.choices[0].message.content\n return self.prd\n\n def get_feedback(self) -> str:\n \"\"\"\n Get feedback on current PRD.\n\n Returns:\n str: Feedback text\n \"\"\"\n prompt = f\"\"\"\n Review the following Product Requirements Document (PRD) based on the original call transcript. Provide feedback on:\n - Missing information in PRD that are present in the transcript.\n - Inconsistencies in the PRD that are not aligned with the transcript.\n\n Transcript:\n {self.transcript}\n\n Current PRD:\n {self.prd}\n\n Align the feedback only with the information provided in the transcript. We are not looking for additional information based on your knowledge.\n\n If no feedback is required, respond with \"None.\" and don't provide any further feedback. Your task is only to review the alignment between the PRD and the transcript and provide feedback based on that. Don't refine the PRD at this stage.\n\n Feedback:\n \"\"\"\n response = self.client.chat.complete(\n model=self.model,\n messages=[{\"role\": \"user\", \"content\": prompt}],\n temperature=0.1\n )\n self.feedback = response.choices[0].message.content\n return self.feedback\n\n def refine_prd(self) -> str:\n \"\"\"\n Refine PRD based on feedback.\n\n Returns:\n str: Refined PRD text\n \"\"\"\n prompt = f\"\"\"\n Refine the PRD based on the provided feedback and aligning it with the transcript:\n\n Current PRD:\n {self.prd}\n\n Feedback:\n {self.feedback}\n\n Transcript:\n {self.transcript}\n \"\"\"\n response = self.client.chat.complete(\n model=self.model,\n messages=[{\"role\": \"user\", \"content\": prompt}],\n temperature=0.1\n )\n self.prd = response.choices[0].message.content\n return self.prd\n\n def run(self, max_iterations: int = 3) -> str:\n \"\"\"\n Run the PRD generation and refinement process.\n\n Args:\n max_iterations (int): Maximum number of refinement iterations\n\n Returns:\n str: Final PRD text\n \"\"\"\n print(\"Generating initial PRD...\")\n self.generate_initial_prd()\n print(f\"Initial PRD:\\n{self.prd}\")\n\n for iteration in range(max_iterations):\n print(f\"\\nIteration {iteration}: Requesting feedback...\")\n feedback = self.get_feedback()\n print(f\"Feedback:\\n{feedback}\")\n\n if \"none\" in feedback.strip().lower():\n print(\"\\nNo further feedback. Finalizing PRD...\")\n break\n\n print(\"\\nRefining PRD...\")\n self.refine_prd()\n print(f\"Refined PRD:\\n{self.prd}\")\n\n return self.prd\n```\n\nExample:\n```text\nclass TicketCreationAgent:\n \"\"\"Agent responsible for creating Linear tickets from PRD.\"\"\"\n\n def __init__(self, api_key: str, team_id: str, mistral_client: Mistral, graphql_url: str):\n \"\"\"\n Initialize Linear ticket agent.\n\n Args:\n api_key (str): Linear API key\n team_id (str): Linear team ID\n mistral_client (Mistral): Initialized Mistral client\n graphql_url (str): Linear GraphQL API URL\n \"\"\"\n self.client = Client(\n transport=RequestsHTTPTransport(\n url=graphql_url,\n headers={'Authorization': api_key},\n verify=True,\n retries=3\n ),\n fetch_schema_from_transport=True\n )\n self.team_id = team_id\n self.mistral_client = mistral_client\n\n def parse_prd(self, prd_text: str) -> Dict[str, List[str]]:\n \"\"\"\n Parse PRD into structured feature data.\n\n Args:\n prd_text (str): PRD text to parse\n\n Returns:\n Dict[str, List[str]]: Structured feature data\n \"\"\"\n messages = [\n {\n \"role\": \"system\",\n \"content\": (\n \"You are an AI assistant helping to create Features list and their descriptions from a Product Requirements Document (PRD).\"\n \"The description should contain a brief explanation of the feature that includes Technical requirements (if any), Constraints (if any), Success metrics (if any), User personas (if any), and Timeline and Milestones (if any).\"\n )\n },\n {\n \"role\": \"user\",\n \"content\": f\"PRD:\\n\\n{prd_text}\"\n }\n ]\n\n chat_response = self.mistral_client.chat.parse(\n model=\"mistral-large-latest\",\n messages=messages,\n response_format=FeaturesList,\n max_tokens=2048,\n temperature=0.1\n )\n\n return json.loads(chat_response.choices[0].message.content)\n\n def create_ticket(self, title: str, description: str) -> Dict[str, Any]:\n \"\"\"\n Create a single Linear ticket.\n\n Args:\n title (str): Ticket title\n description (str): Ticket description\n\n Returns:\n Dict[str, Any]: Creation result from Linear API\n \"\"\"\n mutation = gql(\"\"\"\n mutation CreateIssue($title: String!, $description: String!, $teamId: String!) {\n issueCreate(\n input: {\n title: $title,\n description: $description,\n teamId: $teamId\n }\n ) {\n success\n issue {\n id\n url\n }\n }\n }\n \"\"\")\n\n variables = {\n \"title\": title,\n \"description\": description,\n \"teamId\": self.team_id\n }\n\n result = self.client.execute(mutation, variable_values=variables)\n print(f\"Created ticket: {result['issueCreate']['issue']['url']}\")\n return result\n\n def create_tickets_from_prd(self, parsed_items: Dict[str, List[str]]) -> List[Dict[str, Any]]:\n \"\"\"\n Create Linear tickets from parsed PRD items.\n\n Args:\n parsed_items (Dict[str, List[str]]): Parsed feature data\n\n Returns:\n List[Dict[str, Any]]: List of ticket creation results\n \"\"\"\n results = []\n for title, description in zip(\n parsed_items['Features'],\n parsed_items['DescriptionOfFeatures']\n ):\n result = self.create_ticket(title, description)\n results.append(result)\n return results\n```\n\nExample:\n```text\nclass WorkflowOrchestrator:\n \"\"\"Orchestrates the entire workflow from transcript to Linear tickets.\"\"\"\n\n def __init__(self, config: Config, transcript: str):\n \"\"\"\n Initialize workflow orchestrator.\n\n Args:\n config (Config): Application configuration\n transcript (str): Call transcript text\n \"\"\"\n mistral_client = Mistral(api_key=config.MISTRAL_API_KEY)\n self.prd_agent = PRDAgent(\n transcript=transcript,\n mistral_client=mistral_client\n )\n self.linear_agent = TicketCreationAgent(\n api_key=config.LINEAR_API_KEY,\n team_id=config.LINEAR_TEAM_ID,\n mistral_client=mistral_client,\n graphql_url=config.LINEAR_GRAPHQL_URL\n )\n\n def run(self) -> Dict[str, Any]:\n \"\"\"\n Run the complete workflow.\n\n Returns:\n Dict[str, Any]: Workflow results including PRD and ticket data\n \"\"\"\n print(\"Generating and finalizing PRD...\")\n prd = self.prd_agent.run()\n\n print(\"\\nParsing PRD into actionable items...\")\n parsed_items = self.linear_agent.parse_prd(prd)\n\n print(\"\\nCreating Linear tickets...\")\n ticket_results = self.linear_agent.create_tickets_from_prd(parsed_items)\n\n return {\n \"prd\": prd,\n \"parsed_items\": parsed_items,\n \"ticket_results\": ticket_results\n }\n```\n\nExample:\n```text\ndef parse_transcript(config: Config, file_path: str) -> str:\n \"\"\"Parse a transcriot PDF file and extract text from all pages using Mistral OCR.\"\"\"\n\n mistral_client = Mistral(api_key=config.MISTRAL_API_KEY)\n\n uploaded_pdf = mistral_client.files.upload(\n file={\n \"file_name\": file_path,\n \"content\": open(file_path, \"rb\"),\n },\n purpose=\"ocr\"\n )\n\n signed_url = mistral_client.files.get_signed_url(file_id=uploaded_pdf.id)\n\n ocr_response = mistral_client.ocr.process(\n model=\"mistral-ocr-latest\",\n document={\n \"type\": \"document_url\",\n \"document_url\": signed_url.url,\n }\n )\n\n text = \"\\n\".join([x.markdown for x in (ocr_response.pages)])\n\n return text\n```\n\nExample:\n```text\ntranscript = parse_transcript(config, \"./lechat_product_call_trascript.pdf\")\n```\n\nExample:\n```text\norchestrator = WorkflowOrchestrator(config, transcript)\nresults = orchestrator.run()\n```\n\nExample:\n```text\nprint(results[\"prd\"])\n```\n\nExample:\n```text\nfor feature, desc in zip(\n results[\"parsed_items\"][\"Features\"],\n results[\"parsed_items\"][\"DescriptionOfFeatures\"]\n):\n print(f\"\\nFeature: {feature}\")\n print(f\"Description: {desc}\")\n```\n\nExample:\n```text\nfor result in results[\"ticket_results\"]:\n print(result)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.641Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":14,"totalLines":427,"estimatedTokens":3186}}184{"id":"doc-using_connectors_in_chat_completions_mistral_ai_-67edb549","source":"documentation","title":"Using Connectors in Chat Completions - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/mistral-connectors-05-connectors-in-completions","text":"Example:\n```text\n# Python\npip install mistralai\n# or with uv\nuv add mistralai\n```\n\nExample:\n```text\n# TypeScript / Node.js\nnpm install @mistralai/mistralai\n```\n\nExample:\n```text\nMISTRAL_API_KEY=your-mistral-api-key\n```\n\nExample:\n```text\ndef display_response(response) -> None:\n \"\"\"Display text content from SDK chat completion response.\n\n When using connector tools, responses use `messages` array instead of `message`.\n \"\"\"\n for choice in response.choices:\n # Handle multi_completion format (messages array) - used with connector tools\n if hasattr(choice, 'messages') and choice.messages:\n for message in choice.messages:\n content = message.content\n if content:\n if isinstance(content, str):\n print(content[:500] if len(content) > 500 else content)\n elif isinstance(content, list):\n for chunk in content:\n if hasattr(chunk, 'type'):\n if chunk.type == \"text\":\n print(getattr(chunk, 'text', ''))\n elif chunk.type == \"image_url\":\n print(f\"[Image: {getattr(chunk, 'image_url', '')[:80]}...]\")\n tool_calls = getattr(message, 'tool_calls', None)\n if tool_calls:\n print(f\"Tool calls: {len(tool_calls)}\")\n for tc in tool_calls:\n func = tc.function\n print(f\" - {func.name}: {func.arguments}\")\n # Handle standard completion format (single message)\n elif hasattr(choice, 'message') and choice.message:\n message = choice.message\n content = message.content\n if content:\n print(content[:500] if len(content) > 500 else content)\n tool_calls = getattr(message, 'tool_calls', None)\n if tool_calls:\n print(f\"Tool calls: {len(tool_calls)}\")\n for tc in tool_calls:\n func = tc.function\n print(f\" - {func.name}: {func.arguments}\")\n```\n\nExample:\n```text\nfunction displayResponse(data: any): void {\n for (const choice of data.choices ?? []) {\n // Handle multi_completion format (messages array)\n const messages = choice.messages ?? [];\n if (messages.length > 0) {\n for (const message of messages) {\n const content = message.content;\n if (content) {\n if (typeof content === \"string\") {\n console.log(content.length > 500 ? content.slice(0, 500) : content);\n } else if (Array.isArray(content)) {\n for (const chunk of content) {\n if (chunk.type === \"text\") {\n console.log(chunk.text ?? \"\");\n } else if (chunk.type === \"image_url\") {\n console.log(`[Image: ${(chunk.image_url ?? \"\").slice(0, 80)}...]`);\n }\n }\n }\n }\n const toolCalls = message.tool_calls ?? [];\n if (toolCalls.length > 0) {\n console.log(`Tool calls: ${toolCalls.length}`);\n for (const tc of toolCalls) {\n const func = tc.function ?? {};\n console.log(` - ${func.name}: ${func.arguments}`);\n }\n }\n }\n // Handle standard completion format (single message)\n } else {\n const message = choice.message ?? {};\n const content = message.content;\n if (content) {\n console.log(typeof content === \"string\" && content.length > 500 ? content.slice(0, 500) : content);\n }\n const toolCalls = message.tool_calls ?? [];\n if (toolCalls.length > 0) {\n console.log(`Tool calls: ${toolCalls.length}`);\n for (const tc of toolCalls) {\n const func = tc.function ?? {};\n console.log(` - ${func.name}: ${func.arguments}`);\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n\n response = await client.chat.complete_async(\n model=\"mistral-small-latest\",\n messages=[\n {\"role\": \"user\", \"content\": \"What is the capital of France?\"}\n ],\n )\n\n # Standard completion uses choice.message\n print(response.choices[0].message.content)\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n const response = await client.chat.complete({\n model: \"mistral-small-latest\",\n messages: [\n { role: \"user\", content: \"What is the capital of France?\" },\n ],\n });\n\n console.log(response.choices[0].message.content);\n}\n\nmain();\n```\n\nExample:\n```text\ncurl -X POST \"https://api.mistral.ai/v1/chat/completions\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"mistral-small-latest\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is the capital of France?\"}]\n }'\n```\n\nExample:\n```text\nThe capital of France is Paris.\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n\n response = await client.chat.complete_async(\n model=\"mistral-small-latest\",\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"Generate an image of a sunset over the ocean.\",\n }\n ],\n tools=[\n {\"type\": \"image_generation\"},\n ],\n )\n\n # With tools, use choice.messages (array) instead of choice.message\n display_response(response)\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n const response = await client.chat.complete({\n model: \"mistral-small-latest\",\n messages: [\n {\n role: \"user\",\n content: \"Generate an image of a sunset over the ocean.\",\n },\n ],\n tools: [\n { type: \"image_generation\" },\n ],\n });\n\n displayResponse(response);\n}\n\nmain();\n```\n\nExample:\n```text\ncurl -X POST \"https://api.mistral.ai/v1/chat/completions\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"mistral-small-latest\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Generate an image of a sunset over the ocean.\"}],\n \"tools\": [{\"type\": \"image_generation\"}]\n }'\n```\n\nExample:\n```text\n[Image: https://files.mistral.ai/generated/abc123...]\nHere's a beautiful sunset over the ocean as requested.\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n\n response = await client.chat.complete_async(\n model=\"mistral-small-latest\",\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"Using deepwiki, tell me about the structure of the sqlite/sqlite repository.\",\n }\n ],\n tools=[\n {\n \"type\": \"connector\",\n \"connector_id\": \"my_deepwiki\", # name or UUID\n },\n ],\n )\n\n # With connector tools, use choice.messages (array)\n display_response(response)\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n const response = await client.chat.complete({\n model: \"mistral-small-latest\",\n messages: [\n {\n role: \"user\",\n content:\n \"Using deepwiki, tell me about the structure of the sqlite/sqlite repository.\",\n },\n ],\n tools: [\n {\n type: \"connector\",\n connectorId: \"my_deepwiki\", // name or UUID\n },\n ],\n });\n\n displayResponse(response);\n}\n\nmain();\n```\n\nExample:\n```text\ncurl -X POST \"https://api.mistral.ai/v1/chat/completions\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"mistral-small-latest\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Using deepwiki, tell me about the structure of the sqlite/sqlite repository.\"}],\n \"tools\": [{\"type\": \"connector\", \"connector_id\": \"my_deepwiki\"}]\n }'\n```\n\nExample:\n```text\nThe sqlite/sqlite repository is organized into several key directories:\n- src/ — core SQLite source code\n- ext/ — extensions\n- test/ — test suite\n...\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n\n response = await client.chat.complete_async(\n model=\"mistral-small-latest\",\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"What tools do you have access to? List them briefly.\",\n }\n ],\n tools=[\n {\"type\": \"image_generation\"},\n {\n \"type\": \"connector\",\n \"connector_id\": \"my_deepwiki\",\n },\n ],\n )\n\n display_response(response)\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n const response = await client.chat.complete({\n model: \"mistral-small-latest\",\n messages: [\n {\n role: \"user\",\n content: \"What tools do you have access to? List them briefly.\",\n },\n ],\n tools: [\n { type: \"image_generation\" },\n {\n type: \"connector\",\n connectorId: \"my_deepwiki\",\n },\n ],\n });\n\n displayResponse(response);\n}\n\nmain();\n```\n\nExample:\n```text\ncurl -X POST \"https://api.mistral.ai/v1/chat/completions\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"mistral-small-latest\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What tools do you have access to? List them briefly.\"}],\n \"tools\": [\n {\"type\": \"image_generation\"},\n {\"type\": \"connector\", \"connector_id\": \"my_deepwiki\"}\n ]\n }'\n```\n\nExample:\n```text\nI have access to the following tools:\n1. Image Generation — create images from text descriptions\n2. read_wiki_structure — explore repository wiki structure\n3. read_wiki_contents — read specific wiki pages\n4. ask_question — ask questions about a repository\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n agent_id: str | None = None\n\n try:\n # Create the agent\n agent = await client.beta.agents.create_async(\n name=\"deepwiki_completion_agent\",\n description=\"Agent with DeepWiki access for code repository exploration\",\n model=\"mistral-small-latest\",\n instructions=\"You are a helpful assistant that can explore code repositories using DeepWiki. Be concise.\",\n tools=[\n {\n \"type\": \"connector\",\n \"connector_id\": \"my_deepwiki\",\n },\n ],\n )\n agent_id = str(agent.id)\n print(f\"Created agent: {agent.name} ({agent_id})\")\n\n finally:\n # Clean up\n if agent_id:\n await client.beta.agents.delete_async(agent_id=agent_id)\n print(f\"Deleted agent: {agent_id}\")\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n let agentId: string | undefined;\n\n try {\n // Create the agent\n const agent = await client.beta.agents.create({\n name: \"deepwiki_completion_agent\",\n description: \"Agent with DeepWiki access for code repository exploration\",\n model: \"mistral-small-latest\",\n instructions:\n \"You are a helpful assistant that can explore code repositories using DeepWiki. Be concise.\",\n tools: [\n {\n type: \"connector\",\n connectorId: \"my_deepwiki\",\n },\n ],\n });\n agentId = agent.id;\n console.log(`Created agent: ${agent.name} (${agentId})`);\n } finally {\n // Clean up\n if (agentId) {\n await client.beta.agents.delete({ agentId });\n console.log(`Deleted agent: ${agentId}`);\n }\n }\n}\n\nmain();\n```\n\nExample:\n```text\n# Create agent\ncurl -X POST \"https://api.mistral.ai/v1/agents\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"deepwiki_completion_agent\",\n \"description\": \"Agent with DeepWiki access\",\n \"model\": \"mistral-small-latest\",\n \"instructions\": \"You are a helpful assistant that can explore code repositories using DeepWiki. Be concise.\",\n \"tools\": [{\"type\": \"connector\", \"connector_id\": \"my_deepwiki\"}]\n }'\n\n# Delete agent when done (use the agent ID from the response above)\ncurl -X DELETE \"https://api.mistral.ai/v1/agents/<agent-id>\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\"\n```\n\nExample:\n```text\nCreated agent: deepwiki_completion_agent (b2c3d4e5-6789-01ab-cdef-234567890abc)\nDeleted agent: b2c3d4e5-6789-01ab-cdef-234567890abc\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n agent_id = \"your-agent-id\" # From agent creation\n\n response = await client.agents.complete_async(\n agent_id=agent_id,\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"What is the main purpose of the sqlite repository?\",\n }\n ],\n )\n\n display_response(response)\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n const agentId = \"your-agent-id\"; // From agent creation\n\n const response = await client.agents.complete({\n agentId,\n messages: [\n {\n role: \"user\",\n content: \"What is the main purpose of the sqlite repository?\",\n },\n ],\n });\n\n displayResponse(response);\n}\n\nmain();\n```\n\nExample:\n```text\ncurl -X POST \"https://api.mistral.ai/v1/agents/completions\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent_id\": \"<agent-id>\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is the main purpose of the sqlite repository?\"}]\n }'\n```\n\nExample:\n```text\nSQLite is a self-contained, serverless, zero-configuration SQL database engine. It is the most widely deployed database in the world, embedded in countless applications including web browsers, mobile phones, and operating systems.\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n google_oauth_token = \"your-google-oauth-token\"\n\n response = await client.chat.complete_async(\n model=\"mistral-small-latest\",\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"What's the latest email I received?\",\n }\n ],\n tools=[\n {\n \"type\": \"connector\",\n \"connector_id\": \"gmail\",\n \"authorization\": {\n \"type\": \"oauth2-token\",\n \"value\": google_oauth_token,\n },\n },\n ],\n )\n\n display_response(response)\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n const googleOauthToken = \"your-google-oauth-token\";\n\n const response = await client.chat.complete({\n model: \"mistral-small-latest\",\n messages: [\n {\n role: \"user\",\n content: \"What's the latest email I received?\",\n },\n ],\n tools: [\n {\n type: \"connector\",\n connector_id: \"gmail\",\n authorization: {\n type: \"oauth2-token\",\n value: googleOauthToken,\n },\n },\n ],\n });\n\n displayResponse(response);\n}\n\nmain();\n```\n\nExample:\n```text\ncurl -X POST \"https://api.mistral.ai/v1/chat/completions\" \\\n -H \"Authorization: Bearer ${MISTRAL_API_KEY}\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"mistral-small-latest\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is the latest email I received?\"}],\n \"tools\": [{\n \"type\": \"connector\",\n \"connector_id\": \"gmail\",\n \"authorization\": {\n \"type\": \"oauth2-token\",\n \"value\": \"<your-google-oauth-token>\"\n }\n }]\n }'\n```\n\nExample:\n```text\nYour latest email is from John Doe with the subject \"Q1 Report Review\" received at 2:30 PM today...\n```\n\nExample:\n```text\nimport asyncio\nfrom mistralai.client import Mistral\n\nAPI_KEY = \"your-api-key\"\n\n\nasync def main() -> None:\n client = Mistral(api_key=API_KEY)\n connector_id: str | None = None\n agent_id: str | None = None\n\n try:\n # 1. Create a connector\n connector = await client.beta.connectors.create_async(\n name=\"completions_deepwiki\",\n description=\"DeepWiki connector for completion testing\",\n server=\"https://mcp.deepwiki.com/mcp\",\n visibility=\"private\",\n )\n connector_id = str(connector.id)\n print(f\"Created connector: {connector.name} ({connector_id})\")\n\n # 2. Use it in a chat completion\n response = await client.chat.complete_async(\n model=\"mistral-small-latest\",\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"Using deepwiki, summarize the sqlite/sqlite repo in one sentence.\",\n }\n ],\n tools=[\n {\"type\": \"connector\", \"connector_id\": \"completions_deepwiki\"},\n ],\n )\n print(\"\\nChat completion response:\")\n display_response(response)\n\n # 3. Create an agent with the connector\n agent = await client.beta.agents.create_async(\n name=\"completions_test_agent\",\n description=\"Test agent for completion cookbook\",\n model=\"mistral-small-latest\",\n instructions=\"You are a helpful assistant. Be concise.\",\n tools=[\n {\"type\": \"connector\", \"connector_id\": connector_id},\n ],\n )\n agent_id = str(agent.id)\n print(f\"\\nCreated agent: {agent.name} ({agent_id})\")\n\n # 4. Use agent completions\n response = await client.agents.complete_async(\n agent_id=agent_id,\n messages=[\n {\n \"role\": \"user\",\n \"content\": \"What programming language is SQLite written in?\",\n }\n ],\n )\n print(\"\\nAgent completion response:\")\n display_response(response)\n\n print(\"\\n\" + \"=\" * 60)\n print(\" SUCCESS\")\n print(\"=\" * 60)\n\n finally:\n # Clean up\n print(\"\\nCleaning up...\")\n if agent_id:\n try:\n await client.beta.agents.delete_async(agent_id=agent_id)\n print(f\"Deleted agent: {agent_id}\")\n except Exception:\n pass\n\n if connector_id:\n try:\n await client.beta.connectors.delete_async(\n connector_id=connector_id,\n )\n print(f\"Deleted connector: {connector_id}\")\n except Exception:\n pass\n\n\nasyncio.run(main())\n```\n\nExample:\n```text\nimport { Mistral } from \"@mistralai/mistralai\";\n\nconst client = new Mistral({ apiKey: \"your-api-key\" });\n\nasync function main(): Promise<void> {\n let connectorId: string | undefined;\n let agentId: string | undefined;\n\n try {\n // 1. Create a connector\n const connector = await client.beta.connectors.create({\n name: \"completions_deepwiki\",\n description: \"DeepWiki connector for completion testing\",\n server: \"https://mcp.deepwiki.com/mcp\",\n visibility: \"private\",\n });\n connectorId = connector.id;\n console.log(`Created connector: ${connector.name} (${connectorId})`);\n\n // 2. Use it in a chat completion\n let response = await client.chat.complete({\n model: \"mistral-small-latest\",\n messages: [\n {\n role: \"user\",\n content: \"Using deepwiki, summarize the sqlite/sqlite repo in one sentence.\",\n },\n ],\n tools: [\n { type: \"connector\", connectorId: \"completions_deepwiki\" },\n ],\n });\n console.log(\"\\nChat completion response:\");\n displayResponse(response);\n\n // 3. Create an agent with the connector\n const agent = await client.beta.agents.create({\n name: \"completions_test_agent\",\n description: \"Test agent for completion cookbook\",\n model: \"mistral-small-latest\",\n instructions: \"You are a helpful assistant. Be concise.\",\n tools: [\n { type: \"connector\", connectorId },\n ],\n });\n agentId = agent.id;\n console.log(`\\nCreated agent: ${agent.name} (${agentId})`);\n\n // 4. Use agent completions\n response = await client.agents.complete({\n agentId,\n messages: [\n {\n role: \"user\",\n content: \"What programming language is SQLite written in?\",\n },\n ],\n });\n console.log(\"\\nAgent completion response:\");\n displayResponse(response);\n\n console.log(\"\\n\" + \"=\".repeat(60));\n console.log(\" SUCCESS\");\n console.log(\"=\".repeat(60));\n } finally {\n // Clean up\n console.log(\"\\nCleaning up...\");\n if (agentId) {\n try {\n await client.beta.agents.delete({ agentId });\n console.log(`Deleted agent: ${agentId}`);\n } catch {\n // ignore\n }\n }\n if (connectorId) {\n try {\n await client.beta.connectors.delete({ connectorId });\n console.log(`Deleted connector: ${connectorId}`);\n } catch {\n // ignore\n }\n }\n }\n}\n\nmain();\n```\n\nExample:\n```text\nCreated connector: completions_deepwiki (c3d4e5f6-...)\n\nChat completion response:\nSQLite is a self-contained, serverless SQL database engine used worldwide.\n\nCreated agent: completions_test_agent (d4e5f6a7-...)\n\nAgent completion response:\nSQLite is primarily written in C.\n\n============================================================\n SUCCESS\n============================================================\n\nCleaning up...\nDeleted agent: d4e5f6a7-...\nDeleted connector: c3d4e5f6-...\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.672Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":36,"totalLines":895,"estimatedTokens":5725}}185{"id":"doc-chat_with_your_pdf_using_mistral_and_gradio_mist-50519f5f","source":"documentation","title":"Chat with Your PDF using Mistral and Gradio - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/third_party-gradio-readme","text":"Example:\n```text\npip install gradio mistralai\n```\n\nExample:\n```text\nimport gradio as gr\nfrom mistralai.client import MistralClient\nfrom mistralai.models.chat_completion import ChatMessage\n```\n\nExample:\n```text\nmistral_api_key = \"your_api_key\"\ncli = MistralClient(api_key = mistral_api_key)\n```\n\nExample:\n```text\ndef ask_mistral(message: str, history: list):\n return \"Bot's response.\"\n\napp = gr.ChatInterface(fn = ask_mistral, title = \"Ask Mistral\")\napp.launch()\n```\n\nExample:\n```text\ndef ask_mistral(message: str, history: list):\n messages = []\n for couple in history:\n messages.append(ChatMessage(role = \"user\", content = couple[0]))\n messages.append(ChatMessage(role = \"assistant\", content = couple[1]))\n messages.append(ChatMessage(role = \"user\", content = message))\n\n full_response = \"\"\n for chunk in cli.chat_stream(model = \"open-mistral-7b\", messages = messages, max_tokens = 1024):\n full_response += chunk.choices[0].delta.content\n yield full_response\n```\n\nExample:\n```text\nimport gradio as gr\nfrom mistralai.client import MistralClient\nfrom mistralai.models.chat_completion import ChatMessage\n\nmistral_api_key = \"your_api_key\"\ncli = MistralClient(api_key = mistral_api_key)\n\ndef ask_mistral(message: str, history: list):\n messages = []\n for couple in history:\n messages.append(ChatMessage(role = \"user\", content = couple[0]))\n messages.append(ChatMessage(role = \"assistant\", content = couple[1]))\n messages.append(ChatMessage(role = \"user\", content = message))\n\n full_response = \"\"\n for chunk in cli.chat_stream(model = \"open-mistral-7b\", messages = messages, max_tokens = 1024):\n full_response += chunk.choices[0].delta.content\n yield full_response\n\napp = gr.ChatInterface(fn = ask_mistral, title = \"Ask Mistral\")\napp.launch()\n```\n\nExample:\n```text\npip install numpy PyPDF2 faiss\n```\n\nExample:\n```text\nimport gradio as gr\nfrom mistralai.client import MistralClient\nfrom mistralai.models.chat_completion import ChatMessage\nimport numpy as np\nimport PyPDF2\nimport faiss\n```\n\nExample:\n```text\napp = gr.ChatInterface(fn = ask_mistral, title = \"Ask Mistral and talk to your PDFs\", multimodal = True)\napp.launch()\n```\n\nExample:\n```text\ndef ask_mistral(message: str, history: list):\n messages = []\n pdfs = message[\"files\"]\n for couple in history:\n if type(couple[0]) is tuple:\n pdfs += couple[0]\n else:\n messages.append(ChatMessage(role = \"user\", content = couple[0]))\n messages.append(ChatMessage(role = \"assistant\", content = couple[1]))\n\n messages.append(ChatMessage(role = \"user\", content = message[\"text\"]))\n\n full_response = \"\"\n for chunk in cli.chat_stream(model = \"open-mistral-7b\", messages = messages, max_tokens = 1024):\n full_response += chunk.choices[0].delta.content\n yield full_response\n```\n\nExample:\n```text\ndef get_text_embedding(input: str):\n embeddings_batch_response = cli.embeddings(\n model = \"mistral-embed\",\n input = input\n )\n return embeddings_batch_response.data[0].embedding\n```\n\nExample:\n```text\ndef rag_pdf(pdfs: list, question: str) -> str:\n chunk_size = 4096\n chunks = []\n for pdf in pdfs:\n chunks += [pdf[i:i + chunk_size] for i in range(0, len(pdf), chunk_size)]\n\n text_embeddings = np.array([get_text_embedding(chunk) for chunk in chunks])\n d = text_embeddings.shape[1]\n index = faiss.IndexFlatL2(d)\n index.add(text_embeddings)\n\n question_embeddings = np.array([get_text_embedding(question)])\n D, I = index.search(question_embeddings, k = 4)\n retrieved_chunk = [chunks[i] for i in I.tolist()[0]]\n text_retrieved = \"\\n\\n\".join(retrieved_chunk)\n return text_retrieved\n```\n\nExample:\n```text\ndef ask_mistral(message: str, history: list):\n messages = []\n pdfs = message[\"files\"]\n for couple in history:\n if type(couple[0]) is tuple:\n pdfs += couple[0]\n else:\n messages.append(ChatMessage(role = \"user\", content = couple[0]))\n messages.append(ChatMessage(role = \"assistant\", content = couple[1]))\n\n if pdfs:\n pdfs_extracted = []\n for pdf in pdfs:\n reader = PyPDF2.PdfReader(pdf)\n txt = \"\"\n for page in reader.pages:\n txt += page.extract_text()\n pdfs_extracted.append(txt)\n\n retrieved_text = rag_pdf(pdfs_extracted, message[\"text\"])\n messages.append(ChatMessage(role = \"user\", content = retrieved_text + \"\\n\\n\" + message[\"text\"]))\n else:\n messages.append(ChatMessage(role = \"user\", content = message[\"text\"]))\n\n full_response = \"\"\n for chunk in cli.chat_stream(model = \"open-mistral-7b\", messages = messages, max_tokens = 1024):\n full_response += chunk.choices[0].delta.content\n yield full_response\n```\n\nExample:\n```text\nimport gradio as gr\nfrom mistralai.client import MistralClient\nfrom mistralai.models.chat_completion import ChatMessage\nimport numpy as np\nimport PyPDF2\nimport faiss\n\nmistral_api_key = \"your_api_key\"\ncli = MistralClient(api_key = mistral_api_key)\n\ndef get_text_embedding(input: str):\n embeddings_batch_response = cli.embeddings(\n model = \"mistral-embed\",\n input = input\n )\n return embeddings_batch_response.data[0].embedding\n\ndef rag_pdf(pdfs: list, question: str) -> str:\n chunk_size = 4096\n chunks = []\n for pdf in pdfs:\n chunks += [pdf[i:i + chunk_size] for i in range(0, len(pdf), chunk_size)]\n\n text_embeddings = np.array([get_text_embedding(chunk) for chunk in chunks])\n d = text_embeddings.shape[1]\n index = faiss.IndexFlatL2(d)\n index.add(text_embeddings)\n\n question_embeddings = np.array([get_text_embedding(question)])\n D, I = index.search(question_embeddings, k = 4)\n retrieved_chunk = [chunks[i] for i in I.tolist()[0]]\n text_retrieved = \"\\n\\n\".join(retrieved_chunk)\n return text_retrieved\n\ndef ask_mistral(message: str, history: list):\n messages = []\n pdfs = message[\"files\"]\n for couple in history:\n if type(couple[0]) is tuple:\n pdfs += couple[0]\n else:\n messages.append(ChatMessage(role= \"user\", content = couple[0]))\n messages.append(ChatMessage(role= \"assistant\", content = couple[1]))\n\n if pdfs:\n pdfs_extracted = []\n for pdf in pdfs:\n reader = PyPDF2.PdfReader(pdf)\n txt = \"\"\n for page in reader.pages:\n txt += page.extract_text()\n pdfs_extracted.append(txt)\n\n retrieved_text = rag_pdf(pdfs_extracted, message[\"text\"])\n messages.append(ChatMessage(role = \"user\", content = retrieved_text + \"\\n\\n\" + message[\"text\"]))\n else:\n messages.append(ChatMessage(role = \"user\", content = message[\"text\"]))\n\n full_response = \"\"\n for chunk in cli.chat_stream(model = \"open-mistral-7b\", messages = messages, max_tokens = 1024):\n full_response += chunk.choices[0].delta.content\n yield full_response\n\napp = gr.ChatInterface(fn = ask_mistral, title = \"Ask Mistral and talk to your PDFs\", multimodal = True)\napp.launch()\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.684Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":14,"totalLines":240,"estimatedTokens":1789}}186{"id":"doc-rag_observability_with_mistral_ai_and_phoenix_mi-ce5b80b5","source":"documentation","title":"RAG Observability with Mistral AI and Phoenix - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/third_party-phoenix-arize_phoenix_evaluate_rag","text":"Example:\n```text\n!pip install -qq arize-phoenix gcsfs nest_asyncio openinference-instrumentation-llama_index\n!pip install -q llama-index-embeddings-mistralai\n!pip install -q llama-index-llms-mistralai\n!pip install -qq \"mistralai>=1.0.0\"\n```\n\nExample:\n```text\nimport os\nfrom getpass import getpass\nfrom typing import Any, Dict\n\nimport pandas as pd\nimport phoenix as px\nfrom phoenix.otel import register\nfrom mistralai.client import Mistral\nfrom openinference.instrumentation.llama_index import LlamaIndexInstrumentor\n\nimport nest_asyncio\nnest_asyncio.apply()\n\nimport pandas as pd\nfrom llama_index.core import SimpleDirectoryReader, VectorStoreIndex\nfrom llama_index.core.node_parser import SimpleNodeParser\nfrom llama_index.llms.mistralai import MistralAI\nfrom llama_index.embeddings.mistralai import MistralAIEmbedding\n\npd.set_option(\"display.max_colwidth\", None)\n```\n\nExample:\n```text\nif not (api_key := os.getenv(\"MISTRAL_API_KEY\")):\n api_key = getpass(\"🔑 Enter your Mistral AI API key: \")\nos.environ[\"MISTRAL_API_KEY\"] = api_key\nclient = Mistral(api_key=api_key)\n```\n\nExample:\n```text\nsession =px.launch_app()\n```\n\nExample:\n```text\ntracer_provider = register()\nLlamaIndexInstrumentor().instrument(skip_dep_check=True, tracer_provider=tracer_provider)\n```\n\nExample:\n```text\nimport tempfile\nfrom urllib.request import urlretrieve\n\nwith tempfile.NamedTemporaryFile() as tf:\n urlretrieve(\n \"https://raw.githubusercontent.com/Arize-ai/phoenix-assets/main/data/paul_graham/paul_graham_essay.txt\",\n tf.name,\n )\n documents = SimpleDirectoryReader(input_files=[tf.name]).load_data()\n```\n\nExample:\n```text\nfrom llama_index.core import Settings\n\n# Define an LLM\nllm = MistralAI()\nembed_model = MistralAIEmbedding()\nSettings.llm = llm\nSettings.embed_model = embed_model\n\n# Build index with a chunk_size of 512\nnode_parser = SimpleNodeParser.from_defaults(chunk_size=512)\nnodes = node_parser.get_nodes_from_documents(documents)\nvector_index = VectorStoreIndex(nodes)\n```\n\nExample:\n```text\nquery_engine = vector_index.as_query_engine()\n```\n\nExample:\n```text\nresponse_vector = query_engine.query(\"What did the author do growing up?\")\n```\n\nExample:\n```text\nresponse_vector.response\n```\n\nExample:\n```text\nprint(\"phoenix URL\", session.url)\n```\n\nExample:\n```text\nquestions_list = [\n \"What did the author do growing up?\",\n \"What was the author's major?\",\n \"What was the author's minor?\",\n \"What was the author's favorite class?\",\n \"What was the author's least favorite class?\",\n]\n\nfor question in questions_list:\n response_vector = query_engine.query(question)\n```\n\nExample:\n```text\nfrom phoenix.session.evaluation import get_retrieved_documents\n\nretrieved_documents_df = get_retrieved_documents(px.Client())\nretrieved_documents_df\n```\n\nExample:\n```text\nfrom phoenix.evals import (\n MistralAIModel,\n RelevanceEvaluator,\n run_evals,\n)\n\nrelevance_evaluator = RelevanceEvaluator(MistralAIModel)\n\nretrieved_documents_relevance_df = run_evals(\n evaluators=[relevance_evaluator],\n dataframe=retrieved_documents_df,\n provide_explanation=True,\n concurrency=20,\n)[0]\n```\n\nExample:\n```text\nretrieved_documents_relevance_df.head()\n```\n\nExample:\n```text\ndocuments_with_relevance_df = pd.concat(\n [retrieved_documents_df, retrieved_documents_relevance_df.add_prefix(\"eval_\")], axis=1\n)\ndocuments_with_relevance_df\n```\n\nExample:\n```text\nfrom phoenix.session.evaluation import get_qa_with_reference\n\nqa_with_reference_df = get_qa_with_reference(px.Client())\nqa_with_reference_df\n```\n\nExample:\n```text\nfrom phoenix.evals import (\n HallucinationEvaluator,\n MistralAIModel,\n QAEvaluator,\n run_evals,\n)\n\nqa_evaluator = QAEvaluator(MistralAIModel())\nhallucination_evaluator = HallucinationEvaluator(MistralAIModel())\n\nqa_correctness_eval_df, hallucination_eval_df = run_evals(\n evaluators=[qa_evaluator, hallucination_evaluator],\n dataframe=qa_with_reference_df,\n provide_explanation=True,\n concurrency=20,\n)\n```\n\nExample:\n```text\nqa_correctness_eval_df.head()\n```\n\nExample:\n```text\nhallucination_eval_df.head()\n```\n\nExample:\n```text\nfrom phoenix.trace import SpanEvaluations, DocumentEvaluations\n\npx.Client().log_evaluations(\n SpanEvaluations(dataframe=qa_correctness_eval_df, eval_name=\"Q&A Correctness\"),\n SpanEvaluations(dataframe=hallucination_eval_df, eval_name=\"Hallucination\"),\n DocumentEvaluations(dataframe=retrieved_documents_relevance_df, eval_name=\"relevance\"),\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.692Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":21,"totalLines":203,"estimatedTokens":1115}}187{"id":"doc-mistral_ai_search_engine_mistral_ai_cookbook_mis-cd52ebb9","source":"documentation","title":"Mistral AI search engine - Mistral AI Cookbook | Mistral Docs","url":"https://docs.mistral.ai/resources/cookbooks/mistral-rag-mistral-search-engine","text":"Example:\n```text\n!pip install aiohttp==3.9.5 beautifulsoup4==4.12.3 faiss_cpu==1.8.0 mistralai nest_asyncio==1.6.0 numpy==1.26.4 pandas==2.2.2 python-dotenv==1.0.1 requests==2.32.3\n```\n\nExample:\n```text\nfrom dotenv import load_dotenv\nimport os\n\nload_dotenv() # load environment variables from .env file\nMISTRAL_API_KEY = os.getenv(\"MISTRAL_API_KEY\")\n```\n\nExample:\n```text\nimport aiohttp\nimport asyncio\nimport nest_asyncio\nfrom bs4 import BeautifulSoup\nfrom concurrent.futures import ThreadPoolExecutor\nimport requests\nimport re\nimport pandas as pd\nimport faiss\nimport numpy as np\nfrom mistralai import Mistral\n\n# Apply the nest_asyncio patch\nnest_asyncio.apply()\n\nheaders = {\n \"User-Agent\": \"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36\"\n}\n\ntotal_results_to_fetch = 10 # total number of results to fetch\nchunk_size = 1000 # size of each text chunk\n\ndataframe_out_path = 'temp.csv'\nfaiss_index_path = 'faiss_index.index'\n\nmistral_api_key = MISTRAL_API_KEY # replace with your actual API key\nclient = Mistral(api_key=mistral_api_key)\n\nasync def fetch(session, url, params=None):\n async with session.get(url, params=params, headers=headers, timeout=30) as response:\n return await response.text()\n\nasync def fetch_page(session, params, page_num, results):\n print(f\"Fetching page: {page_num}\")\n params[\"start\"] = (page_num - 1) * params[\"num\"]\n html = await fetch(session, \"https://www.google.com/search\", params)\n soup = BeautifulSoup(html, 'html.parser')\n\n for result in soup.select(\".tF2Cxc\"):\n if len(results) >= total_results_to_fetch:\n break\n title = result.select_one(\".DKV0Md\").text\n links = result.select_one(\".yuRUbf a\")[\"href\"]\n\n results.append({\n \"title\": title,\n \"links\": links\n })\n\nasync def fetch_content(session, url):\n async with session.get(url, headers=headers, timeout=30) as response:\n return await response.text()\n\nasync def fetch_all_content(urls):\n async with aiohttp.ClientSession() as session:\n tasks = [fetch_content(session, url) for url in urls]\n return await asyncio.gather(*tasks)\n\ndef get_all_text_from_url(url):\n response = requests.get(url, headers=headers, timeout=30)\n soup = BeautifulSoup(response.text, 'html.parser')\n for script in soup([\"script\", \"style\"]):\n script.extract()\n text = soup.get_text()\n lines = (line.strip() for line in text.splitlines())\n chunks = (phrase.strip() for line in lines for phrase in line.split(\" \"))\n text = '\\n'.join(chunk for chunk in chunks if chunk)\n return text\n\ndef split_text_into_chunks(text, chunk_size):\n sentences = re.split(r'(?<=[.!?]) +', text)\n chunks = []\n current_chunk = []\n\n for sentence in sentences:\n if sum(len(s) for s in current_chunk) + len(sentence) + 1 > chunk_size:\n chunks.append(' '.join(current_chunk))\n current_chunk = [sentence]\n else:\n current_chunk.append(sentence)\n\n if current_chunk:\n chunks.append(' '.join(current_chunk))\n\n return chunks\n\nasync def process_text_content(texts, chunk_size):\n loop = asyncio.get_event_loop()\n tasks = [loop.run_in_executor(None, split_text_into_chunks, text, chunk_size) for text in texts]\n return await asyncio.gather(*tasks)\n\nasync def get_embeddings_from_mistral(client, text_chunks):\n response = client.embeddings.create(model=\"mistral-embed\", inputs=text_chunks)\n return [embedding.embedding for embedding in response.data]\n\nasync def fetch_and_process_data(search_query):\n params = {\n \"q\": search_query, # query example\n \"hl\": \"en\", # language\n \"gl\": \"uk\", # country of the search, UK -> United Kingdom\n \"start\": 0, # number page by default up to 0\n \"num\": 10 # parameter defines the maximum number of results to return per page.\n }\n \n async with aiohttp.ClientSession() as session:\n page_num = 0\n results = []\n while len(results) < total_results_to_fetch:\n page_num += 1\n await fetch_page(session, params, page_num, results)\n\n urls = [result['links'] for result in results]\n\n with ThreadPoolExecutor(max_workers=10) as executor:\n loop = asyncio.get_event_loop()\n texts = await asyncio.gather(\n *[loop.run_in_executor(executor, get_all_text_from_url, url) for url in urls]\n )\n\n chunks_list = await process_text_content(texts, chunk_size)\n\n embeddings_list = []\n for chunks in chunks_list:\n embeddings = await get_embeddings_from_mistral(client, chunks)\n embeddings_list.append(embeddings)\n\n data = []\n for i, result in enumerate(results):\n if i >= len(embeddings_list):\n print(f\"Error: No embeddings returned for result {i}\")\n continue\n for j, chunk in enumerate(chunks_list[i]):\n if j >= len(embeddings_list[i]):\n print(f\"Error: No embedding returned for chunk {j} of result {i}\")\n continue\n data.append({\n 'title': result['title'],\n 'url': result['links'],\n 'chunk': chunk,\n 'embedding': embeddings_list[i][j]\n })\n\n df = pd.DataFrame(data)\n df.to_csv(dataframe_out_path, index=False)\n\n # FAISS indexing\n dimension = len(embeddings_list[0][0]) # assuming all embeddings have the same dimension\n index = faiss.IndexFlatL2(dimension)\n\n embeddings = np.array([entry['embedding'] for entry in data], dtype=np.float32)\n index.add(embeddings)\n\n faiss.write_index(index, faiss_index_path)\n\nawait fetch_and_process_data(\"What is the latest news about apple and openai?\")\n```\n\nExample:\n```text\ndef query_vector_store(query_embedding, k=5):\n \"\"\"\n Query the FAISS vector store and return the text results along with metadata.\n\n :param query_embedding: The embedding to query with.\n :param k: Number of nearest neighbors to retrieve.\n :return: List of dictionaries containing text results and metadata of the k nearest neighbors.\n \"\"\"\n # Load the index\n\n index = faiss.read_index(faiss_index_path)\n\n # Ensure the query embedding is a numpy array with the correct shape\n if not isinstance(query_embedding, np.ndarray):\n query_embedding = np.array(query_embedding, dtype=np.float32)\n if query_embedding.ndim == 1:\n query_embedding = np.expand_dims(query_embedding, axis=0)\n\n # Query the index\n distances, indices = index.search(query_embedding, k)\n \n # Load the dataframe\n df = pd.read_csv(dataframe_out_path)\n \n # Retrieve the text results and metadata\n results = []\n for idx in indices[0]:\n result = {\n 'title': df.iloc[idx]['title'],\n 'url': df.iloc[idx]['url'],\n 'chunk': df.iloc[idx]['chunk']\n }\n results.append(result)\n \n return results\n\ndef query_embeddings(texts):\n \"\"\"\n Convert text to embeddings using Mistral AI API.\n\n :param api_key: Your Mistral API key.\n :param texts: List of texts to convert to embeddings.\n :return: List of embeddings.\n \"\"\"\n client = Mistral(api_key=MISTRAL_API_KEY)\n response = client.embeddings.create(model=\"mistral-embed\", inputs=[texts])\n return [embedding.embedding for embedding in response.data]\n\n\nembeddings = query_embeddings(\"AGI\")\nresults = query_vector_store(embeddings[0], k=5)\nresults\n```\n\nExample:\n```text\nnest_asyncio.apply()\n\ntools = [\n {\n \"type\": \"function\",\n \"function\": {\n \"name\": \"mistral_web_search\",\n \"description\": \"Fetch and process data from Google search based on a query, store results in FAISS vector store, and retrieve results.\",\n \"parameters\": {\n \"type\": \"object\",\n \"properties\": {\n \"search_query\": {\n \"type\": \"string\",\n \"description\": \"The search query to use for fetching data from Google search.\"\n }\n },\n \"required\": [\"search_query\"]\n },\n },\n },\n]\n\n\n\n\ndef mistral_web_search(search_query: str):\n async def run_search():\n await fetch_and_process_data(search_query)\n embeddings = query_embeddings(search_query)\n results_ = query_vector_store(embeddings[0], k=5)\n return results_\n\n return asyncio.run(run_search())\n\nsearch_query = \"mistral and openai\"\nresults = mistral_web_search(search_query)\nprint(results)\n```\n\nExample:\n```text\n\"\"\" little helper function to extract only the texts \"\"\"\ndef tools_to_str(tools_output: list) -> str:\n return '\\n'.join([tool['chunk'] for tool in tools_output])\n\n\ntools_to_str(mistral_web_search(search_query))\n```\n\nExample:\n```text\nimport functools\n\nnames_to_functions = {\n 'mistral_web_search': functools.partial(mistral_web_search),\n}\n```\n\nExample:\n```text\nmessages = [\n {\"role\": \"user\", \"content\": \"What happend during apple WWDC 2024?\"},\n]\n```\n\nExample:\n```text\nmodel = \"mistral-large-latest\"\n\nclient = Mistral(api_key=MISTRAL_API_KEY)\nresponse = client.chat.complete(model=model, messages=messages, tools=tools, tool_choice=\"any\")\nresponse\n```\n\nExample:\n```text\nmessages.append(response.choices[0].message)\n```\n\nExample:\n```text\nimport json\n\ntool_call = response.choices[0].message.tool_calls[0]\nfunction_name = tool_call.function.name\nfunction_params = json.loads(tool_call.function.arguments)\n\n\nprint(\"\\nfunction_name: \", function_name, \"\\nfunction_params: \", function_params)\n```\n\nExample:\n```text\nfunction_result = tools_to_str(names_to_functions[function_name](**function_params))\nfunction_result\n```\n\nExample:\n```text\nmessages.append({\"role\": \"tool\", \"name\": function_name, \"content\": function_result, \"tool_call_id\": tool_call.id})\n\nresponse = client.chat.complete(model=model, messages=messages)\nresponse.choices[0].message.content\n```\n\nExample:\n```text\nmessages = []\n\nwhile True:\n input_ = input(\"Ask: \")\n messages.append({\"role\": \"user\", \"content\": input_})\n response = client.chat.complete(model=model, messages=messages, tools=tools, tool_choice=\"any\")\n messages.append(response.choices[0].message)\n print(response.choices[0].message.content)\n tool_call = response.choices[0].message.tool_calls[0]\n function_name = tool_call.function.name\n function_params = json.loads(tool_call.function.arguments)\n\n function_result_raw = names_to_functions[function_name](**function_params)\n print(\"sources: \", [f\"{source['title']} - {source['url']}\" for source in function_result_raw])\n function_result_text = tools_to_str(function_result_raw)\n messages.append({\"role\": \"tool\", \"name\": function_name, \"content\": function_result_text, \"tool_call_id\": tool_call.id})\n\n response = client.chat.complete(model=model, messages=messages)\n final_response = response.choices[0].message.content\n print(final_response)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.696Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":14,"totalLines":361,"estimatedTokens":2786}}188{"id":"doc-understand_version_control_netlify_docs-5e3136de","source":"documentation","title":"Understand version control | Netlify Docs","url":"https://docs.netlify.com/start/core-concepts/version-control/","text":"Netlify Docs Start Build Fundamentals Build with AI Configure builds Git workflows Environment variables Frameworks Post-processing User-Agent categories Primitives AI Gateway Serverless Functions Edge Functions Image CDN Blobs Database Caching Async Workloads Deploy Manage Accounts & Billing Projects Domains Data & Storage Security & access Monitoring & Insights Preview Servers Forms Visual Editor Routing & Redirects Extend Install & use Develop & share Netlify SDK for extensions Building code agents Framework adapter API Reference Error reference Netlify skills Request processing order CLI reference Netlify SDK for extensions Visual Editor reference APIs Netlify API Database API Frameworks API Cache API Blobs API Serverless Functions API Edge Functions API Dev Tool Guides API and CLI guides Terraform provider Command Palette Resources Troubleshooting Changelog Examples Migrate Support Checklists Release phases Enterprise credits AI Start Start Choose your path What is Netlify? Quickstarts Netlify Drop Quickstart Create a new project with an AI agent Iterate on a project with an AI agent Deploy from your repository Deploy from AI code generation tool Create a repo from Netlify Core Concepts Version control Primitives Framework setup guides Agent setup guides Netlify CLI Netlify API Beginner’s glossary On this page Overview What is Git? What is a Git provider? Learn more On this page Overview What is Git? What is a Git provider? Learn more For the complete Netlify documentation index, see llms.txt. Markdown versions of any documentation page are available by appending .md to its URL. More flexibility and credits now available for Pro plans 🎉 Start / Core Concepts / Understand version control Copy page View as Markdown Copy as Markdown View as Markdown Version control is a way of tracking changes to your project over time. Think of it like a detailed undo history. Version control allows you to save changes as you build so you can go back to any earlier version. Netlify has version control built-in so you can always rollback to a previous version of your project, even if your project is not connected to a Git repository. What is Git?Section titled “What is Git?” Git is the most widely used version control tool. When your project uses Git, every change you save (called a commit) is recorded with a description of what changed and when. You don't need to use Git to publish a project on Netlify. If you built your project with an AI tool and downloaded the files, you can publish instantly using Netlify Drop without Git. What is a Git provider?Section titled “What is a Git provider?” A Git Provider is a site where you can host or store your project's Git repository. Netlify supports these Git GitLab BitBucket Azure DevOps When you connect your project to a hosted Git repository, you time you save a change to your project, Netlify automatically rebuilds and republishes your site. Deploy proposed change gets its own preview URL before it goes live. History and full project history lives in one place. Learn moreSection titled “Learn more” Deploy from your repository Git workflows Last 30, 2026 Did you find this doc useful? Your feedback helps us improve our docs. Do not fill in this field Email (optional) What else would you like to tell us about this doc? I consent to being contacted regarding my feedback Send Netlify Careers Blog Terms Privacy Reading these docs with an AI agent? Append .md to any docs URL for its Markdown source, or start from the full llms.txt index. © 2026 Netlify Ask Netlify Help\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:18.171Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":893}}189{"id":"doc-asset_sources_netlify_docs-9a1f9994","source":"documentation","title":"Asset sources | Netlify Docs","url":"https://docs.netlify.com/manage/visual-editor/asset-sources/overview/","text":"Netlify Docs Start Build Fundamentals Build with AI Configure builds Git workflows Environment variables Frameworks Post-processing User-Agent categories Primitives AI Gateway Serverless Functions Edge Functions Image CDN Blobs Database Caching Async Workloads Deploy Manage Accounts & Billing Projects Domains Data & Storage Security & access Monitoring & Insights Preview Servers Forms Visual Editor Routing & Redirects Extend Install & use Develop & share Netlify SDK for extensions Building code agents Framework adapter API Reference Error reference Netlify skills Request processing order CLI reference Netlify SDK for extensions Visual Editor reference APIs Netlify API Database API Frameworks API Cache API Blobs API Serverless Functions API Edge Functions API Dev Tool Guides API and CLI guides Terraform provider Command Palette Resources Troubleshooting Changelog Examples Migrate Support Checklists Release phases Enterprise credits AI Visual editing Visual editing Visual editor overview Get started Get started overview Visual editor quickstart Set up visual editor locally Customize editing experience Manage visual editing Visual editor walkthrough help Troubleshoot visual editor setup Visual editor glossary Concepts Concepts overview How visual editor works Structured content Content-driven development Reusable content Two-way content sync Configuration Analytics Automatic content reload Content presets Custom actions Document hooks Editorial permissions Global styles Local development Localization Personalization Preview controls Sitemap navigator Tree view Version control Asset sources Overview Aprimo Bynder Cloudinary Cloud setup Overview Container Git branching Import Previewing Publishing Content sources Overview Contentful Contentstack Custom DatoCMS Git Hygraph Sanity Frameworks Overview Angular Astro Custom Eleventy Gatsby Hydrogen Next.js Nuxt 3 SvelteKit Visual editing Overview Content editor Custom fields Field controls Field groups Inline editor Page editor Sidebar buttons Status labels Troubleshoot On this page Overview Direct integrations Custom sources How custom sources work Custom source configuration Image previews On this page Overview Direct integrations Custom sources How custom sources work Custom source configuration Image previews For the complete Netlify documentation index, see llms.txt. Markdown versions of any documentation page are available by appending from \"@stackbit/types\"; export default defineStackbitConfig({ stackbitVersion: \"~0.6.0\", contentSources: [ // ... ], assetSources: [ { name: \"asset-source-name\", type: \"iframe\", url: \"https://www.asset-source-url.com\", transform: ({ assetData }) => assetData.imageUrl, preview: ({ assetData }: { }) => ({ }) } ], modelExtensions: [ { name: \"hero\", type: \"object\", fields: [{ name: \"image\", type: \"image\", source: \"asset-source-name\" }] } ]}); Image previewsSection titled “Image previews” Image previews are used by Visual Editor when rendering an image field (or an object with an image field) in a form editor. These previews are controlled by the preview property defined on the asset source. Keep in mind that the assetData received by the function is in the same shape as it is stored in the content source. The example below assumes that the image data is stored as an object with a url property representing the image source. // stackbit.config.tsexport default defineStackbitConfig({ stackbitVersion: \"~0.6.0\", assetSources: [ { name: \"asset-source-name\", type: \"iframe\", url: \"https://www.asset-source-url.com\", transform: ({ assetData }) => assetData.imageUrl, preview: ({ assetData }: { }) => ({ }) } ]}); Last 14, 2025 PreviousVersion controlNextAprimo Did you find this doc useful? Your feedback helps us improve our docs. Do not fill in this field Email (optional) What else would you like to tell us about this doc? I consent to being contacted regarding my feedback Send Netlify Careers Blog Terms Privacy Reading these docs with an AI agent? Append .md to any docs URL for its Markdown source, or start from the full llms.txt index. © 2026 Netlify Ask Netlify Help\n\nExample:\n```text\n// stackbit.config.tsimport { defineStackbitConfig } from \"@stackbit/types\";\nexport default defineStackbitConfig({ stackbitVersion: \"~0.6.0\", contentSources: [ // ... ], assetSources: [ { name: \"asset-source-name\", type: \"iframe\", url: \"https://www.asset-source-url.com\", transform: ({ assetData }) => assetData.imageUrl, preview: ({ assetData }: { assetData: string }) => ({ image: assetData }) } ], modelExtensions: [ { name: \"hero\", type: \"object\", fields: [{ name: \"image\", type: \"image\", source: \"asset-source-name\" }] } ]});\n```\n\nExample:\n```text\n// stackbit.config.tsexport default defineStackbitConfig({ stackbitVersion: \"~0.6.0\", assetSources: [ { name: \"asset-source-name\", type: \"iframe\", url: \"https://www.asset-source-url.com\", transform: ({ assetData }) => assetData.imageUrl, preview: ({ assetData }: { assetData: string }) => ({ image: assetData.url }) } ]});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:18.429Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":14,"estimatedTokens":1282}}190{"id":"doc-localization_netlify_docs-a200373c","source":"documentation","title":"Localization | Netlify Docs","url":"https://docs.netlify.com/manage/visual-editor/localization/","text":"Netlify Docs Start Build Fundamentals Build with AI Configure builds Git workflows Environment variables Frameworks Post-processing User-Agent categories Primitives AI Gateway Serverless Functions Edge Functions Image CDN Blobs Database Caching Async Workloads Deploy Manage Accounts & Billing Projects Domains Data & Storage Security & access Monitoring & Insights Preview Servers Forms Visual Editor Routing & Redirects Extend Install & use Develop & share Netlify SDK for extensions Building code agents Framework adapter API Reference Error reference Netlify skills Request processing order CLI reference Netlify SDK for extensions Visual Editor reference APIs Netlify API Database API Frameworks API Cache API Blobs API Serverless Functions API Edge Functions API Dev Tool Guides API and CLI guides Terraform provider Command Palette Resources Troubleshooting Changelog Examples Migrate Support Checklists Release phases Enterprise credits AI Visual editing Visual editing Visual editor overview Get started Get started overview Visual editor quickstart Set up visual editor locally Customize editing experience Manage visual editing Visual editor walkthrough help Troubleshoot visual editor setup Visual editor glossary Concepts Concepts overview How visual editor works Structured content Content-driven development Reusable content Two-way content sync Configuration Analytics Automatic content reload Content presets Custom actions Document hooks Editorial permissions Global styles Local development Localization Personalization Preview controls Sitemap navigator Tree view Version control Asset sources Overview Aprimo Bynder Cloudinary Cloud setup Overview Container Git branching Import Previewing Publishing Content sources Overview Contentful Contentstack Custom DatoCMS Git Hygraph Sanity Frameworks Overview Angular Astro Custom Eleventy Gatsby Hydrogen Next.js Nuxt 3 SvelteKit Visual editing Overview Content editor Custom fields Field controls Field groups Inline editor Page editor Sidebar buttons Status labels Troubleshoot On this page Overview Requirements Types of localization Object vs field example Configure localization Override CSI modules Access control Locale modes Governance for field localization Edit localized content Locale switcher Default locale Create new objects Edit existing objects Localized presets Publish localized content Custom visual editing behavior setLocale stackbitLocaleChanged On this page Overview Requirements Types of localization Object vs field example Configure localization Override CSI modules Access control Locale modes Governance for field localization Edit localized content Locale switcher Default locale Create new objects Edit existing objects Localized presets Publish localized content Custom visual editing behavior setLocale stackbitLocaleChanged For the complete Netlify documentation index, see llms.txt. Markdown versions of any documentation page are available by appending .md to its URL. More flexibility and credits now available for Pro plans 🎉 Manage / Visual Editor / Localization Copy page View as Markdown Copy as Markdown View as Markdown Manage localized content by editing from the content source or extending with Visual Editor. New Feature This a new feature. Implementation details are subject to rapid change. Please contact us for more information and to stay updated with the latest changes. RequirementsSection titled “Requirements” This feature requires that content sources are managed via Content Source Interface, and is only available in the business and enterprise tiers. Types of localizationSection titled “Types of localization” Visual Editor supports two types of localization. Object-level document or object is associated with a single locale. Field-level document or object may have multiple locales, as determined by the fields within that object. Object vs field exampleSection titled “Object vs field example” For example, consider a site that has a Post model with title and body fields, and serves content in both the fr (French) and de (German) locales. If using object-level localization, there would be two documents of type Post, one for fr and another for de. If using field-level localization, there would only be a single object, while title might be an object with properties fr and de, storing the string reference to the value in each locale. How Visual Editor handles localization for you project depends on a number of factors, including the content source(s) being used, the site's localization strategy, along with the provided Visual Editor configuration. Configure localizationSection titled “Configure localization” Models or their fields need to set the localized property to true in the schema, and the content objects themselves to have a locale property assigned, where the value is the string reference to that field (e.g. de for German language content). Override CSI modulesSection titled “Override CSI modules” In some cases, locale behavior may be provided by the CSI module. If not, the CSI module can be extended to provide the appropriate logic to its internal methods, and to apply the appropriate properties to the models and documents. // stackbit.config.jsexport default { contentSources: [ new ContentfulContentSource({ , , , }) ], // Add `localized` property to localized models. mapModels({ models }) { return models.map(model => { // `LOCALIZED_MODELS` is an array of model name strings. if (LOCALIZED_MODELS.includes(model.name)) { return { ...model, }; } return model; }); }, // Add `localized` field values to localized objects. mapDocuments({ documents }) { return documents.map(document => { // `LOCALIZED_MODELS` is an array of model name strings. if (LOCALIZED_MODELS.includes(document.modelName)) { // `getDocumentLocale` returns the appropriate locale string for the document. const locale = getDocumentLocale(document); return { ...document, locale }; } return document; }); }, // Alternatively, use `models` to extend models in a more static way. models: { // ... }}; Tip Here's a more complete example using Contentful as the content source. Access controlSection titled “Access control” Access to one or more locales can be controlled through your visual editor settings. When adding a member or a team to the project, they can be limited to a single locale or be given access to all locales (global). If nothing is selected in the restriction dropdown, the user will have full access to all locales (global). See below for more information on locale modes (global vs specific). Locale modesSection titled “Locale modes” There are 2 modes for the locale and locale. These modes are used to handle access control, along with the current editing context. When in global : Users can view, create, and publish objects of all locales. are common across locales. Users can view, create, and publish all objects, with the ability to set field values in any locale. When in locale : Users can view, create, edit, and publish only content entries within the selected locale. Non-localized objects can be viewed but not edited from a specific locale. can view, create, edit, and publish only fields of the content entry within the selected locale. Non-localized objects can be viewed but not edited from a specific locale. The next section covers governance on field-level localization. More on editing below. Governance for field localizationSection titled “Governance for field localization” While you can control editing within a specific locale, full governance and publishing control is not available for field-level localization. Localization methodGovernancePublishingObject-level✓✓Field-level❌❌ This is because editors will have access to view non-localized content. And there is no way to be able to publish only values within a specific locale for a specific field. More on both editing and publishing below. Edit localized contentSection titled “Edit localized content” Managing localized content is done within the context of the current locale mode. This is controlled through the locale switcher, and it affects how objects are viewed, created, edited, published, and stored as presets. Locale switcherSection titled “Locale switcher” The current locale can be set via the locale switcher, found in the top bar controls within Visual Editor. Making a selection here changes the editing context for all content in the site. Default localeSection titled “Default locale” There is always a defaultLocale (most commonly en-US, but it can be changed). The default locale is the one immediately below Global in the locale switcher dropdown. Create new objectsSection titled “Create new objects” Creating objects in Visual Editor differs depending on the chosen localization using object-level localization in global mode, there will be multiple tabs. The editor must fill out the required fields in each of the selected locales before being able to create the object. This results in multiple objects, one per selected locale. When using object-level localization in locale mode, it is only possible to create a new object in that locale (set via the locale switcher. When using field-specific localization, the editor must fill out values for the default locale (required to build the object's base fields), along with fields that are required and localized in other tabs. This action creates only one object, while additional selected locales will be added as additional values to the existing object. To avoid editors accidentally generating content in multiple locales, creating objects with field-specific localization is only possible within global mode. Edit existing objectsSection titled “Edit existing objects” The editing experience differs depending on the localization strategy being used. global mode, all objects are shown and editable. In locale mode, only objects of the selected locale can be edited, though objects without a locale will still be shown. flags will show up next to objects and fields that are localized. In global mode, only fields of the default language are accessible. In locale mode, the fields of the selected locale will be shown. Localized presetsSection titled “Localized presets” Localized presets work differently depending on the localization strategy and mode being both object-level and field-specific, when in a specific locale, presets will be saved and visible only in the current locale as well as global mode. When in global mode, new presets will be visible to all other locales and can be used by all locales. In the case of field-specific localization, the same (and unique) preset values will be used in any locale. Presets cannot store different values for different locales. Instead, save multiple templates, one for each desired locale. Publish localized contentSection titled “Publish localized content” In a specific locale, the publish dropdown will only show objects that are localized to the currently-selected locale, along with objects that have localized fields. Publishing can not be focused on a specific localized field value. Users with access to the Global view will have visibility of changes and be able to publish all content. Custom visual editing behaviorSection titled “Custom visual editing behavior” You can customize how your website preview responds to localization changes in Visual Editor using client-side JavaScript. setLocaleSection titled “setLocale” Enables you to change the current locale, which will update the locale switcher. window.stackbit.setLocale(locale); See the reference for details. stackbitLocaleChangedSection titled “stackbitLocaleChanged” Listen for an editor to interact with the locale switcher and change the current locale. window.addEventListener(\"stackbitLocaleChanged\", event => { const locale = event.detail.locale; // Add custom behavior ...}); This may be useful for redirecting the current page to a version with the newly-selected locale. See the reference for details. Last 14, 2025 PreviousLocal developmentNextPersonalization Did you find this doc useful? Your feedback helps us improve our docs. Do not fill in this field Email (optional) What else would you like to tell us about this doc? I consent to being contacted regarding my feedback Send Netlify Careers Blog Terms Privacy Reading these docs with an AI agent? Append .md to any docs URL for its Markdown source, or start from the full llms.txt index. © 2026 Netlify Ask Netlify Help\n\nExample:\n```text\n// stackbit.config.jsexport default { contentSources: [ new ContentfulContentSource({ spaceId: process.env.CONTENTFUL_SPACE_ID, environment: process.env.CONTENTFUL_ENVIRONMENT, previewToken: process.env.CONTENTFUL_PREVIEW_TOKEN, accessToken: process.env.CONTENTFUL_MANAGEMENT_TOKEN }) ], // Add `localized` property to localized models. mapModels({ models }) { return models.map(model => { // `LOCALIZED_MODELS` is an array of model name strings. if (LOCALIZED_MODELS.includes(model.name)) { return { ...model, localized: true }; } return model; }); }, // Add `localized` field values to localized objects. mapDocuments({ documents }) { return documents.map(document => { // `LOCALIZED_MODELS` is an array of model name strings. if (LOCALIZED_MODELS.includes(document.modelName)) { // `getDocumentLocale` returns the appropriate locale string for the document. const locale = getDocumentLocale(document); return { ...document, locale }; } return document; }); }, // Alternatively, use `models` to extend models in a more static way. models: { // ... }};\n```\n\nExample:\n```text\nwindow.stackbit.setLocale(locale);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:18.435Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":3425}}191{"id":"doc-class_scriptproperties_apps_script_google_for_de-3fdfcc29","source":"documentation","title":"Class ScriptProperties | Apps Script | Google for Developers","url":"https://developers.google.com/apps-script/class_scriptproperties","text":"Example:\n```text\nScriptProperties.deleteAllProperties();\n```\n\nExample:\n```text\nScriptProperties.deleteProperty('special');\n```\n\nExample:\n```text\nScriptProperties.setProperties({\n \"cow\" : \"moo\",\n \"sheep\" : \"baa\",\n \"chicken\" : \"cluck\"\n});\n\n// Logs \"A cow goes: moo\"\nLogger.log(\"A cow goes: %s\", ScriptProperties.getProperty(\"cow\"));\n\n// This makes a copy. Any changes that happen here will not\n// be written back to properties.\nvar animalSounds = ScriptProperties.getProperties();\n\n// Logs:\n// A chicken goes cluck!\n// A cow goes moo!\n// A sheep goes baa!\nfor(var kind in animalSounds) {\n Logger.log(\"A %s goes %s!\", kind, animalSounds[kind]);\n}\n```\n\nExample:\n```text\nconst specialValue = ScriptProperties.getProperty('special');\n```\n\nExample:\n```text\nScriptProperties.setProperties({special: 'sauce', 'meaning': 42});\n```\n\nExample:\n```text\n// This deletes all other properties\nScriptProperties.setProperties({special: 'sauce', 'meaning': 42}, true);\n```\n\nExample:\n```text\nScriptProperties.setProperty('special', 'sauce');\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:56.279Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":56,"estimatedTokens":262}}192{"id":"doc-analyze_feedback_sentiment_using_the_google_clou-987e96d7","source":"documentation","title":"Analyze feedback sentiment using the Google Cloud Natural Language API | Apps Script | Google for Developers","url":"https://developers.google.com/apps-script/samples/automations/feedback-sentiment-analysis","text":"Example:\n```text\nconst myApiKey = 'YOUR_API_KEY'; // Replace with your API key.\n```\n\nExample:\n```text\n// To learn how to use this script, refer to the documentation:\n// https://developers.google.com/apps-script/samples/automations/feedback-sentiment-analysis\n\n/*\nCopyright 2022 Google LLC\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n https://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n*/\n\n// Sets API key for accessing Cloud Natural Language API.\nconst myApiKey = \"YOUR_API_KEY\"; // Replace with your API key.\n\n// Matches column names in Review Data sheet to variables.\nconst COLUMN_NAME = {\n COMMENTS: \"comments\",\n ENTITY: \"entity_sentiment\",\n ID: \"id\",\n};\n\n/**\n * Creates a Demo menu in Google Spreadsheets.\n */\nfunction onOpen() {\n SpreadsheetApp.getUi()\n .createMenu(\"Sentiment Tools\")\n .addItem(\"Mark entities and sentiment\", \"markEntitySentiment\")\n .addToUi();\n}\n\n/**\n * Analyzes entities and sentiment for each comment in\n * Review Data sheet and copies results into the\n * Entity Sentiment Data sheet.\n */\nfunction markEntitySentiment() {\n // Sets variables for \"Review Data\" sheet\n const ss = SpreadsheetApp.getActiveSpreadsheet();\n const dataSheet = ss.getSheetByName(\"Review Data\");\n const rows = dataSheet.getDataRange();\n const numRows = rows.getNumRows();\n const values = rows.getValues();\n const headerRow = values[0];\n\n // Checks to see if \"Entity Sentiment Data\" sheet is present, and\n // if not, creates a new sheet and sets the header row.\n const entitySheet = ss.getSheetByName(\"Entity Sentiment Data\");\n if (entitySheet == null) {\n ss.insertSheet(\"Entity Sentiment Data\");\n const entitySheet = ss.getSheetByName(\"Entity Sentiment Data\");\n const esHeaderRange = entitySheet.getRange(1, 1, 1, 6);\n const esHeader = [\n [\n \"Review ID\",\n \"Entity\",\n \"Salience\",\n \"Sentiment Score\",\n \"Sentiment Magnitude\",\n \"Number of mentions\",\n ],\n ];\n esHeaderRange.setValues(esHeader);\n }\n\n // Finds the column index for comments, language_detected,\n // and comments_english columns.\n const textColumnIdx = headerRow.indexOf(COLUMN_NAME.COMMENTS);\n const entityColumnIdx = headerRow.indexOf(COLUMN_NAME.ENTITY);\n const idColumnIdx = headerRow.indexOf(COLUMN_NAME.ID);\n if (entityColumnIdx === -1) {\n Browser.msgBox(\n `Error: Could not find the column named ${COLUMN_NAME.ENTITY}. Please create an empty column with header \"entity_sentiment\" on the Review Data tab.`,\n );\n return; // bail\n }\n\n ss.toast(\"Analyzing entities and sentiment...\");\n for (let i = 0; i < numRows; ++i) {\n const value = values[i];\n const commentEnCellVal = value[textColumnIdx];\n const entityCellVal = value[entityColumnIdx];\n const reviewId = value[idColumnIdx];\n\n // Calls retrieveEntitySentiment function for each row that has a comment\n // and also an empty entity_sentiment cell value.\n if (commentEnCellVal && !entityCellVal) {\n const nlData = retrieveEntitySentiment(commentEnCellVal);\n // Pastes each entity and sentiment score into Entity Sentiment Data sheet.\n const newValues = [];\n for (let entity in nlData.entities) {\n entity = nlData.entities[entity];\n const row = [\n reviewId,\n entity.name,\n entity.salience,\n entity.sentiment.score,\n entity.sentiment.magnitude,\n entity.mentions.length,\n ];\n newValues.push(row);\n }\n if (newValues.length) {\n entitySheet\n .getRange(\n entitySheet.getLastRow() + 1,\n 1,\n newValues.length,\n newValues[0].length,\n )\n .setValues(newValues);\n }\n // Pastes \"complete\" into entity_sentiment column to denote completion of NL API call.\n dataSheet.getRange(i + 1, entityColumnIdx + 1).setValue(\"complete\");\n }\n }\n}\n\n/**\n * Calls the Cloud Natural Language API with a string of text to analyze\n * entities and sentiment present in the string.\n * @param {String} the string for entity sentiment analysis\n * @return {Object} the entities and related sentiment present in the string\n */\nfunction retrieveEntitySentiment(line) {\n const apiKey = myApiKey;\n const apiEndpoint = `https://language.googleapis.com/v1/documents:analyzeEntitySentiment?key=${apiKey}`;\n // Creates a JSON request, with text string, language, type and encoding\n const nlData = {\n document: {\n language: \"en-us\",\n type: \"PLAIN_TEXT\",\n content: line,\n },\n encodingType: \"UTF8\",\n };\n // Packages all of the options and the data together for the API call.\n const nlOptions = {\n method: \"post\",\n contentType: \"application/json\",\n payload: JSON.stringify(nlData),\n };\n // Makes the API call.\n const response = UrlFetchApp.fetch(apiEndpoint, nlOptions);\n return JSON.parse(response);\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:56.364Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":164,"estimatedTokens":1326}}193{"id":"doc-npmrc_npm_docs-a2b1ca2d","source":"documentation","title":"npmrc | npm Docs","url":"https://docs.npmjs.com/cli/v8/configuring-npm/npmrc","text":"Example:\n```bash\nprefix = ${HOME}/.npm-packages\n```\n\nExample:\n```bash\nkey[] = \"first value\"key[] = \"second value\"\n```\n\nExample:\n```bash\n# last modified: 01 Jan 2016; Set a new registry for a scoped package@myscope:registry=https://mycustomregistry.example.org\n```\n\nExample:\n```bash\n; bad config_authToken=MYTOKEN\n; good config@myorg:registry=https://somewhere-else.com/myorg@another:registry=https://somewhere-else.com/another//registry.npmjs.org/:_authToken=MYTOKEN; would apply to both @myorg and @another; //somewhere-else.com/:_authToken=MYTOKEN; would apply only to @myorg//somewhere-else.com/myorg/:_authToken=MYTOKEN1; would apply only to @another//somewhere-else.com/another/:_authToken=MYTOKEN2\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:19.427Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":22,"estimatedTokens":181}}194{"id":"doc-migrate_to_opensearch_serverless_opensearch_docu-2608850c","source":"documentation","title":"Migrate to OpenSearch Serverless | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/migration-assistant/amazon-opensearch-serverless/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\naws iam list-roles --query \"Roles[?contains(RoleName,'migrations-role')].{Name:RoleName,Arn:Arn}\" --output table\n```\n\nExample:\n```text\naws opensearchserverless create-access-policy \\\n --name migration-access \\\n --type data \\\n --policy '[{\n \"Rules\": [\n {\n \"ResourceType\": \"collection\",\n \"Resource\": [\"collection/<COLLECTION-NAME>\"],\n \"Permission\": [\n \"aoss:CreateCollectionItems\",\n \"aoss:DeleteCollectionItems\",\n \"aoss:UpdateCollectionItems\",\n \"aoss:DescribeCollectionItems\"\n ]\n },\n {\n \"ResourceType\": \"index\",\n \"Resource\": [\"index/<COLLECTION-NAME>/*\"],\n \"Permission\": [\n \"aoss:CreateIndex\",\n \"aoss:DeleteIndex\",\n \"aoss:UpdateIndex\",\n \"aoss:DescribeIndex\",\n \"aoss:ReadDocument\",\n \"aoss:WriteDocument\"\n ]\n }\n ],\n \"Principal\": [\"<MIGRATION-ROLE-ARN>\"]\n }]'\n```\n\nExample:\n```text\nworkflow configure edit\n```\n\nExample:\n```text\n{\n \"targetClusters\": {\n \"target\": {\n \"endpoint\": \"https://<collection-id>.<region>.aoss.amazonaws.com\",\n \"authConfig\": {\n \"sigv4\": {\n \"region\": \"<region>\",\n \"service\": \"aoss\"\n }\n }\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.278Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":4,"totalLines":66,"estimatedTokens":499}}195{"id":"doc-solr_backfill_guide_opensearch_documentation-e36da843","source":"documentation","title":"Solr backfill guide | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/migration-assistant/solr-migration/solr-backfill-guide/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\ncp /opt/solr/dist/solr-s3-repository-*.jar /opt/solr/contrib/s3-repository/lib/\n```\n\nExample:\n```text\n<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<solr>\n <str name=\"sharedLib\">/opt/solr/contrib/s3-repository/lib</str>\n\n <solrcloud>\n <str name=\"host\">${host:}</str>\n <int name=\"hostPort\">${jetty.port:8983}</int>\n <str name=\"hostContext\">${hostContext:solr}</str>\n <bool name=\"genericCoreNodeNames\">${genericCoreNodeNames:true}</bool>\n <int name=\"zkClientTimeout\">${zkClientTimeout:30000}</int>\n <int name=\"distribUpdateSoTimeout\">${distribUpdateSoTimeout:600000}</int>\n <int name=\"distribUpdateConnTimeout\">${distribUpdateConnTimeout:60000}</int>\n </solrcloud>\n\n <backup>\n <repository name=\"s3\" class=\"org.apache.solr.s3.S3BackupRepository\" default=\"true\">\n <str name=\"s3.bucket.name\">${S3_BUCKET_NAME:}</str>\n <str name=\"s3.region\">${S3_REGION:us-east-1}</str>\n <str name=\"s3.endpoint\">${S3_ENDPOINT:}</str>\n </repository>\n </backup>\n</solr>\n```\n\nExample:\n```text\nexport SOLR_OPTS=\"-DS3_BUCKET_NAME=my-solr-backups \\\n -DS3_REGION=us-west-2 \\\n -DSOLR_SECURITY_MANAGER_ENABLED=false\"\n```\n\nExample:\n```text\n{\n \"Version\": \"2012-10-17\",\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Action\": [\n \"s3:PutObject\",\n \"s3:GetObject\",\n \"s3:DeleteObject\",\n \"s3:ListBucket\",\n \"s3:GetBucketLocation\"\n ],\n \"Resource\": [\n \"arn:aws:s3:::my-solr-backups\",\n \"arn:aws:s3:::my-solr-backups/*\"\n ]\n }]\n}\n```\n\nExample:\n```text\n/opt/solr/bin/solr zk cp <path-to-new-solr.xml> zk:/solr.xml -z <ZK_HOST>:2181\n/opt/solr/bin/solr restart -force # repeat on every node\n```\n\nExample:\n```text\ncp <path-to-new-solr.xml> /var/solr/data/solr.xml\n/opt/solr/bin/solr restart -force\n```\n\nExample:\n```text\n# Trigger an async backup of one collection to a throwaway location.\ncurl \"http://<solr-host>:8983/solr/admin/collections?action=BACKUP\\\n&name=preflight&collection=<SOME_COLLECTION>\\\n&repository=s3&location=/preflight-check&async=preflight-1&wt=json\"\n\n# Poll until state=completed (should take a few seconds on a small collection).\ncurl \"http://<solr-host>:8983/solr/admin/collections?action=REQUESTSTATUS\\\n&requestid=preflight-1&wt=json\"\n```\n\nExample:\n```text\ncurl \"http://<solr-host>:8983/solr/admin/collections?action=DELETE_BACKUP&name=preflight&location=/preflight-check&purge=true&repository=s3\"\n```\n\nExample:\n```text\n# Trigger a backup of one core.\ncurl \"http://<solr-host>:8983/solr/<CORE_NAME>/replication\\\n?command=backup&repository=s3&location=/preflight-check&name=preflight&wt=json\"\n\n# Poll until status=success (the same endpoint returns the latest backup status).\ncurl \"http://<solr-host>:8983/solr/<CORE_NAME>/replication?command=details&wt=json\"\n```\n\nExample:\n```text\ns3RepoPathUri: \"s3://my-bucket/solr-migration-v3\"\n │ │\n │ └── Subpath — passed as \"location\" to Solr BACKUP\n └── Bucket — must match s3.bucket.name in solr.xml\n```\n\nExample:\n```text\n# Option 1: edit interactively (loads sample, opens $EDITOR)\nworkflow configure sample --load\nworkflow configure edit\n\n# Option 2: pipe a file in non-interactively\ncat solr-backfill.wf.yaml | workflow configure edit --stdin\n\n# Submit and watch\nworkflow submit\nworkflow manage # interactive TUI — also shows approval gates\n```\n\nExample:\n```text\nconsole clusters cat-indices --refresh\n```\n\nExample:\n```text\naws s3 ls s3://<bucket>/<subpath>/<snapshot>/<collection-or-core>/shard_backup_metadata/\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.283Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":13,"totalLines":135,"estimatedTokens":1074}}196{"id":"doc-custom_local_models_opensearch_documentation-93d77539","source":"documentation","title":"Custom local models | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/custom-local-models/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nshasum -a 256 sentence-transformers_paraphrase-mpnet-base-v2-1.0.0-onnx.zip\n```\n\nExample:\n```text\nPUT _cluster/settings\n{\n \"persistent\": {\n \"plugins.ml_commons.allow_registering_model_via_url\": \"true\",\n \"plugins.ml_commons.only_run_on_ml_node\": \"false\",\n \"plugins.ml_commons.model_access_control_enabled\": \"true\",\n \"plugins.ml_commons.native_memory_threshold\": \"99\"\n }\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/model_groups/_register\n{\n \"name\": \"local_model_group\",\n \"description\": \"A model group for local models\"\n}\n```\n\nExample:\n```text\n{\n \"model_group_id\": \"wlcnb4kBJ1eYAeTMHlV6\",\n \"status\": \"CREATED\"\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/models/_register\n{\n \"name\": \"huggingface/sentence-transformers/msmarco-distilbert-base-tas-b\",\n \"version\": \"1.0.1\",\n \"model_group_id\": \"wlcnb4kBJ1eYAeTMHlV6\",\n \"description\": \"This is a port of the DistilBert TAS-B Model to sentence-transformers model: It maps sentences & paragraphs to a 768 dimensional dense vector space and is optimized for the task of semantic search.\",\n \"function_name\": \"TEXT_EMBEDDING\",\n \"model_format\": \"TORCH_SCRIPT\",\n \"model_content_size_in_bytes\": 266352827,\n \"model_content_hash_value\": \"acdc81b652b83121f914c5912ae27c0fca8fabf270e6f191ace6979a19830413\",\n \"model_config\": {\n \"model_type\": \"distilbert\",\n \"embedding_dimension\": 768,\n \"framework_type\": \"sentence_transformers\",\n \"all_config\": \"{\\\"_name_or_path\\\":\\\"old_models/msmarco-distilbert-base-tas-b/0_Transformer\\\",\\\"activation\\\":\\\"gelu\\\",\\\"architectures\\\":[\\\"DistilBertModel\\\"],\\\"attention_dropout\\\":0.1,\\\"dim\\\":768,\\\"dropout\\\":0.1,\\\"hidden_dim\\\":3072,\\\"initializer_range\\\":0.02,\\\"max_position_embeddings\\\":512,\\\"model_type\\\":\\\"distilbert\\\",\\\"n_heads\\\":12,\\\"n_layers\\\":6,\\\"pad_token_id\\\":0,\\\"qa_dropout\\\":0.1,\\\"seq_classif_dropout\\\":0.2,\\\"sinusoidal_pos_embds\\\":false,\\\"tie_weights_\\\":true,\\\"transformers_version\\\":\\\"4.7.0\\\",\\\"vocab_size\\\":30522}\"\n },\n \"created_time\": 1676073973126,\n \"url\": \"https://artifacts.opensearch.org/models/ml-models/huggingface/sentence-transformers/msmarco-distilbert-base-tas-b/1.0.1/torch_script/sentence-transformers_msmarco-distilbert-base-tas-b-1.0.1-torch_script.zip\"\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/models/_register\n{\n \"name\": \"huggingface/sentence-transformers/msmarco-distilbert-base-tas-b\",\n \"version\": \"1.0.1\",\n \"model_group_id\": \"wlcnb4kBJ1eYAeTMHlV6\",\n \"description\": \"This is a port of the DistilBert TAS-B Model to sentence-transformers model: It maps sentences & paragraphs to a 768 dimensional dense vector space and is optimized for the task of semantic search.\",\n \"function_name\": \"TEXT_EMBEDDING\",\n \"model_format\": \"TORCH_SCRIPT\",\n \"model_content_size_in_bytes\": 266352827,\n \"model_content_hash_value\": \"acdc81b652b83121f914c5912ae27c0fca8fabf270e6f191ace6979a19830413\",\n \"model_config\": {\n \"model_type\": \"distilbert\",\n \"embedding_dimension\": 768,\n \"framework_type\": \"sentence_transformers\",\n \"all_config\": \"\"\"{\"_name_or_path\":\"old_models/msmarco-distilbert-base-tas-b/0_Transformer\",\"activation\":\"gelu\",\"architectures\":[\"DistilBertModel\"],\"attention_dropout\":0.1,\"dim\":768,\"dropout\":0.1,\"hidden_dim\":3072,\"initializer_range\":0.02,\"max_position_embeddings\":512,\"model_type\":\"distilbert\",\"n_heads\":12,\"n_layers\":6,\"pad_token_id\":0,\"qa_dropout\":0.1,\"seq_classif_dropout\":0.2,\"sinusoidal_pos_embds\":false,\"tie_weights_\":true,\"transformers_version\":\"4.7.0\",\"vocab_size\":30522}\"\"\"\n },\n \"created_time\": 1676073973126,\n \"url\": \"https://artifacts.opensearch.org/models/ml-models/huggingface/sentence-transformers/msmarco-distilbert-base-tas-b/1.0.1/torch_script/sentence-transformers_msmarco-distilbert-base-tas-b-1.0.1-torch_script.zip\"\n}\n```\n\nExample:\n```text\n{\n \"task_id\": \"cVeMb4kBJ1eYAeTMFFgj\",\n \"status\": \"CREATED\"\n}\n```\n\nExample:\n```text\nGET /_plugins/_ml/tasks/cVeMb4kBJ1eYAeTMFFgj\n```\n\nExample:\n```text\n{\n \"model_id\": \"cleMb4kBJ1eYAeTMFFg4\",\n \"task_type\": \"REGISTER_MODEL\",\n \"function_name\": \"TEXT_EMBEDDING\",\n \"state\": \"COMPLETED\",\n \"worker_node\": [\n \"XPcXLV7RQoi5m8NI_jEOVQ\"\n ],\n \"create_time\": 1689793598499,\n \"last_update_time\": 1689793598530,\n \"is_async\": false\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/models/cleMb4kBJ1eYAeTMFFg4/_deploy\n```\n\nExample:\n```text\n{\n \"task_id\": \"vVePb4kBJ1eYAeTM7ljG\",\n \"status\": \"CREATED\"\n}\n```\n\nExample:\n```text\nGET /_plugins/_ml/tasks/vVePb4kBJ1eYAeTM7ljG\n```\n\nExample:\n```text\n{\n \"model_id\": \"cleMb4kBJ1eYAeTMFFg4\",\n \"task_type\": \"DEPLOY_MODEL\",\n \"function_name\": \"TEXT_EMBEDDING\",\n \"state\": \"COMPLETED\",\n \"worker_node\": [\n \"n-72khvBTBi3bnIIR8FTTw\"\n ],\n \"create_time\": 1689793851077,\n \"last_update_time\": 1689793851101,\n \"is_async\": true\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/_predict/text_embedding/cleMb4kBJ1eYAeTMFFg4\n{\n \"text_docs\":[ \"today is sunny\"],\n \"return_number\": true,\n \"target_response\": [\"sentence_embedding\"]\n}\n```\n\nExample:\n```text\n{\n \"inference_results\" : [\n {\n \"output\" : [\n {\n \"name\" : \"sentence_embedding\",\n \"data_type\" : \"FLOAT32\",\n \"shape\" : [\n 768\n ],\n \"data\" : [\n 0.25517133,\n -0.28009856,\n 0.48519906,\n ...\n ]\n }\n ]\n }\n ]\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/_predict/sparse_encoding/cleMb4kBJ1eYAeTMFFg4\n{\n \"text_docs\":[ \"today is sunny\"]\n}\n```\n\nExample:\n```text\n{\n \"inference_results\": [\n {\n \"output\": [\n {\n \"name\": \"output\",\n \"dataAsMap\": {\n \"response\": [\n {\n \"saturday\": 0.48336542,\n \"week\": 0.1034762,\n \"mood\": 0.09698499,\n \"sunshine\": 0.5738209,\n \"bright\": 0.1756877,\n ...\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/models/_register\n{\n \"name\": \"question_answering\",\n \"version\": \"1.0.0\",\n \"function_name\": \"QUESTION_ANSWERING\",\n \"description\": \"test model\",\n \"model_format\": \"TORCH_SCRIPT\",\n \"model_group_id\": \"lN4AP40BKolAMNtR4KJ5\",\n \"model_content_hash_value\": \"e837c8fc05fd58a6e2e8383b319257f9c3859dfb3edc89b26badfaf8a4405ff6\",\n \"model_config\": { \n \"model_type\": \"bert\",\n \"framework_type\": \"huggingface_transformers\"\n },\n \"url\": \"https://github.com/opensearch-project/ml-commons/blob/main/ml-algorithms/src/test/resources/org/opensearch/ml/engine/algorithms/question_answering/question_answering_pt.zip?raw=true\"\n}\n```\n\nExample:\n```text\nPOST _plugins/_ml/models/{model_id}/_deploy\n```\n\nExample:\n```text\nPOST /_plugins/_ml/_predict/question_answering/{model_id}\n{\n \"question\": \"Where do I live?\"\n \"context\": \"My name is John. I live in New York\"\n}\n```\n\nExample:\n```text\n{\n \"inference_results\": [\n {\n \"output\": [\n {\n \"result\": \"New York\"\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.308Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":21,"totalLines":262,"estimatedTokens":1896}}197{"id":"doc-cidrcontains_function_opensearch_documentation-37361bef","source":"documentation","title":"cidrContains() function | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/data-prepper/pipelines/cidrcontains/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\ncidrContains('/client.ip', '192.168.0.0/16', '10.0.0.0/8')\n```\n\nExample:\n```text\ncidr-allowlist-pipeline:\n source:\n http:\n path: /events\n ssl: true\n sslKeyCertChainFile: certs/dp.crt\n sslKeyFile: certs/dp.key\n processor:\n - drop_events:\n # Drop events whose client IP is NOT in specific CIDR allowlist\n drop_when: 'not cidrContains(/client/ip, \"10.0.0.0/8\", \"192.168.0.0/16\", \"fd00::/8\")'\n sink:\n - opensearch:\n hosts: [\"https://opensearch:9200\"]\n insecure: true\n username: admin\n password: admin_pass\n index_type: custom\n index: logs-%{yyyy.MM.dd}\n```\n\nExample:\n```text\ncurl -ksS -X POST \"https://localhost:2021/events\" \\\n -H \"Content-Type: application/json\" \\\n -d '[\n {\"client\":{\"ip\":\"10.23.45.6\"},\"msg\":\"allowed 10/8\"},\n {\"client\":{\"ip\":\"8.8.8.8\"},\"msg\":\"should be dropped\"},\n {\"client\":{\"ip\":\"fd00::1234\"},\"msg\":\"allowed ULA IPv6\"}\n ]'\n```\n\nExample:\n```text\n{\n ...\n \"hits\": {\n \"total\": {\n \"value\": 2,\n \"relation\": \"eq\"\n },\n \"max_score\": 1,\n \"hits\": [\n {\n \"_index\": \"logs-2025.10.14\",\n \"_id\": \"Ng1i4pkBLPEKXekW48BU\",\n \"_score\": 1,\n \"_source\": {\n \"client\": {\n \"ip\": \"10.23.45.6\"\n },\n \"msg\": \"allowed 10/8\"\n }\n },\n {\n \"_index\": \"logs-2025.10.14\",\n \"_id\": \"Nw1i4pkBLPEKXekW48BU\",\n \"_score\": 1,\n \"_source\": {\n \"client\": {\n \"ip\": \"fd00::1234\"\n },\n \"msg\": \"allowed ULA IPv6\"\n }\n }\n ]\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.322Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":4,"totalLines":82,"estimatedTokens":583}}198{"id":"doc-map_to_list_processor_opensearch_documentation-18bf373e","source":"documentation","title":"Map to list processor | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/data-prepper/pipelines/configuration/processors/map-to-list/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\n...\n processor:\n - map_to_list:\n source: \"my-map\"\n target: \"my-list\"\n...\n```\n\nExample:\n```text\n{\n \"my-map\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n }\n}\n```\n\nExample:\n```text\n{\n \"my-list\": [\n {\n \"key\": \"key1\",\n \"value\": \"value1\"\n },\n {\n \"key\": \"key2\",\n \"value\": \"value2\"\n },\n {\n \"key\": \"key3\",\n \"value\": \"value3\"\n }\n ],\n \"my-map\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n }\n}\n```\n\nExample:\n```text\n...\n processor:\n - map_to_list:\n source: \"my-map\"\n target: \"my-list\"\n key_name: \"name\"\n value_name: \"data\"\n...\n```\n\nExample:\n```text\n{\n \"my-list\": [\n {\n \"name\": \"key1\",\n \"data\": \"value1\"\n },\n {\n \"name\": \"key2\",\n \"data\": \"value2\"\n },\n {\n \"name\": \"key3\",\n \"data\": \"value3\"\n }\n ],\n \"my-map\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n }\n}\n```\n\nExample:\n```text\n...\n processor:\n - map_to_list:\n source: \"my-map\"\n target: \"my-list\"\n exclude_keys: [\"key1\"]\n remove_processed_fields: true\n...\n```\n\nExample:\n```text\n{\n \"my-list\": [\n {\n \"key\": \"key2\",\n \"value\": \"value2\"\n },\n {\n \"key\": \"key3\",\n \"value\": \"value3\"\n }\n ],\n \"my-map\": {\n \"key1\": \"value1\"\n }\n}\n```\n\nExample:\n```text\n...\n processor:\n - map_to_list:\n source: \"my-map\"\n target: \"my-list\"\n convert_field_to_list: true\n...\n```\n\nExample:\n```text\n{\n \"my-list\": [\n [\"key1\", \"value1\"],\n [\"key2\", \"value2\"],\n [\"key3\", \"value3\"]\n ],\n \"my-map\": {\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n }\n}\n```\n\nExample:\n```text\n...\n processor:\n - map_to_list:\n source: \"\"\n target: \"my-list\"\n...\n```\n\nExample:\n```text\n{\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n}\n```\n\nExample:\n```text\n{\n \"my-list\": [\n {\n \"key\": \"key1\",\n \"value\": \"value1\"\n },\n {\n \"key\": \"key2\",\n \"value\": \"value2\"\n },\n {\n \"key\": \"key3\",\n \"value\": \"value3\"\n }\n ],\n \"key1\": \"value1\",\n \"key2\": \"value2\",\n \"key3\": \"value3\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.336Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":12,"totalLines":188,"estimatedTokens":730}}199{"id":"doc-translate_processor_opensearch_documentation-d5bc4dbb","source":"documentation","title":"Translate processor | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/data-prepper/pipelines/configuration/processors/translate/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\ntranslate-pipeline:\n source:\n file:\n path: \"/full/path/to/logs_json.log\"\n record_type: \"event\"\n format: \"json\"\n processor:\n - translate:\n mappings:\n - source: \"status\"\n targets:\n - target: \"translated_result\"\n map:\n 404: \"Not Found\"\n sink:\n - stdout:\n```\n\nExample:\n```text\n{ \"status\": \"404\" }\n```\n\nExample:\n```text\n{\n \"status\": \"404\",\n \"translated_result\": \"Not Found\"\n}\n```\n\nExample:\n```text\nprocessor:\n - translate:\n mappings:\n - source: \"status\"\n targets:\n - target: \"translated_result\"\n map:\n 404: \"Not Found\"\n default: \"default\"\n type: \"string\"\n translate_when: \"/response != null\"\n - target: \"another_translated_result\"\n regex:\n exact: false\n patterns:\n \"2[0-9]{2}\" : \"Success\" # Matches ranges from 200-299\n \"5[0-9]{2}\": \"Error\" # Matches ranges form 500-599\n file: \n name: \"path/to/file.yaml\"\n aws:\n bucket: my_bucket\n region: us-east-1\n sts_role_arn: arn:aws:iam::123456789012:role/MyS3Role\n```\n\nExample:\n```text\nmap:\n ok : \"Success\"\n 120: \"Found\"\n```\n\nExample:\n```text\nmap:\n \"100-200\": \"Success\"\n \"400-499\": \"Error\"\n```\n\nExample:\n```text\nmap:\n \"key1,key2,key3\": \"value1\"\n \"100-200,key4\": \"value2\"\n```\n\nExample:\n```text\nmappings:\n - source: \"status\"\n targets:\n - target: \"result\"\n map:\n \"foo\": \"bar\"\n # Other configurations\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.338Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":8,"totalLines":97,"estimatedTokens":593}}200{"id":"doc-anomaly_detection_with_data_prepper_opensearch_d-a251ce62","source":"documentation","title":"Anomaly detection with Data Prepper | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/data-prepper/common-use-cases/anomaly-detection/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\napache-log-pipeline-with-metrics:\n source:\n http:\n # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline.\n # In this case it would be \"/apache-log-pipeline-with-metrics/logs\". This will be the FluentBit output URI value.\n path: \"/${pipelineName}/logs\"\n processor:\n - grok:\n match:\n log: [ \"%{COMMONAPACHELOG_DATATYPED}\" ]\n sink:\n - opensearch:\n ...\n index: \"logs\"\n - pipeline:\n name: \"log-to-metrics-pipeline\"\n\nlog-to-metrics-pipeline:\n source:\n pipeline:\n name: \"apache-log-pipeline-with-metrics\"\n processor:\n - aggregate:\n # Specify the required identification keys\n identification_keys: [\"clientip\", \"request\"]\n action:\n histogram:\n # Specify the appropriate values for each the following fields\n key: \"bytes\"\n record_minmax: true\n units: \"bytes\"\n buckets: [0, 25000000, 50000000, 75000000, 100000000]\n # Pick the required aggregation period\n group_duration: \"30s\"\n sink:\n - opensearch:\n ...\n index: \"histogram_metrics\"\n - pipeline:\n name: \"log-to-metrics-anomaly-detector-pipeline\"\n\nlog-to-metrics-anomaly-detector-pipeline:\n source:\n pipeline:\n name: \"log-to-metrics-pipeline\"\n processor:\n - anomaly_detector:\n # Specify the key on which to run anomaly detection\n keys: [ \"bytes\" ]\n mode:\n random_cut_forest:\n sink:\n - opensearch:\n ...\n index: \"log-metric-anomalies\"\n```\n\nExample:\n```text\nentry-pipeline:\n source:\n otel_trace_source:\n # Provide the path for ingestion. ${pipelineName} will be replaced with pipeline name configured for this pipeline.\n # In this case it would be \"/entry-pipeline/v1/traces\". This will be endpoint URI path in OpenTelemetry Exporter \n # configuration.\n # path: \"/${pipelineName}/v1/traces\"\n processor:\n - trace_peer_forwarder:\n sink:\n - pipeline:\n name: \"span-pipeline\"\n - pipeline:\n name: \"service-map-pipeline\"\n - pipeline:\n name: \"trace-to-metrics-pipeline\"\n\nspan-pipeline:\n source:\n pipeline:\n name: \"entry-pipeline\"\n processor:\n - otel_traces:\n sink:\n - opensearch:\n ...\n index_type: \"trace-analytics-raw\"\n\nservice-map-pipeline:\n source:\n pipeline:\n name: \"entry-pipeline\"\n processor:\n - service_map:\n sink:\n - opensearch:\n ...\n index_type: \"trace-analytics-service-map\"\n\ntrace-to-metrics-pipeline:\n source:\n pipeline:\n name: \"entry-pipeline\"\n processor:\n - aggregate:\n # Pick the required identification keys\n identification_keys: [\"serviceName\"]\n action:\n histogram:\n # Pick the appropriate values for each the following fields\n key: \"durationInNanos\"\n record_minmax: true\n units: \"seconds\"\n buckets: [0, 10000000, 50000000, 100000000]\n # Pick the required aggregation period\n group_duration: \"30s\"\n sink:\n - opensearch:\n ...\n index: \"metrics_for_traces\"\n - pipeline:\n name: \"trace-to-metrics-anomaly-detector-pipeline\"\n\ntrace-to-metrics-anomaly-detector-pipeline:\n source:\n pipeline:\n name: \"trace-to-metrics-pipeline\"\n processor:\n - anomaly_detector:\n # Below Key will find anomalies in the max value of histogram generated for durationInNanos.\n keys: [ \"max\" ]\n mode:\n random_cut_forest:\n sink:\n - opensearch:\n ...\n index: \"trace-metric-anomalies\"\n```\n\nExample:\n```text\nentry-pipeline:\n source:\n otel_metrics_source:\n processor:\n - otel_metrics:\n route:\n - gauge_route: '/kind = \"GAUGE\" and /name = \"totalApiBytesSent\"'\n sink:\n - pipeline:\n name: \"ad-pipeline\"\n routes:\n - gauge_route\n - opensearch:\n ...\n index: \"otel-metrics\"\n\nad-pipeline:\n source:\n pipeline:\n name: \"entry-pipeline\"\n processor:\n - anomaly_detector:\n # Use \"value\" as the key on which anomaly detector needs to be run\n keys: [ \"value\" ]\n mode:\n random_cut_forest:\n sink:\n - opensearch:\n ...\n index: otel-metrics-anomalies\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.342Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":179,"estimatedTokens":1266}}201{"id":"doc-configuring_log4j_opensearch_documentation-fb7924e1","source":"documentation","title":"Configuring Log4j | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/data-prepper/managing-data-prepper/configuring-log4j/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\njava \"-Dlog4j.configurationFile=config/custom-log4j2.properties\" -jar data-prepper-core-$VERSION.jar pipelines.yaml data-prepper-config.yaml\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.348Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":223}}202{"id":"doc-getting_started_with_the_high_level_net_client_o-fe00cd17","source":"documentation","title":"Getting started with the high-level .NET client (OpenSearch.Client) | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/clients/OSC-dot-net/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\n<Project>\n ...\n <ItemGroup>\n <PackageReference Include=\"OpenSearch.Client\" Version=\"1.0.0\" />\n </ItemGroup>\n</Project>\n```\n\nExample:\n```text\npublic class Student\n{\n public int Id { get; init; }\n public string FirstName { get; init; }\n public string LastName { get; init; }\n public int GradYear { get; init; }\n public double Gpa { get; init; }\n}\n```\n\nExample:\n```text\nvar client = new OpenSearchClient();\n```\n\nExample:\n```text\nvar nodeAddress = new Uri(\"http://myserver:9200\");\nvar client = new OpenSearchClient(nodeAddress);\n```\n\nExample:\n```text\nvar nodes = new Uri[]\n{\n new Uri(\"http://myserver1:9200\"),\n new Uri(\"http://myserver2:9200\"),\n new Uri(\"http://myserver3:9200\")\n};\n\nvar pool = new StaticConnectionPool(nodes);\nvar settings = new ConnectionSettings(pool);\nvar client = new OpenSearchClient(settings);\n```\n\nExample:\n```text\nvar node = new Uri(\"http://myserver:9200\");\nvar config = new ConnectionSettings(node).DefaultIndex(\"students\");\nvar client = new OpenSearchClient(config);\n```\n\nExample:\n```text\nvar student = new Student { Id = 100, FirstName = \"Paulo\", LastName = \"Santos\", Gpa = 3.93, GradYear = 2021 };\n```\n\nExample:\n```text\nvar response = client.Index(student, i => i.Index(\"students\"));\n```\n\nExample:\n```text\nvar response = client.Index(new IndexRequest<Student>(student, \"students\"));\n```\n\nExample:\n```text\nvar studentArray = new Student[]\n{\n new() {Id = 200, FirstName = \"Shirley\", LastName = \"Rodriguez\", Gpa = 3.91, GradYear = 2019},\n new() {Id = 300, FirstName = \"Nikki\", LastName = \"Wolf\", Gpa = 3.87, GradYear = 2020}\n};\n\nvar manyResponse = client.IndexMany(studentArray, \"students\");\n```\n\nExample:\n```text\nGET students/_search\n{\n \"query\" : {\n \"match\": {\n \"lastName\": \"Santos\"\n }\n }\n}\n```\n\nExample:\n```text\nGET students/_search\n{\n \"query\" : {\n \"match\": {\n \"lastName\": {\n \"query\": \"Santos\"\n }\n }\n }\n}\n```\n\nExample:\n```text\nvar searchResponse = client.Search<Student>(s => s\n .Index(\"students\")\n .Query(q => q\n .Match(m => m\n .Field(fld => fld.LastName)\n .Query(\"Santos\"))));\n```\n\nExample:\n```text\nif (searchResponse.IsValid)\n{\n foreach (var s in searchResponse.Documents)\n {\n Console.WriteLine($\"{s.Id} {s.LastName} {s.FirstName} {s.Gpa} {s.GradYear}\");\n }\n}\n```\n\nExample:\n```text\n// synchronous method\nvar response = client.Index(student, i => i.Index(\"students\"));\n\n// asynchronous method\nvar response = await client.IndexAsync(student, i => i.Index(\"students\"));\n```\n\nExample:\n```text\nvar lowLevelClient = client.LowLevel;\n\nvar searchResponseLow = lowLevelClient.Search<SearchResponse<Student>>(\"students\",\n PostData.Serializable(\n new\n {\n query = new\n {\n match = new\n {\n lastName = new\n {\n query = \"Santos\"\n }\n }\n }\n }));\n\nif (searchResponseLow.IsValid)\n{\n foreach (var s in searchResponseLow.Documents)\n {\n Console.WriteLine($\"{s.Id} {s.LastName} {s.FirstName} {s.Gpa} {s.GradYear}\");\n }\n}\n```\n\nExample:\n```text\nusing OpenSearch.Client;\nusing OpenSearch.Net;\n\nnamespace NetClientProgram;\n\ninternal class Program\n{\n private static IOpenSearchClient osClient = new OpenSearchClient();\n\n public static void Main(string[] args)\n { \n Console.WriteLine(\"Indexing one student......\");\n var student = new Student { Id = 100, \n FirstName = \"Paulo\", \n LastName = \"Santos\", \n Gpa = 3.93, \n GradYear = 2021 };\n var response = osClient.Index(student, i => i.Index(\"students\"));\n Console.WriteLine(response.IsValid ? \"Response received\" : \"Error\");\n\n Console.WriteLine(\"Searching for one student......\");\n SearchForOneStudent();\n\n Console.WriteLine(\"Searching using low-level client......\");\n SearchLowLevel();\n\n Console.WriteLine(\"Indexing an array of Student objects......\");\n var studentArray = new Student[]\n {\n new() { Id = 200, \n FirstName = \"Shirley\", \n LastName = \"Rodriguez\", \n Gpa = 3.91, \n GradYear = 2019},\n new() { Id = 300, \n FirstName = \"Nikki\", \n LastName = \"Wolf\", \n Gpa = 3.87, \n GradYear = 2020}\n };\n var manyResponse = osClient.IndexMany(studentArray, \"students\");\n Console.WriteLine(manyResponse.IsValid ? \"Response received\" : \"Error\");\n }\n\n private static void SearchForOneStudent()\n {\n var searchResponse = osClient.Search<Student>(s => s\n .Index(\"students\")\n .Query(q => q\n .Match(m => m\n .Field(fld => fld.LastName)\n .Query(\"Santos\"))));\n\n PrintResponse(searchResponse);\n }\n\n private static void SearchForAllStudentsWithANonEmptyLastName()\n {\n var searchResponse = osClient.Search<Student>(s => s\n .Index(\"students\")\n .Query(q => q\n \t\t\t\t\t\t.Bool(b => b\n \t\t\t\t\t\t\t.Must(m => m.Exists(fld => fld.LastName))\n \t\t\t\t\t\t\t.MustNot(m => m.Term(t => t.Verbatim().Field(fld => fld.LastName).Value(string.Empty)))\n \t\t\t\t\t\t)));\n\n PrintResponse(searchResponse);\n }\n\n private static void SearchLowLevel()\n {\n // Search for the student using the low-level client\n var lowLevelClient = osClient.LowLevel;\n\n var searchResponseLow = lowLevelClient.Search<SearchResponse<Student>>\n (\"students\",\n PostData.Serializable(\n new\n {\n query = new\n {\n match = new\n {\n lastName = new\n {\n query = \"Santos\"\n }\n }\n }\n }));\n\n PrintResponse(searchResponseLow);\n }\n\n private static void PrintResponse(ISearchResponse<Student> response)\n {\n if (response.IsValid)\n {\n foreach (var s in response.Documents)\n {\n Console.WriteLine($\"{s.Id} {s.LastName} \" +\n $\"{s.FirstName} {s.Gpa} {s.GradYear}\");\n }\n }\n else\n {\n Console.WriteLine(\"Student not found.\");\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.354Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":17,"totalLines":284,"estimatedTokens":1939}}203{"id":"doc-delete_memory_api_opensearch_documentation-8d0e5ac5","source":"documentation","title":"Delete Memory API | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/api/memory-apis/delete-memory/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nDELETE /_plugins/_ml/memory/{memory_id}\n```\n\nExample:\n```text\nDELETE /_plugins/_ml/memory/MzcIJX8BA7mbufL6DOwl\n```\n\nExample:\n```text\n{\n \"success\": true\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"root_cause\": [\n {\n \"type\": \"resource_not_found_exception\",\n \"reason\": \"Memory [MzcIJX8BA7mbufL6DOwl] not found\"\n }\n ],\n \"type\": \"resource_not_found_exception\",\n \"reason\": \"Memory [MzcIJX8BA7mbufL6DOwl] not found\"\n },\n \"status\": 404\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.376Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":4,"totalLines":39,"estimatedTokens":304}}204{"id":"doc-execute_tool_api_opensearch_documentation-6a0b7b9a","source":"documentation","title":"Execute Tool API | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/api/execute-tool/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPOST /_plugins/_ml/tools/_execute/{tool_name}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/tools/_execute/ListIndexTool\n{\n \"parameters\": {\n \"question\": \"How many indices do I have?\"\n }\n}\n```\n\nExample:\n```text\n{\n \"inference_results\": [\n {\n \"output\": [\n {\n \"name\": \"response\",\n \"result\": \"\"\"row,health,status,index,uuid,pri(number of primary shards),rep(number of replica shards),docs.count(number of available documents),docs.deleted(number of deleted documents),store.size(store size of primary and replica shards),pri.store.size(store size of primary shards)\n1,yellow,open,movies,kKcJKu2aT0C9uwJIPP4hxw,2,1,2,0,7.8kb,7.8kb\n2,green,open,.plugins-ml-config,h8ovp_KFTq6_zvcBEn2kvg,1,0,1,0,4kb,4kb\n3,green,open,.plugins-ml-agent,1oGlUBCIRAGXLbLv27Qg8w,1,0,1,0,8kb,8kb\n\"\"\"\n }\n ]\n }\n ]\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/tools/_execute/PPLTool\n{\n \"parameters\": {\n \"question\": \"what's the population of Seattle in 2021?\",\n \"index\": \"test-population\",\n \"model_id\": \"1TuQQ5gBMJhRgCqgSV79\"\n }\n}\n```\n\nExample:\n```text\n{\n \"inference_results\": [\n {\n \"output\": [\n {\n \"name\": \"response\",\n \"dataAsMap\": {\n \"result\":\"{\\\"ppl\\\":\\\"source\\=test-population | where QUERY_STRING([\\'population_description\\'], \\'Seattle\\') AND QUERY_STRING([\\'population_description\\'], \\'2021\\')\\\",\\\"executionResult\\\":\\\"{\\\\n \\\\\\\"schema\\\\\\\": [\\\\n {\\\\n \\\\\\\"name\\\\\\\": \\\\\\\"population_description\\\\\\\",\\\\n \\\\\\\"type\\\\\\\": \\\\\\\"string\\\\\\\"\\\\n }\\\\n ],\\\\n \\\\\\\"datarows\\\\\\\": [],\\\\n \\\\\\\"total\\\\\\\": 0,\\\\n \\\\\\\"size\\\\\\\": 0\\\\n}\\\"}\"\n }\n }\n ]\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.385Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":70,"estimatedTokens":621}}205{"id":"doc-opensearch_assistant_toolkit_opensearch_document-5c2e4a6b","source":"documentation","title":"OpenSearch Assistant Toolkit | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/opensearch-assistant/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nplugins.ml_commons.agent_framework_enabled: true\n plugins.ml_commons.rag_pipeline_feature_enabled: true\n```\n\nExample:\n```text\nassistant.chat.enabled: true\n observability.query_assist.enabled: true\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.433Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":17,"estimatedTokens":237}}206{"id":"doc-update_connector_api_opensearch_documentation-a89f39b8","source":"documentation","title":"Update Connector API | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/api/connector-apis/update-connector/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPUT /_plugins/_ml/connectors/{connector_id}\n```\n\nExample:\n```text\nPUT /_plugins/_ml/connectors/u3DEbI0BfUsSoeNTti-1\n{\n \"description\": \"The connector to public OpenAI model service for GPT 3.5\"\n}\n```\n\nExample:\n```text\n{\n \"_index\": \".plugins-ml-connector\",\n \"_id\": \"u3DEbI0BfUsSoeNTti-1\",\n \"_version\": 2,\n \"result\": \"updated\",\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"failed\": 0\n },\n \"_seq_no\": 2,\n \"_primary_term\": 1\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.463Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":35,"estimatedTokens":298}}207{"id":"doc-agentic_memory_apis_opensearch_documentation-74f19466","source":"documentation","title":"Agentic memory APIs | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/api/agentic-memory-apis/index/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPUT /_cluster/settings\n{\n \"persistent\": {\n \"plugins.ml_commons.agentic_memory_enabled\": false\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.491Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":15,"estimatedTokens":214}}208{"id":"doc-execute_algorithm_api_opensearch_documentation-5dfb57a8","source":"documentation","title":"Execute Algorithm API | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/ml-commons-plugin/api/execute-algorithm/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPOST _plugins/_ml/_execute/{algorithm_name}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/_execute/anomaly_localization\n{\n \"index_name\": \"rca-index\",\n \"attribute_field_names\": [\n \"attribute\"\n ],\n \"aggregations\": [\n {\n \"sum\": {\n \"sum\": {\n \"field\": \"value\"\n }\n }\n }\n ],\n \"time_field_name\": \"timestamp\",\n \"start_time\": 1620630000000,\n \"end_time\": 1621234800000,\n \"min_time_interval\": 86400000,\n \"num_outputs\": 10\n}\n```\n\nExample:\n```text\n{\n \"results\" : [\n {\n \"name\" : \"sum\",\n \"result\" : {\n \"buckets\" : [\n {\n \"start_time\" : 1620630000000,\n \"end_time\" : 1620716400000,\n \"overall_aggregate_value\" : 65.0\n },\n {\n \"start_time\" : 1620716400000,\n \"end_time\" : 1620802800000,\n \"overall_aggregate_value\" : 75.0,\n \"entities\" : [\n {\n \"key\" : [\n \"attr0\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 2.0,\n \"new_value\" : 3.0\n },\n {\n \"key\" : [\n \"attr1\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 3.0,\n \"new_value\" : 4.0\n },\n {\n \"key\" : [\n \"attr2\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 4.0,\n \"new_value\" : 5.0\n },\n {\n \"key\" : [\n \"attr3\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 5.0,\n \"new_value\" : 6.0\n },\n {\n \"key\" : [\n \"attr4\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 6.0,\n \"new_value\" : 7.0\n },\n {\n \"key\" : [\n \"attr5\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 7.0,\n \"new_value\" : 8.0\n },\n {\n \"key\" : [\n \"attr6\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 8.0,\n \"new_value\" : 9.0\n },\n {\n \"key\" : [\n \"attr7\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 9.0,\n \"new_value\" : 10.0\n },\n {\n \"key\" : [\n \"attr8\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 10.0,\n \"new_value\" : 11.0\n },\n {\n \"key\" : [\n \"attr9\"\n ],\n \"contribution_value\" : 1.0,\n \"base_value\" : 11.0,\n \"new_value\" : 12.0\n }\n ]\n },\n ...\n ]\n }\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.502Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":143,"estimatedTokens":973}}209{"id":"doc-exploring_data_with_discover_opensearch_document-4b77ff30","source":"documentation","title":"Exploring data with Discover | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/dashboards/discover/index-discover/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nCarrier: \"OpenSearch-Air\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.543Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":194}}210{"id":"doc-dev_tools_console_opensearch_documentation-6dd4957a","source":"documentation","title":"Dev Tools console | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/dashboards/dev-tools/console/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPUT students/_doc/1\n{\n \"name\": \"John Doe\",\n \"gpa\": 3.89,\n \"grad_year\": 2022\n}\n```\n\nExample:\n```text\nGET students/_search\n{\n \"query\": {\n \"match\": {\n \"name\": \"John Doe\"\n }\n }\n}\n```\n\nExample:\n```text\ncurl -XGET http://localhost:9200/students/_search?pretty -H 'Content-Type: application/json' -d'\n{\n \"query\": {\n \"match\": {\n \"name\": \"John Doe\"\n }\n }\n}'\n```\n\nExample:\n```text\nPUT /testindex/_doc/1\n{\n \"test_query\": \"{ \\\"query\\\": { \\\"query_string\\\": { \\\"query\\\": \\\"host:\\\\\\\"127.0.0.1\\\\\\\"\\\" } } }\"\n}\n```\n\nExample:\n```text\nPUT /testindex/_doc/1\n{\n \"test_query\": \"\"\"{ \"query\": { \"query_string\": { \"query\": \"host:\\\"127.0.0.1\\\"\" } } }\"\"\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.552Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":55,"estimatedTokens":353}}211{"id":"doc-post_filtering_vector_search_results_opensearch_-c163d7d2","source":"documentation","title":"Post-filtering vector search results | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/vector-search/filter-search-knn/post-filtering/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPOST /hotels-index/_search\n{\n \"size\": 3,\n \"query\": {\n \"bool\": {\n \"filter\": {\n \"bool\": {\n \"must\": [\n {\n \"range\": {\n \"rating\": {\n \"gte\": 8,\n \"lte\": 10\n }\n }\n },\n {\n \"term\": {\n \"parking\": \"true\"\n }\n }\n ]\n }\n },\n \"must\": [\n {\n \"knn\": {\n \"location\": {\n \"vector\": [\n 5,\n 4\n ],\n \"k\": 20\n }\n }\n }\n ]\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\" : 95,\n \"timed_out\" : false,\n \"_shards\" : {\n \"total\" : 1,\n \"successful\" : 1,\n \"skipped\" : 0,\n \"failed\" : 0\n },\n \"hits\" : {\n \"total\" : {\n \"value\" : 5,\n \"relation\" : \"eq\"\n },\n \"max_score\" : 0.72992706,\n \"hits\" : [\n {\n \"_index\" : \"hotels-index\",\n \"_id\" : \"3\",\n \"_score\" : 0.72992706,\n \"_source\" : {\n \"location\" : [\n 4.9,\n 3.4\n ],\n \"parking\" : \"true\",\n \"rating\" : 9\n }\n },\n {\n \"_index\" : \"hotels-index\",\n \"_id\" : \"6\",\n \"_score\" : 0.3012048,\n \"_source\" : {\n \"location\" : [\n 6.4,\n 3.4\n ],\n \"parking\" : \"true\",\n \"rating\" : 9\n }\n },\n {\n \"_index\" : \"hotels-index\",\n \"_id\" : \"5\",\n \"_score\" : 0.24154587,\n \"_source\" : {\n \"location\" : [\n 3.3,\n 4.5\n ],\n \"parking\" : \"true\",\n \"rating\" : 8\n }\n }\n ]\n }\n}\n```\n\nExample:\n```text\nGET my-knn-index-1/_search\n{\n \"size\": 2,\n \"query\": {\n \"knn\": {\n \"my_vector2\": {\n \"vector\": [2, 3, 5, 6],\n \"k\": 2\n }\n }\n },\n \"post_filter\": {\n \"range\": {\n \"price\": {\n \"gte\": 5,\n \"lte\": 10\n }\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.566Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":135,"estimatedTokens":692}}212{"id":"doc-workspace_access_control_lists_opensearch_docume-2864b189","source":"documentation","title":"Workspace access control lists | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/dashboards/workspace/workspace-acl/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nopensearchDashboards.dashboardAdmin.users: [\"UserID\"]\nopensearchDashboards.dashboardAdmin.groups: [\"BackendRole\"]\nsavedObjects.permission.enabled: true\n```\n\nExample:\n```text\nopensearchDashboards.dashboardAdmin.users: [\"*\"]\n```\n\nExample:\n```text\nopensearchDashboards.dashboardAdmin.users: [\"admin-user-id\"]\n```\n\nExample:\n```text\nopensearchDashboards.dashboardAdmin.groups: [\"admin-role\"]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.593Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":4,"totalLines":27,"estimatedTokens":284}}213{"id":"doc-configuring_agents_for_semantic_search_opensearc-cd2aeabf","source":"documentation","title":"Configuring agents for semantic search | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/vector-search/ai-search/agentic-search/neural-search/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPOST /_plugins/_ml/models/_register\n{\n \"name\": \"Bedrock embedding model\",\n \"function_name\": \"remote\",\n \"description\": \"Bedrock text embedding model v2\",\n \"connector\": {\n \"name\": \"Amazon Bedrock Connector: embedding\",\n \"description\": \"The connector to bedrock Titan embedding model\",\n \"version\": 1,\n \"protocol\": \"aws_sigv4\",\n \"parameters\": {\n \"region\": \"your-aws-region\",\n \"service_name\": \"bedrock\",\n \"model\": \"amazon.titan-embed-text-v2:0\",\n \"dimensions\": 1024,\n \"normalize\": true,\n \"embeddingTypes\": [\n \"float\"\n ]\n },\n \"credential\": {\n \"access_key\": \"your-access-key\",\n \"secret_key\": \"your-secret-key\",\n \"session_token\": \"your-session-token\"\n },\n \"actions\": [\n {\n \"action_type\": \"predict\",\n \"method\": \"POST\",\n \"url\": \"https://bedrock-runtime.${parameters.region}.amazonaws.com/model/${parameters.model}/invoke\",\n \"headers\": {\n \"content-type\": \"application/json\",\n \"x-amz-content-sha256\": \"required\"\n },\n \"request_body\": \"{ \\\"inputText\\\": \\\"${parameters.inputText}\\\", \\\"dimensions\\\": ${parameters.dimensions}, \\\"normalize\\\": ${parameters.normalize}, \\\"embeddingTypes\\\": ${parameters.embeddingTypes} }\",\n \"pre_process_function\": \"connector.pre_process.bedrock.embedding\",\n \"post_process_function\": \"connector.post_process.bedrock.embedding\"\n }\n ]\n }\n}\n```\n\nExample:\n```text\nPUT /_ingest/pipeline/my_bedrock_embedding_pipeline\n{\n \"description\": \"text embedding pipeline\",\n \"processors\": [\n {\n \"text_embedding\": {\n \"model_id\": \"fxzel5kB-5P992SCH-qM\",\n \"field_map\": {\n \"content_text\": \"content_embedding\"\n }\n }\n }\n ]\n}\n```\n\nExample:\n```text\nPUT /research_papers\n{\n \"settings\": {\n \"index\": {\n \"default_pipeline\": \"my_bedrock_embedding_pipeline\",\n \"knn\": \"true\"\n }\n },\n \"mappings\": {\n \"properties\": {\n \"content_embedding\": {\n \"type\": \"knn_vector\",\n \"dimension\": 1024,\n \"method\": {\n \"name\": \"hnsw\",\n \"engine\": \"lucene\"\n }\n },\n \"published_date\": {\n \"type\": \"date\"\n },\n \"rating\": {\n \"type\": \"integer\"\n }\n }\n }\n}\n```\n\nExample:\n```text\nPOST /_bulk\n{ \"index\": { \"_index\": \"research_papers\", \"_id\": \"1\" } }\n{ \"content_text\": \"Autonomous robotic systems for warehouse automation and industrial manufacturing\", \"published_date\": \"2024-05-15\", \"rating\": 5 }\n{ \"index\": { \"_index\": \"research_papers\", \"_id\": \"2\" } }\n{ \"content_text\": \"Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research\", \"published_date\": \"2024-06-02\", \"rating\": 4 }\n{ \"index\": { \"_index\": \"research_papers\", \"_id\": \"3\" } }\n{ \"content_text\": \"Reinforcement learning algorithms for sequential decision making and optimization problems\", \"published_date\": \"2024-03-20\", \"rating\": 5 }\n{ \"index\": { \"_index\": \"research_papers\", \"_id\": \"4\" } }\n{ \"content_text\": \"Climate change impact on coral reef ecosystems and marine biodiversity conservation\", \"published_date\": \"2024-04-10\", \"rating\": 4 }\n{ \"index\": { \"_index\": \"research_papers\", \"_id\": \"5\" } }\n{ \"content_text\": \"Tectonic plate movements and earthquake prediction using geological fault analysis\", \"published_date\": \"2024-01-22\", \"rating\": 4 }\n```\n\nExample:\n```text\nPOST /_plugins/_ml/models/_register\n{\n \"name\": \"My OpenAI model: gpt-5\",\n \"function_name\": \"remote\",\n \"description\": \"Model for agentic search with neural queries\",\n \"connector\": {\n \"name\": \"My openai connector: gpt-5\",\n \"description\": \"The connector to openai chat model\",\n \"version\": 1,\n \"protocol\": \"http\",\n \"parameters\": {\n \"model\": \"gpt-5\"\n },\n \"credential\": {\n \"openAI_key\": \"<OPEN AI KEY>\"\n },\n \"actions\": [\n {\n \"action_type\": \"predict\",\n \"method\": \"POST\",\n \"url\": \"https://api.openai.com/v1/chat/completions\",\n \"headers\": {\n \"Authorization\": \"Bearer ${credential.openAI_key}\"\n },\n \"request_body\": \"{ \\\"model\\\": \\\"${parameters.model}\\\", \\\"messages\\\": [{\\\"role\\\":\\\"developer\\\",\\\"content\\\":\\\"${parameters.system_prompt}\\\"},${parameters._chat_history:-}{\\\"role\\\":\\\"user\\\",\\\"content\\\":\\\"${parameters.user_prompt}\\\"}${parameters._interactions:-}], \\\"reasoning_effort\\\":\\\"low\\\"${parameters.tool_configs:-}}\"\n }\n ]\n }\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/agents/_register\n{\n \"name\": \"GPT 5 Agent for Agentic Search\",\n \"type\": \"conversational\",\n \"description\": \"Use this for Agentic Search\",\n \"llm\": {\n \"model_id\": \"your-agent-model-id\",\n \"parameters\": {\n \"max_iteration\": 15\n }\n },\n \"memory\": {\n \"type\": \"conversation_index\"\n },\n \"parameters\": {\n \"_llm_interface\": \"openai/v1/chat/completions\"\n },\n \"tools\": [\n {\n \"type\": \"QueryPlanningTool\",\n \"parameters\": {\n \"model_id\": \"your-qpt-model-id\"\n }\n }\n ],\n \"app_type\": \"os_chat\"\n}\n```\n\nExample:\n```text\nPOST /_plugins/_ml/agents/_register\n{\n \"name\": \"GPT 5 Agent for Agentic Search\",\n \"type\": \"conversational\",\n \"description\": \"Use this for Agentic Search\",\n \"llm\": {\n \"model_id\": \"your-agent-model-id\",\n \"parameters\": {\n \"max_iteration\": 15,\n \"embedding_model_id\": \"your-embedding-model-id-from-step1\"\n }\n },\n \"memory\": {\n \"type\": \"conversation_index\"\n },\n \"parameters\": {\n \"_llm_interface\": \"openai/v1/chat/completions\"\n },\n \"tools\": [\n {\n \"type\": \"QueryPlanningTool\",\n \"parameters\": {\n \"model_id\": \"your-qpt-model-id\"\n }\n }\n ],\n \"app_type\": \"os_chat\"\n}\n```\n\nExample:\n```text\nPUT _search/pipeline/my_pipeline\n{\n \"request_processors\": [\n {\n \"agentic_query_translator\": {\n \"agent_id\": \"your-agent-id-from-step-2b\",\n \"embedding_model_id\": \"your-embedding-model-id-from-step1\"\n }\n }\n ]\n}\n```\n\nExample:\n```text\nPUT _search/pipeline/my_pipeline\n{\n \"request_processors\": [\n {\n \"agentic_query_translator\": {\n \"agent_id\": \"your-agent-id-from-step-2b\"\n }\n }\n ]\n}\n```\n\nExample:\n```text\nPOST /research_papers/_search?search_pipeline=my_pipeline\n{\n \"query\": {\n \"agentic\": {\n \"query_text\": \"Show me 3 robots training related research papers \"\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 10509,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 5,\n \"relation\": \"eq\"\n },\n \"max_score\": 0.40031588,\n \"hits\": [\n {\n \"_index\": \"research_papers\",\n \"_id\": \"1\",\n \"_score\": 0.40031588,\n \"_source\": {\n \"content_text\": \"Autonomous robotic systems for warehouse automation and industrial manufacturing\",\n \"rating\": 5,\n \"content_embedding\": [\"<redacted>\"],\n \"published_date\": \"2024-05-15\"\n }\n },\n {\n \"_index\": \"research_papers\",\n \"_id\": \"3\",\n \"_score\": 0.36390686,\n \"_source\": {\n \"content_text\": \"Reinforcement learning algorithms for sequential decision making and optimization problems\",\n \"rating\": 5,\n \"content_embedding\": [\"<redacted>\"],\n \"published_date\": \"2024-03-20\"\n }\n },\n {\n \"_index\": \"research_papers\",\n \"_id\": \"5\",\n \"_score\": 0.34401828,\n \"_source\": {\n \"content_text\": \"Tectonic plate movements and earthquake prediction using geological fault analysis\",\n \"rating\": 4,\n \"content_embedding\": [\"<redacted>\"],\n \"published_date\": \"2024-01-22\"\n }\n }\n ]\n },\n \"ext\": {\n \"agent_steps_summary\": \"I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\\nFirst I used: ListIndexTool — input: \\\"[]\\\"; context gained: \\\"Found indices; 'research_papers' appears relevant\\\"\\nSecond I used: IndexMappingTool — input: \\\"[\\\"research_papers\\\"]\\\"; context gained: \\\"Index has text content and an embedding field suitable for neural search\\\"\\nThird I used: query_planner_tool — qpt.question: \\\"Show me 3 research papers related to robots training.\\\"; index_name_provided: \\\"research_papers\\\"\\nValidation: qpt output is valid and limits results to 3 using neural search with the provided model.\",\n \"memory_id\": \"jhzpl5kB-5P992SCwOqe\",\n \"dsl_query\": \"{\\\"size\\\":3.0,\\\"query\\\":{\\\"neural\\\":{\\\"content_embedding\\\":{\\\"model_id\\\":\\\"fxzel5kB-5P992SCH-qM\\\",\\\"k\\\":100.0,\\\"query_text\\\":\\\"robots training\\\"}}}}\"\n }\n}\n```\n\nExample:\n```text\nPOST /research_papers/_search?search_pipeline=my_pipeline\n{\n \"query\": {\n \"agentic\": {\n \"query_text\": \"Show me papers published after 2024 May\"\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 8522,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 1,\n \"relation\": \"eq\"\n },\n \"max_score\": null,\n \"hits\": [\n {\n \"_index\": \"research_papers\",\n \"_id\": \"2\",\n \"_score\": null,\n \"_source\": {\n \"content_text\": \"Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research\",\n \"rating\": 4,\n \"content_embedding\": [\"<redacted>\"],\n \"published_date\": \"2024-06-02\"\n },\n \"sort\": [\n 1717286400000\n ]\n }\n ]\n },\n \"ext\": {\n \"agent_steps_summary\": \"I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\\nFirst I used: query_planner_tool — qpt.question: \\\"Show me papers published after May 2024.\\\"; index_name_provided: \\\"research_papers\\\"\\nValidation: qpt output is valid JSON and matches the user request with the specified date filter and sorting.\",\n \"memory_id\": \"vBzyl5kB-5P992SCI-o1\",\n \"dsl_query\": \"{\\\"size\\\":10.0,\\\"query\\\":{\\\"bool\\\":{\\\"filter\\\":[{\\\"range\\\":{\\\"published_date\\\":{\\\"gt\\\":\\\"2024-05-31T23:59:59Z\\\"}}}]}},\\\"sort\\\":[{\\\"published_date\\\":{\\\"order\\\":\\\"desc\\\"}}]}\"\n }\n}\n```\n\nExample:\n```text\nPOST /research_papers/_search?search_pipeline=my_pipeline\n{\n \"query\": {\n \"agentic\": {\n \"query_text\": \"Show me 3 robots training related research papers use this model id for neural search:fxzel5kB-5P992SCH-qM \"\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 14989,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"max_score\": 0.38957736,\n \"hits\": [\n {\n \"_index\": \"research_papers\",\n \"_id\": \"1\",\n \"_score\": 0.38957736,\n \"_source\": {\n \"content_text\": \"Autonomous robotic systems for warehouse automation and industrial manufacturing\",\n \"rating\": 5,\n \"content_embedding\": [],\n \"published_date\": \"2024-05-15\"\n }\n },\n {\n \"_index\": \"research_papers\",\n \"_id\": \"3\",\n \"_score\": 0.36386627,\n \"_source\": {\n \"content_text\": \"Reinforcement learning algorithms for sequential decision making and optimization problems\",\n \"rating\": 5,\n \"content_embedding\": [],\n \"published_date\": \"2024-03-20\"\n }\n },\n {\n \"_index\": \"research_papers\",\n \"_id\": \"2\",\n \"_score\": 0.35789147,\n \"_source\": {\n \"content_text\": \"Gene expression analysis and CRISPR-Cas9 genome editing applications in cancer research\",\n \"rating\": 4,\n \"content_embedding\": [],\n \"published_date\": \"2024-06-02\"\n }\n }\n ]\n },\n \"ext\": {\n \"agent_steps_summary\": \"I have these tools available: [ListIndexTool, IndexMappingTool, query_planner_tool]\\nFirst I used: ListIndexTool — input: \\\"\\\"; context gained: \\\"Found indices, including research_papers with 5 documents\\\"\\nSecond I used: IndexMappingTool — input: \\\"research_papers\\\"; context gained: \\\"Index exists and contains text and embedding fields suitable for neural search\\\"\\nThird I used: query_planner_tool — qpt.question: \\\"Show me 3 research papers related to robot training.\\\"; index_name_provided: \\\"research_papers\\\"\\nValidation: qpt output is valid neural search DSL using the provided model ID and limits results to 3.\",\n \"memory_id\": \"whz1l5kB-5P992SCPOqn\",\n \"dsl_query\": \"{\\\"size\\\":3.0,\\\"query\\\":{\\\"neural\\\":{\\\"content_embedding\\\":{\\\"model_id\\\":\\\"fxzel5kB-5P992SCH-qM\\\",\\\"k\\\":100.0,\\\"query_text\\\":\\\"research papers related to robot training\\\"}}},\\\"sort\\\":[{\\\"_score\\\":{\\\"order\\\":\\\"desc\\\"}}],\\\"track_total_hits\\\":false}\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.685Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":15,"totalLines":435,"estimatedTokens":3300}}214{"id":"doc-faiss_scalar_quantization_opensearch_documentati-aea9acca","source":"documentation","title":"Faiss scalar quantization | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/vector-search/optimizing-storage/faiss-scalar-quantization/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPUT /test-index\n{\n \"settings\": {\n \"index\": {\n \"knn\": true,\n \"knn.algo_param.ef_search\": 100\n }\n },\n \"mappings\": {\n \"properties\": {\n \"my_vector1\": {\n \"type\": \"knn_vector\",\n \"dimension\": 3,\n \"space_type\": \"l2\",\n \"method\": {\n \"name\": \"hnsw\",\n \"engine\": \"faiss\",\n \"parameters\": {\n \"encoder\": {\n \"name\": \"sq\",\n \"parameters\": {\n \"bits\": 16\n }\n },\n \"ef_construction\": 256,\n \"m\": 8\n }\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\nPUT /test-index\n{\n \"settings\": {\n \"index\": {\n \"knn\": true,\n \"knn.algo_param.ef_search\": 100\n }\n },\n \"mappings\": {\n \"properties\": {\n \"my_vector1\": {\n \"type\": \"knn_vector\",\n \"dimension\": 3,\n \"space_type\": \"l2\",\n \"method\": {\n \"name\": \"hnsw\",\n \"engine\": \"faiss\",\n \"parameters\": {\n \"encoder\": {\n \"name\": \"sq\",\n \"parameters\": {\n \"bits\": 1\n }\n },\n \"ef_construction\": 256,\n \"m\": 8\n }\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\nPUT test-index/_doc/1\n{\n \"my_vector1\": [-65504.0, 65503.845, 55.82]\n}\n```\n\nExample:\n```text\nGET test-index/_search\n{\n \"size\": 2,\n \"query\": {\n \"knn\": {\n \"my_vector1\": {\n \"vector\": [265436.876, -120906.256, 99.84],\n \"k\": 2\n }\n }\n }\n}\n```\n\nExample:\n```text\n1.1 * (2 * 256 + 8 * 16) * 1,000,000 ~= 0.656 GB\n```\n\nExample:\n```text\n1.1 * (256 / 8 + 8 * 16) * 1,000,000 ~= 0.176 GB\n```\n\nExample:\n```text\n1.1 * (((2 * 256) * 1,000,000) + (4 * 128 * 256)) ~= 0.525 GB\n```\n\nExample:\n```text\n1.1 * (((256 / 8) * 1,000,000) + (4 * 128 * 256)) ~= 0.035 GB\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.702Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":8,"totalLines":121,"estimatedTokens":641}}215{"id":"doc-radial_search_opensearch_documentation-7d447e09","source":"documentation","title":"Radial search | OpenSearch Documentation","url":"https://docs.opensearch.org/latest/vector-search/specialized-operations/radial-search-knn/","text":"OpenSearch Menu About Releases Roadmap FAQ Platform Search Observability Security Analytics Vector Database Playground Demo Performance Benchmarks Community Forum Slack Events Solutions Providers Projects Members Documentation OpenSearch and Dashboards Data Prepper Clients Benchmark Migration Assistant Blog Download\n\nOpenSearch Links Get Involved Code of Conduct Forum GitHub Slack Resources About Release Schedule Maintenance Policy FAQ Testimonials Trademark and Brand Policy Privacy Contact Us Connect Twitter LinkedIn YouTube Meetup Facebook Copyright © OpenSearch Project a Series of LF Projects, LLC For web site terms of use, trademark policy and other project policies please see https://lfprojects.org.\n\nExample:\n```text\nPUT knn-index-test\n{\n \"settings\": {\n \"number_of_shards\": 1,\n \"number_of_replicas\": 1,\n \"index.knn\": true\n },\n \"mappings\": {\n \"properties\": {\n \"my_vector\": {\n \"type\": \"knn_vector\",\n \"dimension\": 2,\n \"space_type\": \"l2\",\n \"method\": {\n \"name\": \"hnsw\",\n \"engine\": \"faiss\",\n \"parameters\": {\n \"ef_construction\": 100,\n \"m\": 16,\n \"ef_search\": 100\n }\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\nPUT _bulk?refresh=true\n{\"index\": {\"_index\": \"knn-index-test\", \"_id\": \"1\"}}\n{\"my_vector\": [7.0, 8.2], \"price\": 4.4}\n{\"index\": {\"_index\": \"knn-index-test\", \"_id\": \"2\"}}\n{\"my_vector\": [7.1, 7.4], \"price\": 14.2}\n{\"index\": {\"_index\": \"knn-index-test\", \"_id\": \"3\"}}\n{\"my_vector\": [7.3, 8.3], \"price\": 19.1}\n{\"index\": {\"_index\": \"knn-index-test\", \"_id\": \"4\"}}\n{\"my_vector\": [6.5, 8.8], \"price\": 1.2}\n{\"index\": {\"_index\": \"knn-index-test\", \"_id\": \"5\"}}\n{\"my_vector\": [5.7, 7.9], \"price\": 16.5}\n```\n\nExample:\n```text\nGET knn-index-test/_search\n{\n \"query\": {\n \"knn\": {\n \"my_vector\": {\n \"vector\": [\n 7.1,\n 8.3\n ],\n \"max_distance\": 2\n }\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 6,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 4,\n \"relation\": \"eq\"\n },\n \"max_score\": 0.98039204,\n \"hits\": [\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"1\",\n \"_score\": 0.98039204,\n \"_source\": {\n \"my_vector\": [\n 7.0,\n 8.2\n ],\n \"price\": 4.4\n }\n },\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"3\",\n \"_score\": 0.9615384,\n \"_source\": {\n \"my_vector\": [\n 7.3,\n 8.3\n ],\n \"price\": 19.1\n }\n },\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"4\",\n \"_score\": 0.62111807,\n \"_source\": {\n \"my_vector\": [\n 6.5,\n 8.8\n ],\n \"price\": 1.2\n }\n },\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"2\",\n \"_score\": 0.5524861,\n \"_source\": {\n \"my_vector\": [\n 7.1,\n 7.4\n ],\n \"price\": 14.2\n }\n }\n ]\n }\n}\n```\n\nExample:\n```text\nGET knn-index-test/_search\n{\n \"query\": {\n \"knn\": {\n \"my_vector\": {\n \"vector\": [7.1, 8.3],\n \"max_distance\": 2,\n \"filter\": {\n \"range\": {\n \"price\": {\n \"gte\": 1,\n \"lte\": 5\n }\n }\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 4,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 2,\n \"relation\": \"eq\"\n },\n \"max_score\": 0.98039204,\n \"hits\": [\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"1\",\n \"_score\": 0.98039204,\n \"_source\": {\n \"my_vector\": [\n 7.0,\n 8.2\n ],\n \"price\": 4.4\n }\n },\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"4\",\n \"_score\": 0.62111807,\n \"_source\": {\n \"my_vector\": [\n 6.5,\n 8.8\n ],\n \"price\": 1.2\n }\n }\n ]\n }\n}\n```\n\nExample:\n```text\nGET knn-index-test/_search\n{\n \"query\": {\n \"knn\": {\n \"my_vector\": {\n \"vector\": [7.1, 8.3],\n \"min_score\": 0.95\n }\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 3,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 2,\n \"relation\": \"eq\"\n },\n \"max_score\": 0.98039204,\n \"hits\": [\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"1\",\n \"_score\": 0.98039204,\n \"_source\": {\n \"my_vector\": [\n 7.0,\n 8.2\n ],\n \"price\": 4.4\n }\n },\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"3\",\n \"_score\": 0.9615384,\n \"_source\": {\n \"my_vector\": [\n 7.3,\n 8.3\n ],\n \"price\": 19.1\n }\n }\n ]\n }\n}\n```\n\nExample:\n```text\nGET knn-index-test/_search\n{\n \"query\": {\n \"knn\": {\n \"my_vector\": {\n \"vector\": [\n 7.1,\n 8.3\n ],\n \"min_score\": 0.95,\n \"filter\": {\n \"range\": {\n \"price\": {\n \"gte\": 1,\n \"lte\": 5\n }\n }\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 4,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 1,\n \"relation\": \"eq\"\n },\n \"max_score\": 0.98039204,\n \"hits\": [\n {\n \"_index\": \"knn-index-test\",\n \"_id\": \"1\",\n \"_score\": 0.98039204,\n \"_source\": {\n \"my_vector\": [\n 7.0,\n 8.2\n ],\n \"price\": 4.4\n }\n }\n ]\n }\n}\n```\n\nExample:\n```text\nPUT nested-knn-index\n{\n \"settings\": {\n \"number_of_shards\": 1,\n \"number_of_replicas\": 1,\n \"index.knn\": true\n },\n \"mappings\": {\n \"properties\": {\n \"my_embeddings\": {\n \"type\": \"nested\",\n \"properties\": {\n \"embedding\": {\n \"type\": \"knn_vector\",\n \"dimension\": 3,\n \"method\": {\n \"engine\": \"faiss\",\n \"space_type\": \"innerproduct\",\n \"name\": \"hnsw\",\n \"parameters\": {\n \"ef_construction\": 100,\n \"m\": 16\n }\n }\n }\n }\n }\n }\n }\n}\n```\n\nExample:\n```text\nPUT _bulk?refresh=true\n{\"index\": {\"_index\": \"nested-knn-index\", \"_id\": \"1\"}}\n{\"my_embeddings\": [{\"embedding\": [0.1, 0.2, 0.3]}]}\n{\"index\": {\"_index\": \"nested-knn-index\", \"_id\": \"2\"}}\n{\"my_embeddings\": [{\"embedding\": [0.4, 0.5, 0.6]}]}\n{\"index\": {\"_index\": \"nested-knn-index\", \"_id\": \"3\"}}\n{\"my_embeddings\": [{\"embedding\": [0.7, 0.8, 0.9]}]}\n```\n\nExample:\n```text\nGET nested-knn-index/_search\n{\n \"query\": {\n \"nested\": {\n \"path\": \"my_embeddings\",\n \"query\": {\n \"knn\": {\n \"my_embeddings.embedding\": {\n \"vector\": [0.2, 0.3, 0.4],\n \"min_score\": 0.7\n }\n }\n },\n \"score_mode\": \"max\"\n }\n }\n}\n```\n\nExample:\n```text\n{\n \"took\": 43,\n \"timed_out\": false,\n \"_shards\": {\n \"total\": 1,\n \"successful\": 1,\n \"skipped\": 0,\n \"failed\": 0\n },\n \"hits\": {\n \"total\": {\n \"value\": 2,\n \"relation\": \"eq\"\n },\n \"max_score\": 1.74,\n \"hits\": [\n {\n \"_index\": \"nested-knn-index\",\n \"_id\": \"3\",\n \"_score\": 1.74,\n \"_source\": {\n \"my_embeddings\": [\n {\n \"embedding\": [0.7, 0.8, 0.9]\n }\n ]\n }\n },\n {\n \"_index\": \"nested-knn-index\",\n \"_id\": \"2\",\n \"_score\": 1.47,\n \"_source\": {\n \"my_embeddings\": [\n {\n \"embedding\": [0.4, 0.5, 0.6]\n }\n ]\n }\n }\n ]\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:22.751Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":14,"totalLines":445,"estimatedTokens":2371}}216{"id":"doc-setup_and_integration-00fc34c4","source":"documentation","title":"Setup and Integration","url":"https://developer.paypal.com/braintree/docs/guides/drop-in/setup-and-integration/android/v5/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```java\nVenmoRequest venmoRequest = new VenmoRequest(VenmoPaymentMethodUsage.MULTI_USE);\ndropInRequest.setVenmoRequest(venmoRequest);\n```\n\nExample:\n```java\nDropInClient dropInClient = new DropInClient(this, new ExampleClientTokenProvider());\ndropInClient.fetchMostRecentPaymentMethod(this, (dropInResult, error) -> {\n if (error != null) {\n // an error occurred\n } else if (dropInResult != null) {\n if (dropInResult.getPaymentMethodType() != null) {\n DropInPaymentMethod paymentMethodType = dropInResult.getPaymentMethodType();\n\n // use the icon and name to show in your UI\n int icon = paymentMethodType.getDrawable();\n int name = paymentMethodType.getLocalizedName();\n\n if (paymentMethodType == DropInPaymentMethod.GOOGLE_PAY) {\n // The last payment method the user used was Google Pay.\n // The Google Pay flow will need to be performed by the\n // user again at the time of checkout.\n } else {\n // Use the payment method show in your UI and charge the user\n // at the time of checkout.\n PaymentMethodNonce paymentMethod = dropInResult.getPaymentMethodNonce();\n }\n } else {\n // there was no existing payment method\n }\n }\n});\n```\n\nExample:\n```xml\n<activity android:name=\"com.braintreepayments.api.DropInActivity\" android:exported=\"true\" tools:node=\"merge\">\n <intent-filter tools:node=\"removeAll\" />\n <intent-filter>\n <action android:name=\"android.intent.action.VIEW\" />\n <data android:scheme=\"my-custom-url-scheme\" />\n <category android:name=\"android.intent.category.DEFAULT\" />\n <category android:name=\"android.intent.category.BROWSABLE\" />\n </intent-filter>\n</activity>\n```\n\nExample:\n```java\ndropInRequest.setCustomUrlScheme(\"my-custom-url-scheme\");\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:45.863Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":57,"estimatedTokens":507}}217{"id":"doc-client_side_implementation-f6d58034","source":"documentation","title":"Client-Side Implementation","url":"https://developer.paypal.com/braintree/docs/guides/local-payment-methods/client-side-custom/android/v5/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```kotlin\ndependencies {\n implementation(\"com.braintreepayments.api:local-payment:5.8.0\")\n}\n```\n\nExample:\n```kotlin\nclass LocalPaymentActivity : AppCompatActivity() {\n private lateinit var localPaymentClient: LocalPaymentClient\n private lateinit var localPaymentLauncher: LocalPaymentLauncher\n\n override fun onCreate(savedInstanceState: Bundle?) {\n super.onCreate(savedInstanceState)\n\n // must be initialized on onCreate()\n localPaymentLauncher = LocalPaymentLauncher()\n\n // can be initialized outside onCreate() if desired\n localPaymentClient = LocalPaymentClient(\n context = requireContext(),\n authorization = \"TOKENIZATION_KEY or CLIENT_TOKEN\",\n appLinkReturnUrl = Uri.parse(\"https://merchant-app.com\") // Merchant App Link\n )\n }\n\n // ONLY REQUIRED IF YOUR ACTIVITY LAUNCH MODE IS SINGLE_TOP\n override fun onNewIntent(intent: Intent) {\n super.onNewIntent(intent)\n handleReturnToApp(intent)\n }\n\n // ALL OTHER ACTIVITY LAUNCH MODES\n override fun onResume() {\n super.onResume()\n handleReturnToApp(intent)\n }\n\n private fun handleReturnToApp(intent: Intent) {\n // fetch stored pendingRequest\n val pendingRequest: LocalPaymentPendingRequest.Started = fetchStoredPendingRequest()\n pendingRequest?.let {\n val paymentAuthResult: LocalPaymentAuthResult =\n localPaymentLauncher.handleReturnToApp(\n pendingRequest = it,\n intent = intent\n )\n if (paymentAuthResult is LocalPaymentAuthResult.Success) {\n localPaymentClient.tokenize(\n context = requireContext(),\n localPaymentAuthResult = paymentAuthResult\n ) { localPaymentResult: LocalPaymentResult? ->\n localPaymentResult?.let {\n this.handleLocalPaymentResult(it)\n }\n }\n // clear pendingRequest\n // clear intent.data\n } else {\n // handle error - User did not complete local payment flow\n // clear pendingRequest\n // clear intent.data\n }\n // clear pendingRequest\n }\n }\n\n fun startLocalPayment() {\n val request: LocalPaymentRequest = localPaymentRequest\n\n localPaymentClient.createPaymentAuthRequest(\n request = request\n ) { paymentAuthRequest: LocalPaymentAuthRequest ->\n if (paymentAuthRequest is LocalPaymentAuthRequest.ReadyToLaunch) {\n val pendingRequest = localPaymentLauncher.launch(\n activity = requireActivity(),\n localPaymentAuthRequest = paymentAuthRequest\n )\n if (pendingRequest is LocalPaymentPendingRequest.Started) {\n // store pendingRequest for future use\n } else if (pendingRequest is LocalPaymentPendingRequest.Failure) {\n // handleError - pendingRequest.error\n }\n } else if (paymentAuthRequest is LocalPaymentAuthRequest.Failure) {\n // handleError - paymentAuthRequest.error\n }\n }\n }\n\n protected fun handleLocalPaymentResult(localPaymentResult: LocalPaymentResult) {\n when (localPaymentResult) {\n is LocalPaymentResult.Success -> { /* handle localPaymentResult.nonce */ }\n is LocalPaymentResult.Failure -> { /* handle localPaymentResult.error */ }\n is LocalPaymentResult.Cancel -> { /* handle user canceled */ }\n }\n }\n\n companion object {\n private val localPaymentRequest: LocalPaymentRequest\n get() {\n val address = PostalAddress().apply {\n streetAddress = \"Stadhouderskade 78\"\n countryCodeAlpha2 = \"NL\"\n locality = \"Amsterdam\"\n postalCode = \"1072 AE\"\n }\n\n return LocalPaymentRequest(true).apply {\n paymentType = \"ideal\"\n amount = \"1.10\"\n address = address\n phone = \"207215300\"\n email = \"[email protected]\"\n givenName = \"Test\"\n surname = \"Buyer\"\n isShippingAddressRequired = true\n merchantAccountId = \"altpay_eur\"\n currencyCode = \"EUR\"\n }\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:45.960Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":128,"estimatedTokens":1202}}218{"id":"doc-required_fields-f452ce07","source":"documentation","title":"Required Fields","url":"https://developer.paypal.com/braintree/docs/reference/general/level-2-and-3-processing/required-fields/node/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```javascript\ngateway.transaction.sale({\n amount: \"100.00\",\n paymentMethodNonce: nonceFromTheClient,\n purchaseOrderNumber: \"12345\",\n taxAmount: \"5.00\"\n}, (err, result) => {\n});\n```\n\nExample:\n```node\ngateway.transaction.sale({\n amount: \"97.10\",\n paymentMethodNonce: nonceFromTheClient,\n purchaseOrderNumber: \"12345\",\n taxAmount: \"5.00\",\n taxExempt: false,\n shippingAmount: \"1.00\",\n shippingTaxAmount: \"0.1\",\n discountAmount: \"2.00\",\n shipsFromPostalCode: \"60654\",\n shipping: {\n firstName: \"Clinton\",\n lastName: \"Ecker\",\n streetAddress: \"1234 Main Street\",\n extendedAddress: \"Unit 222\",\n locality: \"Chicago\",\n region: \"IL\",\n postalCode: \"60654\",\n countryCodeAlpha3: \"USA\"\n },\n lineItems: [\n {\n name: \"Product\",\n kind: \"debit\",\n quantity: \"10.0000\",\n unitAmount: \"9.5000\",\n unitOfMeasure: \"EAC\",\n totalAmount: \"93.00\",\n taxAmount: \"5.00\",\n discountAmount: \"2.00\",\n productCode: \"54321\",\n commodityCode: \"98765\"\n }\n ]\n}, (err, result) => {\n});\n```\n\nExample:\n```javascript\ngateway.transaction.sale({\n amount: \"100.00\",\n paymentMethodNonce: nonceFromTheClient,\n purchaseOrderNumber: \"12345\",\n taxAmount: \"5.00\",\n taxExempt: false,\n shippingAmount: \"1.00\",\n shippingTaxAmount: \"0.1\",\n discountAmount: \"0.00\",\n shipsFromPostalCode: \"60654\",\n shipping: {\n firstName: 'Clinton',\n lastName: 'Ecker',\n streetAddress: '1234 Main Street',\n extendedAddress: 'Unit 222',\n locality: 'Chicago',\n region: 'IL',\n postalCode: '60654',\n countryCodeAlpha3: 'USA'\n },\n lineItems: [\n {\n name: \"Product\",\n kind: \"debit\",\n quantity: \"10.0000\",\n unitAmount: \"9.5000\",\n unitOfMeasure: \"unit\",\n totalAmount: \"95.0000\",\n taxAmount: \"5.00\",\n discountAmount: \"0.00\",\n productCode: \"54321\",\n commodityCode: \"98765\"\n }\n ]\n}, (err, result) => {\n});\n```\n\nExample:\n```javascript\ngateway.transaction.submitForSettlement(\n \"theTransactionId\",\n null,\n {\n purchaseOrderNumber: \"12345\",\n taxAmount: \"5.00\",\n taxExempt: false,\n shippingAmount: \"1.00\",\n shippingTaxAmount: \"0.1\",\n discountAmount: \"0.00\",\n shipsFromPostalCode: \"60654\",\n lineItems: [\n {\n name: \"Product\",\n kind: \"debit\",\n quantity: \"10.0000\",\n unitAmount: \"9.5000\",\n unitOfMeasure: \"unit\",\n totalAmount: \"95.0000\",\n taxAmount: \"5.00\",\n discountAmount: \"0.00\",\n productCode: \"54321\",\n commodityCode: \"98765\"\n }\n ]\n }, (err, result) => {\n if (result.success) {\n const settledTransaction = result.transaction;\n } else {\n console.log(result.message);\n }\n }\n);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.010Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":131,"estimatedTokens":810}}219{"id":"doc-cve_id_request_gitlab_docs-f5864c20","source":"documentation","title":"CVE ID request | GitLab Docs","url":"https://docs.gitlab.com/user/application_security/cve_id_request/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationGetting startedTutorialsApplication securityComplianceDetectTriageAnalyzeRemediateGitLab advisory databaseCVE ID requestsPoliciesSecurity glossaryDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Secure your application /CVE ID requestsHelp us learn about your current experience with the documentation. Take the survey.CVE ID , Premium, Common Vulnerabilities and Exposures ID (CVE ID) is a unique identifier assigned to publicly-disclosed software vulnerabilities. GitLab is a CVE Numbering Authority (CNA), which means we can assign CVE identifiers to vulnerabilities in projects hosted on GitLab.com.For public projects, you can request a CVE identifier to keep users informed about security issues. For example, GitLab dependency scanning tools can detect when your project uses vulnerable versions of a dependency.A common vulnerability workflow a CVE for a vulnerability.Reference the assigned CVE identifier in release notes.Publish the vulnerability’s details after the fix is released.Submit a CVE ID Maintainer or Owner role for the project.The project is hosted on GitLab.com.The project is public.The vulnerability’s issue is confidential.To submit a CVE ID to the vulnerability’s issue and select Create CVE ID Request. The new issue page of the GitLab CVE project opens.In the Title box, enter a brief description of the vulnerability.In the Description box, enter the following detailed description of the vulnerabilityThe project’s vendor and nameImpacted versionsFixed versionsThe vulnerability class (a CWE identifier)A CVSS v3 vectorGitLab updates your CVE ID request issue submission is assigned a CVE.Your CVE is published.MITRE is notified that your CVE is published.MITRE has added your CVE in the NVD feed.CVE assignmentAfter a CVE identifier is assigned, you can reference it as required. Details of the vulnerability submitted in the CVE ID request are published according to your schedule.Submit a CVE ID requestCVE assignment\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:06.819Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":579}}220{"id":"doc-customize_pipeline_secret_detection_gitlab_docs-12a7d8ef","source":"documentation","title":"Customize pipeline secret detection | GitLab Docs","url":"https://docs.gitlab.com/user/application_security/secret_detection/pipeline/configure/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationGetting startedTutorialsApplication securityComplianceDetectSecurity configurationRoll out security scanningSARIF reportsSecurity scanning resultsContainer scanningDependency scanning and container scanningDependency listContinuous vulnerability scanningStatic application security testing (SAST)Infrastructure as Code (IaC) scanningSecret detectionDetected secretsExclusionsPipeline secret detectionCustomizeAutomatic response to leaked secretsCustom rulesets schemaValidity your project with pipeline secret detectionGitLab Secret Scanner for Source CodeSecret push protectionClient-side secret detectionDynamic Application Security Testing (DAST)API securityWeb API fuzz testingCoverage-guided fuzz testing (deprecated)Offline environmentsScanner maintenanceTriageAnalyzeRemediateGitLab advisory databaseCVE ID requestsPoliciesSecurity glossaryDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Secure your application /Detect /Secret detection /Pipeline secret detectio… /CustomizeHelp us learn about your current experience with the documentation. Take the survey.Customize pipeline secret , Premium, , GitLab Self-Managed, GitLab DedicatedDepending on your subscription tier and configuration method, you can change how pipeline secret detection works.Customize analyzer behavior what types of secrets the analyzer detects.Use a different analyzer version.Scan your project with a specific method.Customize analyzer rulesets custom secret types.Override default scanner rules.Customize analyzer behaviorTo change how the analyzer behaves, define variables using the variables parameter in ''' \"\"\"The previous example replaces the default ruleset with a rule that checks for the regex defined - Custom Raw Ruleset T with a suffix of 3 characters from either one of e, s, or t letters.For more information on the passthrough syntax to use, see Schema.With a local rulesetYou can use file passthrough to replace the default ruleset with another file committed to the current repository.Add the following in the ''' ]This ignores any string matching glpat- with a suffix of 20 characters of digits and letters.Similarly, you can exclude specific paths from being scanned. The example below defines an array of paths to ignore under the [allowlist] directive. A path could either be a regular expression, or a specific file path:# extended-gitleaks-config.toml [extend] # Extends default packaged ruleset, not change the path. path = \"/gitleaks.toml\" [allowlist] description = \"allowlist of patterns to ignore in detection\" paths = [ '''/gitleaks.toml''', '''(.*?)(jpg|gif|doc|pdf|bin|svg|socket)''' ]This ignores any secrets detected in either /gitleaks.toml file or any file ending with one of the specified extensions.From Gitleaks v8.20.0, you can also use regexTarget with [allowlist]. This means you can configure a personal access token prefix or a custom instance prefix by overriding existing rules. For example, for personal access tokens, you could configure:# extended-gitleaks-config.toml [extend] # Extends default packaged ruleset, not change the path. path = \"/gitleaks.toml\" [[rules]] # Rule id you want to = \"gitlab_personal_access_token\" # all the other attributes from the default rule are inherited [[rules.allowlists]] regexTarget = \"line\" regexes = [ '''CUSTOMglpat-''' ] [[rules]] id = \"gitlab_personal_access_token_with_custom_prefix\" regex = '<Regex that match a personal access token starting with your CUSTOM prefix>'Keep in mind that you need to account for all rules configured in the default ruleset.For more information on the passthrough syntax to use, see Schema.Ignore secrets inlineIn some instances, you might want to ignore a secret inline. For example, you might have a fake secret in an example or a test suite. In these instances, you should ignore the secret instead of having it reported as a vulnerability.To ignore a secret, add as a comment to the line that contains the secret.For example:\"A personal token for GitLab will look like glpat-JUST20LETTERSANDNUMB\" # complex stringsThe default ruleset provides patterns to detect structured strings with a low rate of false positives. However, you might want to detect more complex strings like passwords. Gitleaks doesn’t support lookahead or lookbehind, so writing a high-confidence general rule to detect unstructured strings is not possible.Although you can’t detect every complex string, you can extend your ruleset to meet specific use cases.For example, this rule modifies the generic-api-key rule from the Gitleaks default ruleset:(?i)(?:pwd|passwd|password)(?:[0-9a-z\\-_\\t .]{0,20})(?:[\\s|']|[\\s|\"]){0,3}(?:=|>|=:|:{1,3}=|\\|\\|:|<=|=>|:|\\?=)(?:'|\\\"|\\s|=|\\x60){0,5}([0-9a-z\\-_.=\\S_]{3,50})(?:['|\\\"|\\n|\\r|\\s|\\x60|;]|$)This regular expression case-insensitive identifier that starts with pwd, or passwd or password. You can adjust this with other variations like secret or key.A suffix that follows the identifier. The suffix is a combination of digits, letters, and symbols, and is between zero and 23 characters long.Commonly used assignment operators, like =, :=, :, or =>.A secret prefix, often used as a boundary to help with detecting the secret.A string of digits, letters, and symbols, which is between three and 50 characters long. This is the secret itself. If you expect longer strings, you can adjust the length.A secret suffix, often used as a boundary. This matches common endings like ticks, line breaks, and new lines.Here are example strings which are matched by this regular = password1234 passwd = 'p@ssW0rd1234' password = thisismyverylongpassword password => mypassword password := mypassword \"password\" = \"p%ssward1234\" 'password': 'p@ssW0rd1234'To use this regex, extend your ruleset with one of the methods documented on this page.For example, imagine you wish to extend the default ruleset with a local ruleset that includes this rule.Add the following to a )(?:[\\s|']|[\\s|\"]){0,3}(?:=|>|=:|:{1,3}=|\\|\\|:|<=|=>|:|\\?=)(?:'|\\\"|\\s|=|\\x60){0,5}([0-9a-z\\-_.=\\S_]{3,50})(?:['|\\\"|\\n|\\r|\\s|\\x60|;]|$)''' entropy = 3.5 keywords = [\"pwd\", \"passwd\", \"password\"]This example configuration is provided only for convenience, and might not work for all use cases. If you configure your ruleset to detect complex strings, you might create a large number of false positives, or fail to capture certain patterns.DemonstrationsThere are demonstration projects that illustrate some of these configuration options.Below is a table with the demonstration projects and their associated /WorkflowApplies to/viaWith inline or local rulesetWith remote rulesetDisable a rulePredefined rulesLocal Ruleset / ProjectRemote Ruleset / ProjectOverride a rulePredefined rulesLocal Ruleset / ProjectRemote Ruleset / ProjectReplace default rulesetFile PassthroughLocal Ruleset / ProjectNot applicableReplace default rulesetRaw PassthroughInline Ruleset / ProjectNot applicableReplace default rulesetGit PassthroughNot applicableRemote Ruleset / ProjectReplace default rulesetURL PassthroughNot applicableRemote Ruleset / ProjectExtend default rulesetFile PassthroughLocal Ruleset / ProjectNot applicableExtend default rulesetGit PassthroughNot applicableRemote Ruleset / ProjectExtend default rulesetURL PassthroughNot applicableRemote Ruleset / ProjectIgnore pathsFile PassthroughLocal Ruleset / ProjectNot applicableIgnore pathsGit PassthroughNot applicableRemote Ruleset / ProjectIgnore pathsURL PassthroughNot applicableRemote Ruleset / ProjectIgnore patternsFile PassthroughLocal Ruleset / ProjectNot applicableIgnore patternsGit PassthroughNot applicableRemote Ruleset / ProjectIgnore patternsURL PassthroughNot applicableRemote Ruleset / ProjectIgnore valuesFile PassthroughLocal Ruleset / ProjectNot applicableIgnore valuesGit PassthroughNot applicableRemote Ruleset / ProjectIgnore valuesURL PassthroughNot applicableRemote Ruleset / ProjectThere are also some video demonstrations walking through setting up remote detection with local and remote rulesetOffline , Self-ManagedAn offline environment has limited, restricted, or intermittent access to external resources through the internet. For instances in such an environment, pipeline secret detection requires some configuration changes. The instructions in this section must be completed together with the instructions detailed in offline environments.Configure GitLab RunnerBy default, a runner tries to pull Docker images from the GitLab container registry even if a local copy is available. You should use this default setting, to ensure Docker images remain current. However, if no network connectivity is available, you must change the default GitLab Runner pull_policy variable.Configure the GitLab Runner CI/CD variable pull_policy to if-not-present.Use local pipeline secret detection analyzer imageUse a local pipeline secret detection analyzer image if you want to obtain the image from a local Docker registry instead of the GitLab container registry.Prerequisites:Importing Docker images into a local offline Docker registry depends on your network security policy. Consult your IT staff to find an accepted and approved process to import or temporarily access external resources.Import the default pipeline secret detection analyzer image from registry.gitlab.com into your local Docker container /security-products/secrets:7The pipeline secret detection analyzer’s image is periodically updated so you should periodically update the local copy.Set the CI/CD variable SECURE_ANALYZERS_PREFIX to the local Docker container registry.include: - /Secret-Detection.gitlab-ci.yml : \"localhost:5000/analyzers\"The pipeline secret detection job should now use the local copy of the analyzer Docker image, without requiring internet access.Using a custom SSL CA certificate authorityTo trust a custom certificate authority, set the ADDITIONAL_CA_CERT_BUNDLE variable to the bundle of CA certificates that you trust. Do this either in the .gitlab-ci.yml file, in a file variable, or as a CI/CD variable.In the .gitlab-ci.yml file, the ADDITIONAL_CA_CERT_BUNDLE value must contain the text representation of the X.509 PEM public-key certificate.For : ADDITIONAL_CA_CERT_BUNDLE: | -----BEGIN CERTIFICATE----- MIIGqTCCBJGgAwIBAgIQI7AVxxVwg2kch4d56XNdDjANBgkqhkiG9w0BAQsFADCB ... jWgmPqF3vUbZE0EyScetPJquRFRKIesyJuBFMAs= -----END CERTIFICATE-----If using a file variable, set the value of ADDITIONAL_CA_CERT_BUNDLE to the path to the certificate.If using a variable, set the value of ADDITIONAL_CA_CERT_BUNDLE to the text representation of the certificate.Customize analyzer behaviorAdd new patternsPropose new detection rulesPin to specific analyzer versionEnable historic scanRun jobs in merge request pipelinesOverride the analyzer jobsAvailable CI/CD variablesCustomize analyzer rulesetsCreate a ruleset configuration fileModify rules from the default rulesetDisable a ruleOverride a ruleWith a remote rulesetReplace the default rulesetWith an inline rulesetWith a local rulesetWith a remote rulesetWith a private remote rulesetTurn on beta rulesExtend the default rulesetWith a local rulesetWith a remote rulesetWith a scan execution policyIgnore patterns and pathsIgnore secrets inlineDetecting complex stringsDemonstrationsOffline configurationConfigure GitLab RunnerUse local pipeline secret detection analyzer imageUsing a custom SSL CA certificate authority\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Secret-Detection.gitlab-ci.yml\n\nsecret_detection:\n variables:\n SECRETS_ANALYZER_VERSION: \"4.5\"\n```\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Secret-Detection.gitlab-ci.yml\n\nsecret_detection:\n variables:\n SECRET_DETECTION_HISTORIC_SCAN: \"true\"\n```\n\nExample:\n```toml\n[secrets]\n [[secrets.ruleset]]\n disable = true\n [secrets.ruleset.identifier]\n type = \"gitleaks_rule_id\"\n value = \"RSA private key\"\n```\n\nExample:\n```toml\n[secrets]\n [[secrets.ruleset]]\n [secrets.ruleset.identifier]\n type = \"gitleaks_rule_id\"\n value = \"RSA private key\"\n [secrets.ruleset.override]\n description = \"OVERRIDDEN description\"\n message = \"OVERRIDDEN message\"\n name = \"OVERRIDDEN name\"\n severity = \"Info\"\n```\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Secret-Detection.gitlab-ci.yml\n\nvariables:\n SECRET_DETECTION_RULESET_GIT_REFERENCE: \"gitlab.com/example-group/remote-ruleset-project\"\n```\n\nExample:\n```plaintext\n<AUTH_USER>:<AUTH_PASSWORD>@<PROJECT_PATH>@<GIT_SHA>\n```\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Secret-Detection.gitlab-ci.yml\n\nvariables:\n SECRET_DETECTION_RULESET_GIT_REFERENCE: \"group_2504721_bot_7c9311ffb83f2850e794d478ccee36f5:$GROUP_ACCESS_TOKEN@gitlab.com/example-group/remote-ruleset-project\"\n```\n\nExample:\n```toml\n[secrets]\n [[secrets.passthrough]]\n type = \"raw\"\n target = \"gitleaks.toml\"\n value = \"\"\"\ntitle = \"replace default ruleset with a raw passthrough\"\n\n[[rules]]\ndescription = \"Test for Raw Custom Rulesets\"\nregex = '''Custom Raw Ruleset T[est]{3}'''\n\"\"\"\n```\n\nExample:\n```toml\n[secrets]\n [[secrets.passthrough]]\n type = \"file\"\n target = \"gitleaks.toml\"\n value = \"config/gitleaks.toml\"\n```\n\nExample:\n```toml\n# .gitlab/secret-detection-ruleset.toml in https://gitlab.com/user_group/basic_repository\n[secrets]\n [[secrets.passthrough]]\n type = \"git\"\n ref = \"main\"\n subdir = \"config\"\n value = \"https://gitlab.com/user_group/central_repository_with_shared_ruleset\"\n```\n\nExample:\n```toml\n# .gitlab/secret-detection-ruleset.toml in https://gitlab.com/user_group/basic_repository\n[secrets]\n [[secrets.passthrough]]\n type = \"url\"\n target = \"gitleaks.toml\"\n value = \"https://example.com/gitleaks.toml\"\n```\n\nExample:\n```toml\n[secrets]\n [[secrets.passthrough]]\n type = \"git\"\n ref = \"main\"\n auth = \"USERNAME:PASSWORD\" # replace USERNAME and PASSWORD as appropriate\n subdir = \"config\"\n value = \"https://gitlab.com/user_group/central_repository_with_shared_ruleset\"\n```\n\nExample:\n```toml\n[secrets]\n [[secrets.passthrough]]\n type = \"file\"\n target = \"gitleaks.toml\"\n value = \"/beta.toml\"\n```\n\nExample:\n```toml\n# .gitlab/secret-detection-ruleset.toml\n[secrets]\n [[secrets.passthrough]]\n type = \"file\"\n target = \"gitleaks.toml\"\n value = \"extended-gitleaks-config.toml\"\n```\n\nExample:\n```toml\n# extended-gitleaks-config.toml\n[extend]\n# Extends default packaged ruleset, NOTE: do not change the path.\npath = \"/gitleaks.toml\"\n\n[[rules]]\n id = \"example_api_key\"\n description = \"Example Service API Key\"\n regex = '''example_api_key'''\n\n[[rules]]\n id = \"example_api_secret\"\n description = \"Example Service API Secret\"\n regex = '''example_api_secret'''\n```\n\nExample:\n```toml\n# https://gitlab.com/user_group/central_repository_with_shared_ruleset/-/raw/main/config/gitleaks.toml\n[extend]\n# Extends default packaged ruleset, NOTE: do not change the path.\npath = \"/gitleaks.toml\"\n\n[[rules]]\n id = \"example_api_key\"\n description = \"Example Service API Key\"\n regex = '''example_api_key'''\n\n[[rules]]\n id = \"example_api_secret\"\n description = \"Example Service API Secret\"\n regex = '''example_api_secret'''\n```\n\nExample:\n```toml\n# extended-gitleaks-config.toml\n[extend]\n# Extends default packaged ruleset, NOTE: do not change the path.\npath = \"/gitleaks.toml\"\n\n[allowlist]\n description = \"allowlist of patterns to ignore in detection\"\n regexTarget = \"match\"\n regexes = [\n '''glpat-[0-9a-zA-Z_\\\\-]{20}'''\n ]\n```\n\nExample:\n```toml\n# extended-gitleaks-config.toml\n[extend]\n# Extends default packaged ruleset, NOTE: do not change the path.\npath = \"/gitleaks.toml\"\n\n[allowlist]\n description = \"allowlist of patterns to ignore in detection\"\n paths = [\n '''/gitleaks.toml''',\n '''(.*?)(jpg|gif|doc|pdf|bin|svg|socket)'''\n ]\n```\n\nExample:\n```toml\n# extended-gitleaks-config.toml\n[extend]\n# Extends default packaged ruleset, NOTE: do not change the path.\npath = \"/gitleaks.toml\"\n\n[[rules]]\n# Rule id you want to override:\nid = \"gitlab_personal_access_token\"\n# all the other attributes from the default rule are inherited\n [[rules.allowlists]]\n regexTarget = \"line\"\n regexes = [ '''CUSTOMglpat-''' ]\n\n[[rules]]\nid = \"gitlab_personal_access_token_with_custom_prefix\"\nregex = '<Regex that match a personal access token starting with your CUSTOM prefix>'\n```\n\nExample:\n```ruby\n\"A personal token for GitLab will look like glpat-JUST20LETTERSANDNUMB\" # gitleaks:allow\n```\n\nExample:\n```regex\n(?i)(?:pwd|passwd|password)(?:[0-9a-z\\-_\\t .]{0,20})(?:[\\s|']|[\\s|\"]){0,3}(?:=|>|=:|:{1,3}=|\\|\\|:|<=|=>|:|\\?=)(?:'|\\\"|\\s|=|\\x60){0,5}([0-9a-z\\-_.=\\S_]{3,50})(?:['|\\\"|\\n|\\r|\\s|\\x60|;]|$)\n```\n\nExample:\n```plaintext\npwd = password1234\npasswd = 'p@ssW0rd1234'\npassword = thisismyverylongpassword\npassword => mypassword\npassword := mypassword\npassword: password1234\n\"password\" = \"p%ssward1234\"\n'password': 'p@ssW0rd1234'\n```\n\nExample:\n```toml\n# extended-gitleaks-config.toml\n[extend]\n# Extends default packaged ruleset, NOTE: do not change the path.\npath = \"/gitleaks.toml\"\n\n[[rules]]\n description = \"Generic Password Rule\"\n id = \"generic-password\"\n regex = '''(?i)(?:pwd|passwd|password)(?:[0-9a-z\\-_\\t .]{0,20})(?:[\\s|']|[\\s|\"]){0,3}(?:=|>|=:|:{1,3}=|\\|\\|:|<=|=>|:|\\?=)(?:'|\\\"|\\s|=|\\x60){0,5}([0-9a-z\\-_.=\\S_]{3,50})(?:['|\\\"|\\n|\\r|\\s|\\x60|;]|$)'''\n entropy = 3.5\n keywords = [\"pwd\", \"passwd\", \"password\"]\n```\n\nExample:\n```plaintext\nregistry.gitlab.com/security-products/secrets:7\n```\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Secret-Detection.gitlab-ci.yml\n\nvariables:\n SECURE_ANALYZERS_PREFIX: \"localhost:5000/analyzers\"\n```\n\nExample:\n```yaml\nvariables:\n ADDITIONAL_CA_CERT_BUNDLE: |\n -----BEGIN CERTIFICATE-----\n MIIGqTCCBJGgAwIBAgIQI7AVxxVwg2kch4d56XNdDjANBgkqhkiG9w0BAQsFADCB\n ...\n jWgmPqF3vUbZE0EyScetPJquRFRKIesyJuBFMAs=\n -----END CERTIFICATE-----\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.153Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":26,"totalLines":293,"estimatedTokens":4525}}221{"id":"doc-jihu_edition_gitlab_docs-1ff50403","source":"documentation","title":"JiHu Edition | GitLab Docs","url":"https://docs.gitlab.com/omnibus/jihu_edition/","text":"Example:\n```shell\nsudo apt-cache policy gitlab-ee | grep Installed\n```\n\nExample:\n```shell\nsudo rpm -q gitlab-ee\n```\n\nExample:\n```shell\nsudo gitlab-ctl reconfigure\n```\n\nExample:\n```shell\nsudo rm /etc/apt/sources.list.d/gitlab_gitlab-ee.list\n```\n\nExample:\n```shell\nsudo rm /etc/yum.repos.d/gitlab_gitlab-ee.repo\nsudo dnf config-manager --disable gitlab_gitlab-ee\n```\n\nExample:\n```shell\nregistry.gitlab.com/gitlab-jh/omnibus-gitlab/gitlab-jh:<version>\n```\n\nExample:\n```shell\nsudo docker ps | grep gitlab/gitlab-ee | awk '{print $2}'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.192Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":37,"estimatedTokens":137}}222{"id":"doc-what_gitlab_orbit_indexes_gitlab_docs-abf28041","source":"documentation","title":"What GitLab Orbit indexes | GitLab Docs","url":"https://docs.gitlab.com/orbit/remote/indexing/","text":"GitLab Orbit skillTroubleshootingGitLab Orbit RemoteGetting startedHow it worksWhat Orbit indexesSecuritySchema referenceCookbookQueriesGitLab Duo Agent PlatformMCPglab orbitREST APIGitLab Orbit LocalGitLab Docs /GitLab Orbit /GitLab Orbit Remote /What Orbit indexesHelp us learn about your current experience with the documentation. Take the survey.What GitLab Orbit , : BetaHistoryIntroduced in GitLab 18.10 with a feature flag named knowledge_graph. Disabled by default. This feature is an experiment.Changed to beta in GitLab 19.1.The availability of this feature is controlled by a feature flag. For more information, see the history. This feature is available for testing, but not ready for production use.ScopeGitLab Orbit indexes top-level groups only. Enable GitLab Orbit on a top-level group and all its subgroups and projects are indexed automatically. You cannot enable GitLab Orbit on a subgroup or individual project.SDLC dataGitLab Orbit indexes the following GitLab objects and their indexedCoreGroups, projects, users, notes (comments)Code reviewMerge requests, merge request diffs, changed filesCI/CDPipelines, stages, jobsPlanningWork items (issues, epics, tasks, incidents), milestones, labelsSecurityVulnerabilities, security findings, security scans, scanners, CVE/CWE identifiersSDLC data is updated continuously via change data capture. Changes in your GitLab instance appear in GitLab Orbit within minutes.Source codeGitLab Orbit indexes source code from your repositories and builds a code graph on top of it.What gets and directoriesFunction, class, and module definitions (with start/end line and full source content)Import and cross-file reference relationships between filesCode is indexed from the default branch only. GitLab Orbit re-indexes automatically when the default branch changes.Supported languagesLanguageDefinitionsCross-file referencesRubyYesYesJavaYesYesKotlinYesYesPythonYesYesTypeScriptYesYesJavaScriptYesYesRustYesYesGoYesYesC#YesYesCYesYesC++YesYesPHPYesYesBash/ShellYesNoLanguages not currently , COBOL, Terraform, YAML.What is not indexedBranches other than the default branchBinary filesFiles in archived projects (SDLC metadata for archived projects is still indexed)Private content the requesting user does not have access to (authorization is enforced at query time)For the roles required to query, and the Security Manager role needed for security data, see Security.ScopeSDLC dataSource codeSupported languagesWhat is not indexed\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.384Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":625}}223{"id":"doc-client_authentication_mistral_docs-f949be79","source":"documentation","title":"Client authentication | Mistral Docs","url":"https://docs.mistral.ai/studio/audio/speech_to_text/realtime_transcription/client_auth","text":"Realtime transcriptionText to Speech\n\nExample:\n```text\ncurl https://api.mistral.ai/v1/client/sessions \\\n -X POST \\\n -H \"Authorization: Bearer $MISTRAL_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"purpose\": \"realtime\",\n \"model\": \"voxtral-mini-transcribe-realtime-2602\"\n }'\n```\n\nExample:\n```text\n{\n \"object\": \"client.session\",\n \"purpose\": \"realtime\",\n \"expires_at\": \"2026-07-03T10:01:00Z\",\n \"client_secret\": {\n \"value\": \"rt_...\",\n \"expires_at\": \"2026-07-03T10:01:00Z\"\n }\n}\n```\n\nExample:\n```text\nconst token = await fetchTokenFromYourBackend(); // \"rt_...\"\nconst model = \"voxtral-mini-transcribe-realtime-2602\";\n\nconst ws = new WebSocket(\n `wss://api.mistral.ai/v1/audio/transcriptions/realtime?model=${model}`,\n [\"realtime\", token] // passed as Sec-WebSocket-Protocol\n);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.734Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":39,"estimatedTokens":206}}224{"id":"doc-data_redaction_mistral_docs-eaeada32","source":"documentation","title":"Data redaction | Mistral Docs","url":"https://docs.mistral.ai/studio/observability/traces/data-redaction","text":"Example:\n```text\nfrom mistralai.extra.observability import (\n configure_telemetry,\n AttributeRedactionPolicy,\n)\n\nconfigure_telemetry(client) # default policy\nconfigure_telemetry(client, redaction=AttributeRedactionPolicy()) # strict, key-oriented\nconfigure_telemetry(client, redaction=False) # disabled\nconfigure_telemetry( # custom per-attribute callback\n client,\n redaction=lambda key, value: None if \"email\" in key else value,\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:17.740Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":17,"estimatedTokens":143}}225{"id":"doc-trace_diff_using_holistic_trace_analysis_pytorch-44c8bb9a","source":"documentation","title":"Trace Diff using Holistic Trace Analysis — PyTorch Tutorials 2.13.0+cu130 documentation","url":"https://docs.pytorch.org/tutorials/beginner/hta_trace_diff_tutorial.html","text":"Example:\n```js\nDocs Access comprehensive developer documentation for PyTorch View Docs Tutorials Get in-depth tutorials for beginners and advanced developers View Tutorials Resources Find development resources and get your questions answered View Resources\n```\n\nTo analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available Policy.\n\nExample:\n```text\ndf = compare_traces_output.sort_values(by=\"diff_counts\", ascending=False).head(10)\nTraceDiff.visualize_counts_diff(df)\n```\n\nExample:\n```text\ndf = compare_traces_output.sort_values(by=\"diff_duration\", ascending=False)\n# The duration differerence can be overshadowed by the \"ProfilerStep\",\n# so we can filter it out to show the trend of other operators.\ndf = df.loc[~df.index.str.startswith(\"ProfilerStep\")].head(10)\nTraceDiff.visualize_duration_diff(df)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:23.703Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":23,"estimatedTokens":255}}226{"id":"doc-applying_3ds_to_transactions_and_verifications-5b1beae5","source":"documentation","title":"Applying 3DS to Transactions and Verifications","url":"https://developer.paypal.com/braintree/docs/guides/3d-secure/applying-3ds-to-transactions-and-verifications/dotnet/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```cs\nvar request = new TransactionRequest\n{\n Amount = 10.00M,\n PaymentMethodNonce = nonceFromTheClient,\n DeviceData = deviceDataFromTheClient,\n Options = new TransactionOptionsRequest\n {\n SubmitForSettlement = true\n }\n};\n\nResult<Transaction> result = gateway.Transaction.Sale(request);\n```\n\nExample:\n```cs\nvar request = new TransactionRequest\n{\n Amount = 10.00M,\n PaymentMethodToken = token,\n PaymentMethodNonce = nonceWithout3ds,\n ThreeDSecureAuthenticationId = threeDSecureAuthenticationId,\n DeviceData = deviceDataFromTheClient,\n Options = new TransactionOptionsRequest\n {\n SubmitForSettlement = true\n }\n};\n\nResult<Transaction> result = gateway.Transaction.Sale(request);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.149Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":37,"estimatedTokens":243}}227{"id":"doc-applying_3ds_to_transactions_and_verifications-e5bf3ef3","source":"documentation","title":"Applying 3DS to Transactions and Verifications","url":"https://developer.paypal.com/braintree/docs/guides/3d-secure/applying-3ds-to-transactions-and-verifications/php/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '10.00',\n 'paymentMethodNonce' => $nonceFromTheClient,\n 'deviceData' => $deviceDataFromTheClient,\n 'options' => [\n 'submitForSettlement' => true\n ]\n]);\n```\n\nExample:\n```php\n$result = $gateway->transaction()->sale([\n 'amount' => '10.00',\n 'paymentMethodToken' => $token,\n 'paymentMethodNonce' => $cvvOnlyNonce,\n 'threeDSecureAuthenticationId' => $threeDSecureAuthenticationId,\n 'deviceData' => $deviceDataFromTheClient,\n 'options' => [\n 'submitForSettlement' => true\n ]\n]);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.167Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":29,"estimatedTokens":207}}228{"id":"doc-braintree_sdk_docs-21b50123","source":"documentation","title":"Braintree SDK Docs","url":"https://developer.paypal.com/braintree/articles/control-panel/vault/update","text":"Braintree a PayPal ServiceSupport ArticlesUpdateSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedControl PanelGuidesRisk and Security\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.226Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":66}}229{"id":"doc-braintree_sdk_docs-58468c7a","source":"documentation","title":"Braintree SDK Docs","url":"https://developer.paypal.com/braintree/articles/risk-and-security/card-brand-monitoring-programs/mastercard-programs/excessive-chargeback-program","text":"Braintree a PayPal ServiceSupport ArticlesExcessive Chargeback ProgramSDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedControl PanelGuidesRisk and Security\n\nRisk and SecurityOverviewChargebacks and RetrievalsOverviewDisputing ChargebacksReducing ChargebacksChargeback Reason CodesCard Brand Monitoring ProgramsOverviewVisa ProgramsVisa Acquirer Monitoring ProgramVisa Fraud Monitoring ProgramsMastercard ProgramsExcessive Chargeback ProgramExcessive Fraud Merchant ProgramFrequently Asked QuestionsComplianceOverviewEcommerce Website RequirementsData Protection LawsNetwork ComplianceNetwork UpdatesOverviewMastercardVisaAll Spring 2026 UpdatesAll Spring 2025 UpdatesAll Fall 2025 UpdatesAll Spring 2024 UpdatesAll Spring 2023 UpdatesAll Fall 2023 UpdatesAppendixPCI ComplianceProhibited TransactionsControl Panel SecurityRotating API KeysTwo-Factor AuthenticationRisk FactorsMitigating RiskIdentifying FraudUnderwritingOverviewPeriodic ReviewsAllowlistingRisk and Security/Card Brand Monitoring Programs/Mastercard Programs/Excessive Chargeback ProgramAsk ChatGPTExcessive Chargeback Program Mastercard has a global chargeback monitoring program called the Excessive Chargeback Program (ECP) that monitors chargebacks, defines non-compliance thresholds, identifies when merchant accounts have excessive chargeback activity, and requires merchants to reduce chargebacks to remain compliant with Mastercard's standards. Mastercard identifies merchants by merchant account id and will review all merchant accounts monthly for accounts exceeding the thresholds. Note Mastercard also has a global fraud monitoring program called the Excessive Fraud Merchant Program (EFM). Any merchant identified as non-compliant for both Excessive Fraud Merchant Program and the Excessive Chargeback Program in the same month will only be subject to the applicable Excessive Fraud Merchant Program assessments. For general information about card brand monitoring programs and important terms, visit the Card Brand Monitoring Program's Overview article. Excessive Chargeback Program details The Excessive Chargeback Program monitors your merchant account. It uses your chargeback count and ratio to determine which threshold your account meets. Based on the threshold you will be assessed different levels of fines. The formula the Excessive Chargeback Program uses to calculate your Mastercard chargeback ratio is the count of chargebacks received in a given month divided by the count of sales processed in the prior month (example: June chargebacks / May sales). Thresholds If your merchant account meets or exceeds either of the non-compliance thresholds by chargeback count and chargeback ratio, you could be flagged with one of the Chargeback Merchant (ECM) or High Excessive Chargeback Merchant (HECM). Note Effective April 2020, the Excessive Chargeback Program no longer identifies merchants at the Chargeback Monitored Merchant (CMM) threshold of 100 chargebacks and a 1.0% ratio. Effective October 2019 - Both chargeback count and chargeback ratio must be met or exceeded in order to be flagged in one of these CountChargeback RatioExcessive Chargeback Merchant100 - 2991.50 - 2.99%High Excessive Chargeback Merchant300+3.00%+FinesEffective April 2020 Globally, effective September 2020 for Canada only - The fine assessments/penalties for this program Chargeback Merchant (USD/EUR)High Excessive Chargeback Merchant (USD/EUR)Month 100Month 21,0001,000Month 31,0002,000Month 4-65,00010,000*Month 7-1125,00050,000*Month 12-1850,000100,000*Month 19+100,000200,000* * Account is also eligible for an Issuer Recovery Assessment, which is an additional fine at USD/EUR 5 per chargeback over 300 chargebacks.Extensions Mastercard offers an extension to be filed, which will place a hold on fine assessments for 6 months if granted. During the extension timeframe, you can still be identified in the Excessive Chargeback Merchant (ECM) or/ High Excessive Chargeback Merchants (HECM) level. Fine assessments will accrue with each identification. However, these fines will not be assessed during the extension. If you are below ECM thresholds at the end of the extension, no fines will be assessed. Regardless, if you flag over the thresholds at the end of the extension, all accrued fines will be assessed at that time. Remediation plan If you have been identified in the Excessive Chargeback Program, a remediation plan may be requested by Mastercard. A remediation plan aims to show Mastercard what actions you are taking to remedy the situation and regain compliance. Information communicated is also reviewed and considered when the card brand issues fine assessments. The main details you should provide for your remediation plan include, but are not limited descriptionEvents leading to the increased chargebacksActions taken to reduce chargebacks, including implementation datesDescription of all fraud tools currently enabledHow to exit the program To exit the Excessive Chargeback Program, your merchant account must be below the Excessive Chargeback Merchant (ECM) thresholds for 3 consecutive months. If you have any questions regarding these programs, check out our FAQ or Contact us. On this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedOverviewPayment MethodsCurrenciesTransaction LifecycleGet PaidTry It OutData MigrationExploreControl PanelOverviewUsers and RolesImportant Gateway CredentialsSearchTransactionsVaultReportingWebhooksCustom FieldsToolsAccount UpdaterBraintree MarketplaceConfiguring SPF RecordsFraud ToolsPayment MethodsPayPal HereRecurring BillingUpdating Account InformationRisk and SecurityOverviewChargebacks and RetrievalsComplianceControl Panel SecurityRisk FactorsUnderwritingAllowlistingBraintreepayments.comStatusSDK DocsAPIIn-PersonPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.300Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":1509}}230{"id":"doc-bring_your_own_token-cfddbd07","source":"documentation","title":"Bring Your Own Token","url":"https://developer.paypal.com/braintree/docs/guides/network-tokens/bring-your-own-token/python/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nBasicsClient AuthorizationOverviewTokenization KeyClient TokenPayment Method NoncesTransactionsCustomersPayment MethodsCheckout UIsDrop-in UIOverviewSetup and IntegrationCustomizationHosted FieldsOverviewSetup and IntegrationStylingEventsTroubleshooting and FAQExamplesFastlaneOverviewSetup and IntegrationClient-sideServer-sideTest your IntegrationAppendixAdvanced OptionsStylingBest Practice GuideTroubleshooting And FAQReference TypesFlexible Payment IntegrationPayment Method TypesOverviewACH Direct DebitOverviewConfigurationClient-sideServer-sideTesting and Go LiveInstant VerificationOverviewInstant Verification Client-sideInstant Verification Server-sideTesting Instant VerificationApple PayOverviewConfigurationClient-sideServer-sideTesting and Go LiveCredit CardsOverviewConfigurationClient-sideServer-sideTesting and Go LiveLocal Payment MethodsOverviewConfigurationClient-sideServer-sideTesting and Go LiveBoleto Bancário (Non-Instant)Multibanco (Non-Instant)OXXO (Non-Instant)Trustly (Non-Instant)SwishGoogle PayOverviewConfigurationClient-sideServer-sideTesting and Go LivePayPalOverviewClient-sidePayment FlowOne-time PaymentsRecurring PaymentsVaulted PaymentsCheckout with VaultPay Later OffersMobile CheckoutFeaturesApp SwitchShipping ModuleServer-sideTesting and Go LiveSamsung PayOverviewSEPA Direct DebitOverviewConfigurationClient-sideServer-sideVaultingTesting and Go LiveVenmoOverviewConfigurationClient-sideServer-sideTesting and Go LivePayment OrchestrationOverviewAdyendLocalEBANXFat ZebraFlexFactorFlutterwaveStripeTools3D SecureOverviewOnboardingStep by Step IntegrationApplying 3DS to Transactions and VerificationsMerchant Initiated Authentication (3RI)Rules ManagerAdvanced OptionsAuthentication InsightTestingPremium Fraud Management ToolsOverviewConfigurationClient-sideServer-sideWebhooksTesting and Go LiveData LensOverviewGetting StartedData Schema ReferenceSample QueriesIntegration PatternsBest Practices and SecurityTroubleshootingSupport and ResourcesFX OptimizerOverviewServer-sideTesting and Go LiveClient SDKSetupMigrationDeprecation PolicyDisputesOverviewManagingEvidence RequirementsAutomatingTesting and Go LiveNetwork TokensOverviewValue to MerchantsHow it WorksGetting StartedBring Your Own TokenPayment Request APIOverviewSetup and IntegrationReportsOverviewSettlement Batch SummariesCustom ReportsWebhooksWebhooksOverviewCreateParseTesting and Go LiveBraintree ExtendOAuthOverviewConfigurationConnect URLsClient-side Connect FlowAccess TokensShared VaultReferenceForward APIConfigurationTransformationsTokenization SupportHyperwallet IntegrationWorldpayExamplesCryptographyPGP Public KeyAdditional FeaturesOptimized Debit RoutingOverviewTransaction WorkflowEligibilityIntegrationManaging AuthorizationNetwork Response CodesTest and Go LiveCode SamplesSDKGraphQLBraintree Auth (Beta)OverviewConfigurationMerchant Connect FlowServer-side Connect FlowClient-side Connect FlowOAuth FlowWebhooksMerchant APIMulti-currencyTesting and Go LiveBrandingReferencePackage TrackingOverviewClient-sideServer-sideRecurring BillingOverviewPlansCreating SubscriptionsManaging SubscriptionsTesting and Go LiveTools/Network Tokens/Bring Your Own TokenAsk ChatGPTBring Your Own TokenPythonSDKCurrent Braintree LanguagesJava.NETNode.jsPHPPythonRuby Through Bring Your Own Token (BYOT), merchants who tokenize cards with another Payment Service Provider (PSP) or who vault Network Tokens themselves can use their existing Network Tokens with Braintree. Creating transactions A BYOT transaction can be created using with the required network token parameters. The required parameters differ based on the type of BYOT transaction being created. Required parametersThe following parameters are always (token) credit_card.expiration_date (token) credit_card.network_tokenization_attributes.cryptogram For more information on what should be passed in the cryptogram field, see the \"Customer Initiated Transactions\" and \"Merchant Initiated Transactions\" fields below. Optional parametersThe following parameters are always Refer to for detailed examples and a complete listing of transaction options. Customer initiated transactionsWhen creating a customer initiated transaction (CIT) or the first in a recurring series, a network-issued cryptogram is required. We also recommend including the external_vault object with status: \"vaulted\". While this is currently optional, it may become required in future updates to support proper transaction context.PythonCopyresult = gateway.transaction.sale({ \"amount\": \"10.00\", \"credit_card\": { \"number\": \"4111111111111111\", \"expiration_date\": \"05/2027\", \"network_tokenization_attributes\": { \"cryptogram\": \"/wAAAAAAAcb8AlGUF/1JQEkAAAA=\", \"token_requestor_id\": \"45310020105\", \"ecommerce-indicator\": \"05\" }, \"external_vault\": { \"status\": \"vaulted\", } } }) if result.is_success: # See result.transaction for details # result.transaction.processed_with_network_token = True else: # Handle errorsMerchant initiated transactions When creating a merchant initiated transaction (MIT) or subsequent transaction, a network transaction identifier (NTI) and related parameters are required. The cryptogram must still be present, but a static cryptogram value of \"STATIC_RECURRING\" should be included in place of a network-issued cryptogram. Required parameterstransaction_source = recurring, unscheduled, or installmentexternal_vault.status = vaultedexternal_vault.previous_network_transaction_idcredit_card.network_tokenization_attributes.cryptogramPythonCopyresult = gateway.transaction.sale({ \"amount\": \"10.00\", \"transaction_source\": \"recurring\", \"credit_card\": { \"number\": \"4111111111111111\", \"expiration_date\": \"05/2027\", \"network_tokenization_attributes\": { \"token_requestor_id\": \"45310020105\", \"ecommerce-indicator\": \"05\", \"cryptogram\": \"STATIC_RECURRING\" } }, \"external_vault\": { \"status\": \"vaulted\", \"previous_network_transaction_id\": \"45310020105\" } }) if result.is_success: # See result.transaction for details # result.transaction.processed_with_network_token = True else: # Handle errorsOn this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedIntegration GuideTutorial (Preview)Checkout UIsExample IntegrationsBasicsClient AuthorizationSingle-use TokenCustomersPayment MethodsTransactionsPayment Method TypesOverviewACH Direct DebitApple PayCredit CardsGoogle PayPayPalVenmoSecure Remote CommerceTools3D SecurePremium Fraud Management ToolsClient SDKDisputesPayment Request APIReportsWebhooksCheckout UIDrop-in UIHosted FieldsAdditional FeaturesBraintree Auth (Beta)Braintree MarketplaceGrant API (Beta)OAuth (Beta)PayPal HereRecurring BillingAPI ReferenceClient ReferencesServer-side API RequestsServer-side Response ObjectsGeneralBraintreepayments.comStatusAPIIn-PersonSupport ArticlesPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\nExample:\n```python\nresult = gateway.transaction.sale({\n \"amount\": \"10.00\",\n \"credit_card\": {\n \"number\": \"4111111111111111\",\n \"expiration_date\": \"05/2027\",\n \"network_tokenization_attributes\": {\n \"cryptogram\": \"/wAAAAAAAcb8AlGUF/1JQEkAAAA=\",\n \"token_requestor_id\": \"45310020105\",\n \"ecommerce-indicator\": \"05\"\n },\n \"external_vault\": {\n \"status\": \"vaulted\",\n }\n }\n})\n\nif result.is_success:\n # See result.transaction for details\n # result.transaction.processed_with_network_token = True\nelse:\n # Handle errors\n```\n\nExample:\n```python\nresult = gateway.transaction.sale({\n \"amount\": \"10.00\",\n \"transaction_source\": \"recurring\",\n \"credit_card\": {\n \"number\": \"4111111111111111\",\n \"expiration_date\": \"05/2027\",\n \"network_tokenization_attributes\": {\n \"token_requestor_id\": \"45310020105\",\n \"ecommerce-indicator\": \"05\",\n \"cryptogram\": \"STATIC_RECURRING\"\n }\n },\n \"external_vault\": {\n \"status\": \"vaulted\",\n \"previous_network_transaction_id\": \"45310020105\"\n }\n})\n\nif result.is_success:\n # See result.transaction for details\n # result.transaction.processed_with_network_token = True\nelse:\n # Handle errors\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.360Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":57,"estimatedTokens":2095}}231{"id":"doc-client_side_connect_flow-ab8855a1","source":"documentation","title":"Client-side Connect Flow","url":"https://developer.paypal.com/braintree/docs/guides/extend/oauth/client-side/ios/v6/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```swift\n// ViewController.swift\nimport UIKit\nimport SafariServices\n\nclass ViewController: UIViewController, SFSafariViewControllerDelegate {\n var safariVC: SFSafariViewController?\n```\n\nExample:\n```swift\n@IBAction func connectAction(sender: UIButton) {\n self.safariVC = SFSafariViewController(url: URL(string: CONNECT_URL_FROM_SERVER)!)\n self.safariVC!.delegate = self\n self.present(self.safariVC!, animated: true, completion: nil)\n}\n```\n\nExample:\n```swift\n// ViewController.swift\n\nextension Notification.Name {\n static let braintreeConnectedRedirectNotification = Notification.Name(rawValue: \"braintreeConnectedRedirectNotification\")\n}\n\nclass ViewController: UIViewController, SFSafariViewControllerDelegate {\n ...\n}\n```\n\nExample:\n```swift\noverride func viewDidLoad() {\n super.viewDidLoad()\n NotificationCenter.default.addObserver(self, selector: #selector(braintreeLogin(notification:)), name: .braintreeConnectedRedirectNotification, object: nil)\n}\n```\n\nExample:\n```swift\nfunc braintreeLogin(notification: NSNotification) {\n self.safariVC?.dismiss(animated: true, completion: nil)\n // perform any additional actions like transitioning to another view here\n}\n```\n\nExample:\n```xml\n<key>CFBundleURLTypes</key>\n<array>\n <dict>\n <key>CFBundleTypeRole</key>\n <string>Editor</string>\n <key>CFBundleURLName</key>\n <string>authredirect</string>\n <key>CFBundleURLSchemes</key>\n <array>\n <string>examplescheme</string>\n </array>\n </dict>\n</array>\n```\n\nExample:\n```swift\n// AppDelegate.swift\nfunc application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {\n NotificationCenter.default.post(name: .braintreeConnectedRedirectNotification, object: url)\n return true\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.388Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":7,"totalLines":77,"estimatedTokens":515}}232{"id":"doc-sdk-d560cc41","source":"documentation","title":"SDK","url":"https://developer.paypal.com/braintree/docs/guides/pinless-debit/optimized-debit-routing/code-samples/sdk/php/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nBasicsClient AuthorizationOverviewTokenization KeyClient TokenPayment Method NoncesTransactionsCustomersPayment MethodsCheckout UIsDrop-in UIOverviewSetup and IntegrationCustomizationHosted FieldsOverviewSetup and IntegrationStylingEventsTroubleshooting and FAQExamplesFastlaneOverviewSetup and IntegrationClient-sideServer-sideTest your IntegrationAppendixAdvanced OptionsStylingBest Practice GuideTroubleshooting And FAQReference TypesFlexible Payment IntegrationPayment Method TypesOverviewACH Direct DebitOverviewConfigurationClient-sideServer-sideTesting and Go LiveInstant VerificationOverviewInstant Verification Client-sideInstant Verification Server-sideTesting Instant VerificationApple PayOverviewConfigurationClient-sideServer-sideTesting and Go LiveCredit CardsOverviewConfigurationClient-sideServer-sideTesting and Go LiveLocal Payment MethodsOverviewConfigurationClient-sideServer-sideTesting and Go LiveBoleto Bancário (Non-Instant)Multibanco (Non-Instant)OXXO (Non-Instant)Trustly (Non-Instant)SwishGoogle PayOverviewConfigurationClient-sideServer-sideTesting and Go LivePayPalOverviewClient-sidePayment FlowOne-time PaymentsRecurring PaymentsVaulted PaymentsCheckout with VaultPay Later OffersMobile CheckoutFeaturesApp SwitchShipping ModuleServer-sideTesting and Go LiveSamsung PayOverviewSEPA Direct DebitOverviewConfigurationClient-sideServer-sideVaultingTesting and Go LiveVenmoOverviewConfigurationClient-sideServer-sideTesting and Go LivePayment OrchestrationOverviewAdyendLocalEBANXFat ZebraFlexFactorFlutterwaveStripeTools3D SecureOverviewOnboardingStep by Step IntegrationApplying 3DS to Transactions and VerificationsMerchant Initiated Authentication (3RI)Rules ManagerAdvanced OptionsAuthentication InsightTestingPremium Fraud Management ToolsOverviewConfigurationClient-sideServer-sideWebhooksTesting and Go LiveData LensOverviewGetting StartedData Schema ReferenceSample QueriesIntegration PatternsBest Practices and SecurityTroubleshootingSupport and ResourcesFX OptimizerOverviewServer-sideTesting and Go LiveClient SDKSetupMigrationDeprecation PolicyDisputesOverviewManagingEvidence RequirementsAutomatingTesting and Go LiveNetwork TokensOverviewValue to MerchantsHow it WorksGetting StartedBring Your Own TokenPayment Request APIOverviewSetup and IntegrationReportsOverviewSettlement Batch SummariesCustom ReportsWebhooksWebhooksOverviewCreateParseTesting and Go LiveBraintree ExtendOAuthOverviewConfigurationConnect URLsClient-side Connect FlowAccess TokensShared VaultReferenceForward APIConfigurationTransformationsTokenization SupportHyperwallet IntegrationWorldpayExamplesCryptographyPGP Public KeyAdditional FeaturesOptimized Debit RoutingOverviewTransaction WorkflowEligibilityIntegrationManaging AuthorizationNetwork Response CodesTest and Go LiveCode SamplesSDKGraphQLBraintree Auth (Beta)OverviewConfigurationMerchant Connect FlowServer-side Connect FlowClient-side Connect FlowOAuth FlowWebhooksMerchant APIMulti-currencyTesting and Go LiveBrandingReferencePackage TrackingOverviewClient-sideServer-sideRecurring BillingOverviewPlansCreating SubscriptionsManaging SubscriptionsTesting and Go LiveAsk ChatGPTPHPSDKCurrent Braintree LanguagesJava.NETNode.jsPHPPythonRubyFetch the routed debit network of a transaction For transactions routed on debit networks, “debit network” field will be populated in the response object during the authorization step and, will be available for subsequent actions, such as submit_for_settlement and void. phpCopy$transaction = $result->transaction; $transaction->status ... $transaction->debit_networkTransaction search with debit network Transactions can be retrieved using either the transaction ID or the network used for optimized debit routing during the transaction. phpCopy$collection = $gateway->transaction()->search([ Braintree\\TransactionSearch::debitNetwork()->is('STAR'), ]); foreach ($collection as $transaction) { echo $transaction->amount; }On this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedIntegration GuideTutorial (Preview)Checkout UIsExample IntegrationsBasicsClient AuthorizationSingle-use TokenCustomersPayment MethodsTransactionsPayment Method TypesOverviewACH Direct DebitApple PayCredit CardsGoogle PayPayPalVenmoSecure Remote CommerceTools3D SecurePremium Fraud Management ToolsClient SDKDisputesPayment Request APIReportsWebhooksCheckout UIDrop-in UIHosted FieldsAdditional FeaturesBraintree Auth (Beta)Braintree MarketplaceGrant API (Beta)OAuth (Beta)PayPal HereRecurring BillingAPI ReferenceClient ReferencesServer-side API RequestsServer-side Response ObjectsGeneralBraintreepayments.comStatusAPIIn-PersonSupport ArticlesPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\nExample:\n```php\n$transaction = $result->transaction;\n$transaction->status ... $transaction->debit_network\n```\n\nExample:\n```php\n$collection = $gateway->transaction()->search([\n Braintree\\TransactionSearch::debitNetwork()->is('STAR'),\n]);\n\nforeach ($collection as $transaction) {\n echo $transaction->amount;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.397Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":22,"estimatedTokens":1333}}233{"id":"doc-client_side_connect_flow-4fc725d0","source":"documentation","title":"Client-side Connect Flow","url":"https://developer.paypal.com/braintree/docs/guides/braintree-auth/client-side/ios/v6/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nBasicsClient AuthorizationOverviewTokenization KeyClient TokenPayment Method NoncesTransactionsCustomersPayment MethodsCheckout UIsDrop-in UIOverviewSetup and IntegrationCustomizationHosted FieldsOverviewSetup and IntegrationStylingEventsTroubleshooting and FAQExamplesFastlaneOverviewSetup and IntegrationClient-sideServer-sideTest your IntegrationAppendixAdvanced OptionsStylingBest Practice GuideTroubleshooting And FAQReference TypesFlexible Payment IntegrationPayment Method TypesOverviewACH Direct DebitOverviewConfigurationClient-sideServer-sideTesting and Go LiveInstant VerificationOverviewInstant Verification Client-sideInstant Verification Server-sideTesting Instant VerificationApple PayOverviewConfigurationClient-sideServer-sideTesting and Go LiveCredit CardsOverviewConfigurationClient-sideServer-sideTesting and Go LiveLocal Payment MethodsOverviewConfigurationClient-sideServer-sideTesting and Go LiveBoleto Bancário (Non-Instant)Multibanco (Non-Instant)OXXO (Non-Instant)Trustly (Non-Instant)SwishGoogle PayOverviewConfigurationClient-sideServer-sideTesting and Go LivePayPalOverviewClient-sidePayment FlowOne-time PaymentsRecurring PaymentsVaulted PaymentsCheckout with VaultPay Later OffersMobile CheckoutFeaturesApp SwitchShipping ModuleServer-sideTesting and Go LiveSamsung PayOverviewSEPA Direct DebitOverviewConfigurationClient-sideServer-sideVaultingTesting and Go LiveVenmoOverviewConfigurationClient-sideServer-sideTesting and Go LivePayment OrchestrationOverviewAdyendLocalEBANXFat ZebraFlexFactorFlutterwaveStripeTools3D SecureOverviewOnboardingStep by Step IntegrationApplying 3DS to Transactions and VerificationsMerchant Initiated Authentication (3RI)Rules ManagerAdvanced OptionsAuthentication InsightTestingPremium Fraud Management ToolsOverviewConfigurationClient-sideServer-sideWebhooksTesting and Go LiveData LensOverviewGetting StartedData Schema ReferenceSample QueriesIntegration PatternsBest Practices and SecurityTroubleshootingSupport and ResourcesFX OptimizerOverviewServer-sideTesting and Go LiveClient SDKSetupMigrationDeprecation PolicyDisputesOverviewManagingEvidence RequirementsAutomatingTesting and Go LiveNetwork TokensOverviewValue to MerchantsHow it WorksGetting StartedBring Your Own TokenPayment Request APIOverviewSetup and IntegrationReportsOverviewSettlement Batch SummariesCustom ReportsWebhooksWebhooksOverviewCreateParseTesting and Go LiveBraintree ExtendOAuthOverviewConfigurationConnect URLsClient-side Connect FlowAccess TokensShared VaultReferenceForward APIConfigurationTransformationsTokenization SupportHyperwallet IntegrationWorldpayExamplesCryptographyPGP Public KeyAdditional FeaturesOptimized Debit RoutingOverviewTransaction WorkflowEligibilityIntegrationManaging AuthorizationNetwork Response CodesTest and Go LiveCode SamplesSDKGraphQLBraintree Auth (Beta)OverviewConfigurationMerchant Connect FlowServer-side Connect FlowClient-side Connect FlowOAuth FlowWebhooksMerchant APIMulti-currencyTesting and Go LiveBrandingReferencePackage TrackingOverviewClient-sideServer-sideRecurring BillingOverviewPlansCreating SubscriptionsManaging SubscriptionsTesting and Go LiveAdditional Features/Braintree Auth (Beta)/Client-side Connect FlowAsk ChatGPTClient-side Connect FlowiOS v6Current Braintree SDKsAndroid v5iOS v7JavaScript v3Previous VersionsAndroid v4iOS v6JavaScript v2Availability Braintree Auth is in closed beta. Contact us to express interest. Important The SSL certificates for Braintree Mobile (iOS and Android) SDKs are set to expire on March 30, 2026. This will impact existing versions of the SDK in published versions of your app. To reduce the impact, upgrade the iOS SDK to version 6.17.0+ for the new SSL certifications. If you do not decommission your app versions that include the older SDK versions or force upgrade your app with the updated certificates by the expiration date, 100% of your customer traffic will fail. The following Connect flow will guide merchants through authorization in your iOS app without exposing your merchant taps the Connect with Braintree button in your app Your app sends the merchant to Braintree for authorization using an SFSafariViewController Once the merchant has authorized, Braintree redirects them to the redirect_uri specified by the connect_url Your server performs the OAuth exchange Your server redirects the merchant to a URL that is captured by a Custom URL Scheme in your mobile app ButtonDownload the connect-braintree-ios assets Add the button images as a new image set in your Xcode project's Asset CatalogAdd a button object to your view, using the assets you added as the button's imageCreate an action for your button in your view's controllerSend the merchant to Braintree Import SafariServices in your view's controller and extend SFSafariViewControllerDelegate. Once that's done, create a property that holds SFSafariViewController, which you'll define later. SwiftCopy// ViewController.swift import UIKit import SafariServices class , SFSafariViewControllerDelegate { var ? In the button action you created earlier, instantiate an SFSafariViewController with a connect_url retrieved from your @IBAction func connectAction(sender: UIButton) { self.safariVC = SFSafariViewController(url: URL(string: CONNECT_URL_FROM_SERVER)!) self.safariVC!.delegate = self self.present(self.safariVC!, , ) }Prepare for the merchant's return Now that you have a way of sending the merchant to Braintree, you'll need to make sure they have a way of returning to your app. First, define a global constant at the top level of your view's controller to be used as the event // ViewController.swift extension Notification.Name { static let braintreeConnectedRedirectNotification = Notification.Name(rawValue: \"braintreeConnectedRedirectNotification\") } class , SFSafariViewControllerDelegate { //... } Next, add an observer in the viewDidLoad method of your view's controller to handle the redirect from func viewDidLoad() { super.viewDidLoad() NotificationCenter.default.addObserver(self, the custom URL After performing the OAuth exhange, your server will redirect your merchant back to a custom URL that your app will capture. To do that, we'll need to define URL schemes and define a function in your app's AppDelegate. URL schemes Update your project's Info.plistCFBundleURLTypes property to enable your app to handle custom URL <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleTypeRole</key> <string>Editor</string> <key>CFBundleURLName</key> <string>authredirect</string> <key>CFBundleURLSchemes</key> <array> <string>examplescheme</string> </array> </dict> </array>Application delegate Define a function to handle the custom URL in your AppDelegate that will ensure the URL is from a trusted source and broadcast an event to our // AppDelegate.swift func application(application: UIApplication, openURL , ?, ) -> Bool { NotificationCenter.default.post(name: .braintreeConnectedRedirectNotification, ) return true }Important Your server should not send sensitive information to the client via the custom URL, since multiple iOS apps are able to intercept custom URL schemes. Broadcasting this event will trigger the braintreeLogin callback you defined earlier in your view's controller. This brings the merchant back into your application and completes the authorization flow. On this pageGet help from a humanSubmit a request for help with your PayPal Braintree sandbox or production account.Get HelpGet StartedIntegration GuideTutorial (Preview)Checkout UIsExample IntegrationsBasicsClient AuthorizationSingle-use TokenCustomersPayment MethodsTransactionsPayment Method TypesOverviewACH Direct DebitApple PayCredit CardsGoogle PayPayPalVenmoSecure Remote CommerceTools3D SecurePremium Fraud Management ToolsClient SDKDisputesPayment Request APIReportsWebhooksCheckout UIDrop-in UIHosted FieldsAdditional FeaturesBraintree Auth (Beta)Braintree MarketplaceGrant API (Beta)OAuth (Beta)PayPal HereRecurring BillingAPI ReferenceClient ReferencesServer-side API RequestsServer-side Response ObjectsGeneralBraintreepayments.comStatusAPIIn-PersonSupport ArticlesPrivacy PolicyLegalBraintree is a service of PayPal. © 2026 PayPal\n\nExample:\n```swift\n// ViewController.swift\nimport UIKit\nimport SafariServices\n\nclass ViewController: UIViewController, SFSafariViewControllerDelegate {\n var safariVC: SFSafariViewController?\n```\n\nExample:\n```swift\n@IBAction func connectAction(sender: UIButton) {\n self.safariVC = SFSafariViewController(url: URL(string: CONNECT_URL_FROM_SERVER)!)\n self.safariVC!.delegate = self\n self.present(self.safariVC!, animated: true, completion: nil)\n}\n```\n\nExample:\n```swift\n// ViewController.swift\nextension Notification.Name {\n static let braintreeConnectedRedirectNotification = Notification.Name(rawValue: \"braintreeConnectedRedirectNotification\")\n}\nclass ViewController: UIViewController, SFSafariViewControllerDelegate {\n //...\n}\n```\n\nExample:\n```swift\noverride func viewDidLoad() {\n super.viewDidLoad()\n NotificationCenter.default.addObserver(self,\n selector: #selector(braintreeLogin(notification:)),\n name: .braintreeConnectedRedirectNotification,\n object: nil)\n}\n```\n\nExample:\n```swift\nfunc braintreeLogin(notification: NSNotification) {\n self.safariVC?.dismiss(animated: true, completion: nil)\n // perform any additional actions like transitioning to another view here\n}\n```\n\nExample:\n```xml\n<key>CFBundleURLTypes</key>\n<array>\n <dict>\n <key>CFBundleTypeRole</key>\n <string>Editor</string>\n <key>CFBundleURLName</key>\n <string>authredirect</string>\n <key>CFBundleURLSchemes</key>\n <array>\n <string>examplescheme</string>\n </array>\n </dict>\n</array>\n```\n\nExample:\n```swift\n// AppDelegate.swift\nfunc application(application: UIApplication,\n openURL url: NSURL,\n sourceApplication: String?,\n annotation: AnyObject) -> Bool {\n NotificationCenter.default.post(name: .braintreeConnectedRedirectNotification, object: url)\n return true\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.414Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":7,"totalLines":83,"estimatedTokens":2601}}234{"id":"doc-find-381329bb","source":"documentation","title":"Find","url":"https://developer.paypal.com/braintree/docs/reference/request/address/find/dotnet/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```cs\nAddress address = gateway.Address.Find(\"a_customer_id\", \"an_address_id\");\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.699Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":81}}235{"id":"doc-generate-7616237e","source":"documentation","title":"Generate","url":"https://developer.paypal.com/braintree/docs/reference/request/client-token/generate/dotnet/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```cs\nvar clientToken = gateway.ClientToken.Generate();\n```\n\nExample:\n```cs\n// pass clientToken to your front-end\nvar clientToken = gateway.ClientToken.Generate(\n new ClientTokenRequest { \n CustomerId = aCustomerId \n }\n);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.703Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":18,"estimatedTokens":120}}236{"id":"doc-update-d33a1150","source":"documentation","title":"Update","url":"https://developer.paypal.com/braintree/docs/reference/request/credit-card/update/php/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```php\n$result = $gateway->creditCard()->update($creditCard->token, [\n 'cardholderName' => 'New Holder',\n 'cvv' => '456',\n 'number' => '4111111111111111',\n 'expiration_date' => '06/2022',\n 'billingAddress' => [\n 'region' => 'IL'\n ],\n 'options' => [\n 'verifyCard' => true\n ]\n]);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.715Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":19,"estimatedTokens":140}}237{"id":"doc-create-320076fe","source":"documentation","title":"Create","url":"https://developer.paypal.com/braintree/docs/reference/request/merchant-account/create/ruby/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```ruby\nmerchant_account_params = {\n :individual => {\n :first_name => \"Jane\",\n :last_name => \"Doe\",\n :email => \"jane@14ladders.com\",\n :phone => \"5553334444\",\n :date_of_birth => \"1981-11-19\",\n :ssn => \"456-45-4567\",\n :address => {\n :street_address => \"111 Main St\",\n :locality => \"Chicago\",\n :region => \"IL\",\n :postal_code => \"60622\"\n }\n },\n :business => {\n :legal_name => \"Jane's Ladders\",\n :dba_name => \"Jane's Ladders\",\n :tax_id => \"98-7654321\",\n :address => {\n :street_address => \"111 Main St\",\n :locality => \"Chicago\",\n :region => \"IL\",\n :postal_code => \"60622\"\n }\n },\n :funding => {\n :descriptor => \"Blue Ladders\",\n :destination => Braintree::MerchantAccount::FundingDestination::Bank,\n :email => \"funding@blueladders.com\",\n :mobile_phone => \"5555555555\",\n :account_number => \"1123581321\",\n :routing_number => \"071101307\"\n },\n :tos_accepted => true,\n :master_merchant_account_id => \"14ladders_marketplace\",\n :id => \"blue_ladders_store\"\n}\nresult = gateway.merchant_account.create(merchant_account_params)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.719Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":46,"estimatedTokens":340}}238{"id":"doc-create-d1dbb275","source":"documentation","title":"Create","url":"https://developer.paypal.com/braintree/docs/reference/request/customer/create/php/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'firstName' => 'Mike',\n 'lastName' => 'Jones',\n 'company' => 'Jones Co.',\n 'email' => '[email protected]',\n 'phone' => '281.330.8004',\n 'fax' => '419.555.1235',\n 'website' => 'http://example.com'\n]);\n\n$result->success;\n# true\n\n$result->customer->id;\n# Generated customer id\n```\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'id' => 'customer_123',\n 'firstName' => 'Mike'\n]);\n```\n\nExample:\n```php\n$result = $gateway->customer()->create();\n```\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'firstName' => 'Mike',\n 'lastName' => 'Jones',\n 'company' => 'Jones Co.',\n 'paymentMethodNonce' => nonceFromTheClient\n]);\nif ($result->success) {\n echo($result->customer->id);\n echo($result->customer->paymentMethods[0]->token);\n} else {\n foreach($result->errors->deepAll() AS $error) {\n echo($error->code . \": \" . $error->message . \"\\n\");\n }\n}\n```\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'firstName' => 'Mike',\n 'lastName' => 'Jones',\n 'company' => 'Jones Co.',\n 'creditCard' => ['token' => 'a_token'],\n 'paymentMethodNonce' => nonceFromTheClient\n]);\n```\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'paymentMethodNonce' => nonceFromTheClient,\n 'creditCard' => [\n 'billingAddress' => [\n 'firstName' => 'Jen',\n 'lastName' => 'Smith',\n 'company' => 'Braintree',\n 'streetAddress' => '123 Address',\n 'locality' => 'City',\n 'region' => 'State',\n 'postalCode' => '12345'\n ]\n ]\n]);\n```\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'paymentMethodNonce' => nonceFromTheClient,\n 'firstName' => 'Fred',\n 'lastName' => 'Jones',\n 'creditCard' => [\n 'options' => [\n 'verifyCard' => true\n ]\n ]\n]);\n```\n\nExample:\n```php\n$result = $gateway->customer()->create([\n 'firstName' => 'Bob',\n 'lastName' => 'Smith',\n 'customFields' => [\n 'custom_field_one' => 'custom value',\n 'custom_field_two' => 'another custom value'\n ]\n]);\n\n$result->customer->customFields['custom_field_one']\n# 'custom value'\n\n$result->customer->customFields['custom_field_two']\n# 'another custom value'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.725Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":114,"estimatedTokens":637}}239{"id":"doc-create-c02a48ff","source":"documentation","title":"Create","url":"https://developer.paypal.com/braintree/docs/reference/request/customer/create/ruby/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :first_name => \"Jen\",\n :last_name => \"Smith\",\n :company => \"Braintree\",\n :email => \"jen@example.com\",\n :phone => \"312.555.1234\",\n :fax => \"614.555.5678\",\n :website => \"www.example.com\"\n)\nif result.success?\n puts result.customer.id\nelse\n p result.errors\nend\n```\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :id => \"customer_123\",\n :first_name => \"Katrina\"\n)\n```\n\nExample:\n```ruby\nresult = gateway.customer.create\n```\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :first_name => \"Charity\",\n :last_name => \"Smith\",\n :payment_method_nonce => nonce_from_the_client\n)\nif result.success?\n puts result.customer.id\n puts result.customer.payment_methods[0].token\nelse\n p result.errors\nend\n```\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :credit_card => {\n :token => \"credit_card_123\"\n },\n :payment_method_nonce => nonce_from_the_client\n)\n```\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :payment_method_nonce => nonce_from_the_client,\n :credit_card => {\n :billing_address => {\n :first_name => \"Jen\",\n :last_name => \"Smith\",\n :company => \"Braintree\",\n :street_address => \"123 Address\",\n :locality => \"City\",\n :region => \"State\",\n :postal_code => \"12345\"\n }\n }\n)\n```\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :payment_method_nonce => nonce_from_the_client,\n :first_name => \"Fred\",\n :last_name => \"Jones\",\n :credit_card => {\n :options => {\n :verify_card => true\n }\n }\n)\n```\n\nExample:\n```ruby\nresult = gateway.customer.create(\n :first_name => \"Bob\",\n :last_name => \"Smith\",\n :custom_fields => {\n :custom_field_one => \"value one\",\n :custom_field_two => \"value two\"\n }\n)\n\nif result.success?\n result.customer.custom_fields\n #=> {:custom_field_one => \"value one\", :custom_field_two => \"value two\"}\nend\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.727Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":108,"estimatedTokens":527}}240{"id":"doc-create-1b7d5db0","source":"documentation","title":"Create","url":"https://developer.paypal.com/braintree/docs/reference/request/customer/create/node/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```javascript\ngateway.customer.create({\n firstName: \"Jen\",\n lastName: \"Smith\",\n company: \"Braintree\",\n email: \"[email protected]\",\n phone: \"312.555.1234\",\n fax: \"614.555.5678\",\n website: \"www.example.com\"\n}, (err, result) => {\n result.success;\n // true\n\n result.customer.id;\n // e.g. 494019\n});\n```\n\nExample:\n```javascript\ngateway.customer.create({\n id: \"customer_123\",\n firstName: \"Katrina\"\n}, (err, result) => {\n});\n```\n\nExample:\n```javascript\ngateway.customer.create({\n creditCard: {\n token: \"creditCard123\",\n },\n paymentMethodNonce: nonceFromTheClient\n}, (err, result) => {\n});\n```\n\nExample:\n```javascript\ngateway.customer.create({\n paymentMethodNonce: nonceFromTheClient,\n creditCard: {\n billingAddress: {\n firstName: \"Jen\",\n lastName: \"Smith\",\n company: \"Braintree\",\n streetAddress: \"123 Address\",\n locality: \"City\",\n region: \"State\",\n postalCode: \"12345\"\n }\n }\n}, (err, result) => {\n});\n```\n\nExample:\n```javascript\ngateway.customer.create({\n paymentMethodNonce: nonceFromTheClient,\n firstName: \"Fred\",\n lastName: \"Jones\",\n creditCard: {\n options: {\n verifyCard: true\n }\n }\n}, (err, result) => {\n});\n```\n\nExample:\n```javascript\ngateway.customer.create({\n firstName: \"Bob\",\n lastName: \"Smith\",\n customFields: {\n customFieldOne: \"value one\",\n customFieldTwo: \"value two\"\n }\n}, (err, result) => {\n result.customer.customFields[\"customFieldOne\"]\n // value one\n\n result.customer.customFields[\"customFieldTwo\"]\n // value two\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.731Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":94,"estimatedTokens":442}}241{"id":"doc-create-561bc7af","source":"documentation","title":"Create","url":"https://developer.paypal.com/braintree/docs/reference/request/credit-card/create/node/","text":"Braintree a PayPal ServiceSDK Docs SDK DocsAPI & In-Person DocsSupport ArticlesSearchGet HelpContact SalesCreate AccountLoginProduction Control PanelLoginBecome a MerchantContact SalesAboutGet StartedGuidesReference\n\nExample:\n```javascript\nlet creditCardParams = {\n customerId,\n number: '4111111111111111',\n expirationDate: '06/2022',\n cvv: '100'\n};\n\ngateway.creditCard.create(creditCardParams, (err, response) => {\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:16:46.735Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":16,"estimatedTokens":113}}242{"id":"doc-stripe_database_stripe_documentation-53343b17","source":"documentation","title":"Stripe Database | Stripe Documentation","url":"https://docs.stripe.com/data/database","text":"Example:\n```text\npsql \"postgres://{id}.db.stripe.com/{id}\"\nselect * from customers;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.128Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":7,"estimatedTokens":26}}243{"id":"doc-stripe_for_visual_studio_code_stripe_documentati-6fa8fcbe","source":"documentation","title":"Stripe for Visual Studio Code | Stripe Documentation","url":"https://docs.stripe.com/stripe-vscode","text":"Example:\n```text\n{\n \"version\": \"0.2.0\",\n \"configurations\": [\n {\n \"name\": \"Stripe: Webhooks listen\",\n \"type\": \"stripe\",\n \"request\": \"launch\",\n \"command\": \"listen\",\n \"forwardTo\": \"http://localhost:3000\",\n \"forwardConnectTo\": \"http://localhost:3000\",\n \"events\": [\"payment_intent.succeeded\", \"payment_intent.canceled\"],\n \"skipVerify\": true\n }\n ]\n}\n```\n\nExample:\n```text\n{\n \"version\": \"0.2.0\",\n \"configurations\": [\n {\n \"name\": \"Stripe: Webhooks listen\",\n \"type\": \"stripe\",\n \"request\": \"launch\",\n \"command\": \"listen\",\n \"forwardTo\": \"http://localhost:3000\",\n \"forwardConnectTo\": \"http://localhost:3000\",\n \"events\": [\"payment_intent.succeeded\", \"payment_intent.canceled\"],\n \"skipVerify\": true\n },\n {\n \"type\": \"node\",\n \"request\": \"launch\",\n \"name\": \"Node: Launch Program\",\n \"program\": \"${workspaceFolder}/examples/standalone.js\",\n \"skipFiles\": [\"<node_internals>/**\"]\n }\n ],\n \"compounds\": [\n {\n \"name\": \"Launch: Stripe + API\",\n \"configurations\": [\"Node: Launch Program\", \"Stripe: Webhooks listen\"]\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.164Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":52,"estimatedTokens":291}}244{"id":"doc-unpivot_statement_duckdb-227cfca6","source":"documentation","title":"UNPIVOT Statement – DuckDB","url":"https://duckdb.org/docs/current/sql/statements/unpivot","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2 1.1 1.0 0.10\n\nExample:\n```text\nUNPIVOT dataset\nON column(s)\nINTO\n NAME name_column_name\n VALUE value_column_name(s)\nORDER BY column(s)_with_order_direction(s)\nLIMIT number_of_rows;\n```\n\nExample:\n```text\nCREATE OR REPLACE TABLE monthly_sales\n (empid INTEGER, dept TEXT, Jan INTEGER, Feb INTEGER, Mar INTEGER, Apr INTEGER, May INTEGER, Jun INTEGER);\nINSERT INTO monthly_sales VALUES\n (1, 'electronics', 1, 2, 3, 4, 5, 6),\n (2, 'clothes', 10, 20, 30, 40, 50, 60),\n (3, 'cars', 100, 200, 300, 400, 500, 600);\n```\n\nExample:\n```text\nFROM monthly_sales;\n```\n\nExample:\n```text\nUNPIVOT monthly_sales\nON jan, feb, mar, apr, may, jun\nINTO\n NAME month\n VALUE sales;\n```\n\nExample:\n```text\nUNPIVOT monthly_sales\nON COLUMNS(* EXCLUDE (empid, dept))\nINTO\n NAME month\n VALUE sales;\n```\n\nExample:\n```text\nUNPIVOT monthly_sales\n ON (jan, feb, mar) AS q1, (apr, may, jun) AS q2\n INTO\n NAME quarter\n VALUE month_1_sales, month_2_sales, month_3_sales;\n```\n\nExample:\n```text\nWITH unpivot_alias AS (\n UNPIVOT monthly_sales\n ON COLUMNS(* EXCLUDE (empid, dept))\n INTO\n NAME month\n VALUE sales\n)\nSELECT * FROM unpivot_alias;\n```\n\nExample:\n```text\nSELECT *\nFROM (\n UNPIVOT monthly_sales\n ON COLUMNS(* EXCLUDE (empid, dept))\n INTO\n NAME month\n VALUE sales\n) unpivot_alias;\n```\n\nExample:\n```text\nUNPIVOT\n (SELECT 42 AS col1, 'woot' AS col2)\n ON\n (col1 * 2)::VARCHAR,\n col2;\n```\n\nExample:\n```text\nFROM [dataset]\nUNPIVOT [INCLUDE NULLS] (\n [value-column-name(s)]\n FOR [name-column-name] IN [column(s)]\n);\n```\n\nExample:\n```text\nFROM monthly_sales UNPIVOT (\n sales\n FOR month IN (jan, feb, mar, apr, may, jun)\n);\n```\n\nExample:\n```text\nFROM monthly_sales UNPIVOT (\n sales\n FOR month IN (columns(* EXCLUDE (empid, dept)))\n);\n```\n\nExample:\n```text\nFROM monthly_sales\nUNPIVOT (\n (month_1_sales, month_2_sales, month_3_sales)\n FOR quarter IN (\n (jan, feb, mar) AS q1,\n (apr, may, jun) AS q2\n )\n);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:30.903Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":13,"totalLines":126,"estimatedTokens":520}}245{"id":"doc-pull_from_a_remote_repository_gitlab_docs-cf47db62","source":"documentation","title":"Pull from a remote repository | GitLab Docs","url":"https://docs.gitlab.com/user/project/repository/mirror/pull/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeGetting startedRepositoriesProtect your repositoryBranchesCompare revisionsCommitsForksFile managementFile tree browserRepository sizeTagsCode OwnersMirroringPull mirroringPush mirroringBidirectional mirroringTroubleshootingChangelogsSnippetsPush rulesSigned commitsManaging monoreposMLOpsMerge requestsRemote developmentUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Manage your code /Repositories /Mirroring /Pull mirroringHelp us learn about your current experience with the documentation. Take the survey.Pull from a remote , , GitLab Self-Managed, GitLab DedicatedHistoryMoved to GitLab Premium in 13.9.You can use the GitLab interface to browse the content and activity of a repository, even if it isn’t hosted on GitLab. Create a pull mirror to copy the branches, tags, and commits from an upstream repository to yours.Unlike push mirrors, pull mirrors retrieve changes from an upstream (remote) repository on a scheduled basis. To prevent the mirror from diverging from the upstream repository, don’t push commits directly to the downstream mirror. Push commits to the upstream repository instead. Changes in the remote repository are pulled into the GitLab , 30 minutes after a previous pull. This cannot be disabled.When an administrator force-updates the mirror.When an API call triggers an update.UI and API updates are subject to default pull mirroring intervals of 5 minutes. This interval can be configured on GitLab Self-Managed instances.By default, if any branch or tag on the downstream pull mirror diverges from the local repository, GitLab stops updating the branch. This prevents data loss. Deleted branches and tags in the upstream repository are not reflected in the downstream repository.Items deleted from the downstream pull mirror repository, but still in the upstream repository, are restored upon the next pull. For branch deleted only in the mirrored repository reappears after the next pull.How pull mirroring worksAfter you configure a GitLab repository as a pull adds the repository to a queue.Once per minute, a Sidekiq cron job schedules repository mirrors to update, based capacity, determined by Sidekiq settings. For GitLab.com, read GitLab.com Sidekiq settings.How many mirrors are already in the queue and due for updates. Being due depends on when the repository mirror was last updated, and how many times updates have been retried.Sidekiq becomes available to process updates, mirrors are updated. If the update : An update is enqueued again with at least a 30 minute wait.Fails: The update is attempted again later. After 14 failures, a mirror is marked as a hard failure and is no longer enqueued for updates. A branch diverging from its upstream counterpart can cause failures. To prevent branches from diverging, configure overwrite diverged branches when you create your mirror.Configure pull your remote repository is on GitHub and you have two-factor authentication (2FA) configured, create a personal access token for GitHub with the repo scope. If 2FA is enabled, this personal access token serves as your GitHub password.GitLab Silent Mode is not enabled.The upstream repository and your GitLab repository use the same object format. You cannot mirror between SHA-1 and SHA-256 repositories.In the top bar, select Search or go to and find your project.In the left sidebar, select Settings > Repository.Expand Mirroring repositories.Enter the Git repository URL.To mirror the gitlab repository, use gitlab.com:gitlab-org/gitlab.git or https://gitlab.com/gitlab-org/gitlab.git.In Mirror direction, select Pull.In Authentication method, select your authentication method. For more information, see authentication methods for mirrors.Select any of the options you diverged branchesTrigger pipelines for mirror updatesOnly mirror protected branchesTo save the configuration, select Mirror repository.Overwrite diverged branchesHistoryMoved to GitLab Premium in 13.9.To always update your local branches with remote versions, even if they have diverged from the remote, select Overwrite diverged branches when you create a mirror.For mirrored branches, enabling this option results in the loss of local changes.Trigger pipelines for mirror updatesHistoryMoved to GitLab Premium in 13.9.You can configure your mirror to automatically trigger pipelines when the remote repository updates branches or tags. Before you enable this your CI runners can handle the additional load from the remote repository activity.Consider the security risks, because the pipelines use the credentials of the user that set up the pull mirroring. For example, a malicious maintainer an update to the remote repository that attempts to fetch stored CI/CD variable values when the pipeline runs.Could push commits to your mirrored project if the Allow Git push requests to the repository setting is enabled.Only enable this feature for your own projects or those with trusted maintainers.Pull mirroring with SSO enforcementWhen SSO enforcement is enabled for your group, the user who created the mirror must maintain an active SSO session or the mirror fails.To configure mirroring without SSO session dependency, you can use the Pull mirroring API with a project access token, group access token, or personal access token for service accounts.Trigger an update by using the APIHistorymoved to GitLab Premium in 13.9.Pull mirroring uses polling to detect new branches and commits added upstream, often minutes afterwards. You can notify GitLab using an API call, but the minimum interval for pull mirroring limits is still enforced.For more information, see start the pull mirroring process for a project.Fix hard failures when mirroringHistoryMoved to GitLab Premium in 13.9.After 14 consecutive unsuccessful retries, the mirroring process is marked as a hard failure and mirroring attempts stop. This failure is visible in either ’s main dashboard.Pull mirror settings page.To resume project mirroring, force an update.If multiple projects are affected by this problem, such as after a long network or server outage, you can use the Rails console to identify and update all affected projects with this do |p| if p.import_state && p.import_state.retry_count >= 14 puts \"Resetting mirroring operation for #{p.full_path}\" p.import_state.reset_retry_count p.import_state.set_next_execution_to_now(prioritized: true) p.import_state.save! end endRelated topicsTroubleshooting for repository mirroring.Pull mirroring intervalsProject pull mirroring APIHow pull mirroring worksConfigure pull mirroringOverwrite diverged branchesTrigger pipelines for mirror updatesPull mirroring with SSO enforcementTrigger an update by using the APIFix hard failures when mirroringRelated topics\n\nExample:\n```ruby\nProject.find_each do |p|\n if p.import_state && p.import_state.retry_count >= 14\n puts \"Resetting mirroring operation for #{p.full_path}\"\n p.import_state.reset_retry_count\n p.import_state.set_next_execution_to_now(prioritized: true)\n p.import_state.save!\n end\nend\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.618Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":15,"estimatedTokens":1840}}246{"id":"doc-gitlab_application_limits_gitlab_docs-c49d6e15","source":"documentation","title":"GitLab application limits | GitLab Docs","url":"https://docs.gitlab.com/administration/instance_limits/","text":"Example:\n```plaintext\n'/users/password',\n'/users/sign_in',\n'/api/#{API::API.version}/session.json',\n'/api/#{API::API.version}/session',\n'/users',\n'/users/confirmation',\n'/unsubscribes/',\n'/import/github/personal_access_token',\n'/admin/session'\n```\n\nExample:\n```plaintext\n'/users/sign_in_path'\n```\n\nExample:\n```ruby\n# If limits don't exist for the default plan, you can create one with:\n# Plan.default.create_limits!\n\nPlan.default.actual_limits.update!(web_hook_calls: 10)\n```\n\nExample:\n```plaintext\nThis endpoint has been requested too many times. Try again later.\n```\n\nExample:\n```ruby\nApplicationSetting.update(max_http_decompressed_size: 50)\n```\n\nExample:\n```ruby\nApplicationSetting.update(max_http_response_size_limit: 60)\n```\n\nExample:\n```ruby\nApplicationSetting.update(max_http_response_json_structural_chars: 500000)\n```\n\nExample:\n```ruby\nApplicationSetting.update(max_http_response_json_depth: 100)\n```\n\nExample:\n```ruby\nApplicationSetting.update(max_http_response_xml_structural_chars: 500000)\n```\n\nExample:\n```ruby\nApplicationSetting.update(max_http_response_csv_structural_chars: 500000)\n```\n\nExample:\n```shell\nsudo -e /etc/gitlab/gitlab.rb\n```\n\nExample:\n```ruby\ngitlab_rails['env'] = { 'GITLAB_JSON_GLOBAL_VALIDATION_MODE' => 'disabled' }\n```\n\nExample:\n```shell\nsudo gitlab-ctl reconfigure\n```\n\nExample:\n```yaml\ngitlab:\n webservice:\n extraEnv:\n GITLAB_JSON_GLOBAL_VALIDATION_MODE: \"disabled\"\n```\n\nExample:\n```ruby\n# If limits don't exist for the default plan, you can create one with:\n# Plan.default.create_limits!\n\n# For project webhooks\nPlan.default.actual_limits.update!(project_hooks: 200)\n\n# For group webhooks\nPlan.default.actual_limits.update!(group_hooks: 100)\n```\n\nExample:\n```ruby\ngitlab_rails['webhook_timeout'] = 60\n```\n\nExample:\n```shell\ngitlab-ctl reconfigure\ngitlab-ctl restart\n```\n\nExample:\n```ruby\n# If limits don't exist for the default plan, you can create one with:\n# Plan.default.create_limits!\n\nPlan.default.actual_limits.update!(import_placeholder_user_limit_tier_1: 200)\n```\n\nExample:\n```ruby\n# If limits don't exist for the default plan, you can create one with:\n# Plan.default.create_limits!\n\nPlan.default.actual_limits.update!(pull_mirror_interval_seconds: 200)\n```\n\nExample:\n```ruby\n# If limits don't exist for the default plan, you can create one with:\n# Plan.default.create_limits!\n\nPlan.default.actual_limits.update!(offset_pagination_limit: 10000)\n```\n\nExample:\n```ruby\nPlan.default.actual_limits.update!(pages_file_entries: 100)\n```\n\nExample:\n```ruby\nApplicationSetting.update(math_rendering_limits_enabled: false)\n```\n\nExample:\n```ruby\n# File size limit is stored in bytes\n\n# For Cargo Packages\nPlan.default.actual_limits.update!(cargo_max_file_size: 100.megabytes)\n\n# For Conan Packages\nPlan.default.actual_limits.update!(conan_max_file_size: 100.megabytes)\n\n# For npm Packages\nPlan.default.actual_limits.update!(npm_max_file_size: 100.megabytes)\n\n# For NuGet Packages\nPlan.default.actual_limits.update!(nuget_max_file_size: 100.megabytes)\n\n# For Maven Packages\nPlan.default.actual_limits.update!(maven_max_file_size: 100.megabytes)\n\n# For PyPI Packages\nPlan.default.actual_limits.update!(pypi_max_file_size: 100.megabytes)\n\n# For Debian Packages\nPlan.default.actual_limits.update!(debian_max_file_size: 100.megabytes)\n\n# For Helm Charts\nPlan.default.actual_limits.update!(helm_max_file_size: 100.megabytes)\n\n# For Generic Packages\nPlan.default.actual_limits.update!(generic_packages_max_file_size: 100.megabytes)\n```\n\nExample:\n```ruby\nPlan.default.actual_limits\n```\n\nExample:\n```ruby\nid: 1,\nplan_id: 1,\nci_pipeline_size: 0,\nci_active_jobs: 0,\nproject_hooks: 100,\ngroup_hooks: 50,\nci_project_subscriptions: 3,\nci_pipeline_schedules: 10,\noffset_pagination_limit: 50000,\nci_instance_level_variables: \"[FILTERED]\",\nstorage_size_limit: 0,\nci_max_artifact_size_lsif: 200,\nci_max_artifact_size_archive: 0,\nci_max_artifact_size_metadata: 0,\nci_max_artifact_size_trace: \"[FILTERED]\",\nci_max_artifact_size_junit: 0,\nci_max_artifact_size_sast: 0,\nci_max_artifact_size_dependency_scanning: 350,\nci_max_artifact_size_container_scanning: 150,\nci_max_artifact_size_dast: 0,\nci_max_artifact_size_codequality: 0,\nci_max_artifact_size_license_management: 0,\nci_max_artifact_size_license_scanning: 100,\nci_max_artifact_size_performance: 0,\nci_max_artifact_size_metrics: 0,\nci_max_artifact_size_metrics_referee: 0,\nci_max_artifact_size_network_referee: 0,\nci_max_artifact_size_dotenv: 0,\nci_max_artifact_size_cobertura: 0,\nci_max_artifact_size_terraform: 5,\nci_max_artifact_size_accessibility: 0,\nci_max_artifact_size_cluster_applications: 0,\nci_max_artifact_size_secret_detection: \"[FILTERED]\",\nci_max_artifact_size_requirements: 0,\nci_max_artifact_size_coverage_fuzzing: 0,\nci_max_artifact_size_browser_performance: 0,\nci_max_artifact_size_load_performance: 0,\nci_needs_size_limit: 2,\ncargo_max_file_size: 5368709120,\nconan_max_file_size: 3221225472,\nmaven_max_file_size: 3221225472,\nnpm_max_file_size: 524288000,\nnuget_max_file_size: 524288000,\npypi_max_file_size: 3221225472,\ngeneric_packages_max_file_size: 5368709120,\ngolang_max_file_size: 104857600,\ndebian_max_file_size: 3221225472,\nproject_feature_flags: 200,\nci_max_artifact_size_api_fuzzing: 0,\nci_pipeline_deployments: 500,\npull_mirror_interval_seconds: 300,\ndaily_invites: 0,\nrubygems_max_file_size: 3221225472,\nterraform_module_max_file_size: 1073741824,\nhelm_max_file_size: 5242880,\nci_registered_group_runners: 1000,\nci_registered_project_runners: 1000,\nci_daily_pipeline_schedule_triggers: 0,\nci_max_artifact_size_cluster_image_scanning: 0,\nci_jobs_trace_size_limit: \"[FILTERED]\",\npages_file_entries: 200000,\ndast_profile_schedules: 1,\nexternal_audit_event_destinations: 5,\ndotenv_variables: \"[FILTERED]\",\ndotenv_size: 5120,\npipeline_triggers: 25000,\nproject_ci_secure_files: 100,\nrepository_size: 0,\nsecurity_policy_scan_execution_schedules: 0,\nweb_hook_calls_mid: 0,\nweb_hook_calls_low: 0,\nproject_ci_variables: \"[FILTERED]\",\ngroup_ci_variables: \"[FILTERED]\",\nci_max_artifact_size_cyclonedx: 1,\nrpm_max_file_size: 5368709120,\npipeline_hierarchy_size: 1000,\nci_max_artifact_size_requirements_v2: 0,\nenforcement_limit: 0,\nnotification_limit: 0,\ndashboard_limit_enabled_at: nil,\nweb_hook_calls: 0,\nproject_access_token_limit: 0,\ngoogle_cloud_logging_configurations: 5,\nml_model_max_file_size: 10737418240,\nlimits_history: {},\naudit_events_amazon_s3_configurations: 5\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.653Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":25,"totalLines":269,"estimatedTokens":1597}}247{"id":"doc-working_with_the_bundled_pgbouncer_service_gitla-f698a14e","source":"documentation","title":"Working with the bundled PgBouncer service | GitLab Docs","url":"https://docs.gitlab.com/administration/postgresql/pgbouncer/","text":"Getting startedConfigure GitLabAdmin areaGitLab Relay (KAS)Application cache intervalCellsCI/CDClickHouse for analyticsConsulCronCustom HTML header tagsEnvironment variablesFile hooksGeoDisaster recovery (Geo)Geo sitesGit LFS administrationGit protocol v2Health checkHost the product documentationIncoming emailInstance limitsInstance reviewInvalidate Markdown cacheIssue closing patternLabelsLoad balancerLog systemMerge request approvalsMerge request diffs storageNFSObject storagePackagesPostfixPostgreSQLPostgreSQL extensionsDatabase load balancingExternal database serviceMonitor external databasesMove instancesPgBouncerReplication and failoverTroubleshootingStandalone packaged databaseTune PostgreSQLUpgrade external databaseUpgrading operating systems for PostgreSQLRedisReply by emailRepository storageSecrets ManagerServer hooksSidekiqSnippetsS/MIME signingStatic objects external storageTerraform stateTerraform state settingsTimezoneUploadsWeb terminalsWhat's newWikisConfigure GitLab DuoUpdate your settingsEnable features behind feature flagsMaintain GitLabMonitor GitLabSecure GitLabAdminister usersAdminister GitLab DedicatedAdminister GitLab RunnerGitLab Docs /Administer /Configure GitLab /PostgreSQL /PgBouncerHelp us learn about your current experience with the documentation. Take the survey.Working with the bundled PgBouncer , Premium, Self-ManagedPgBouncer is bundled in the gitlab-ee package, but is free to use. For support, you need a Premium subscription.PgBouncer is used to seamlessly migrate database connections between servers in a failover scenario. Additionally, it can be used in a non-fault-tolerant setup to pool connections, speeding up response time while reducing resource usage.GitLab Premium includes a bundled version of PgBouncer that can be managed through /etc/gitlab/gitlab.rb.PgBouncer as part of a fault-tolerant GitLab installationThis content has been moved to a new location.PgBouncer as part of a non-fault-tolerant GitLab installationGenerate PGBOUNCER_USER_PASSWORD_HASH with the command gitlab-ctl pg-password-md5 pgbouncerGenerate SQL_USER_PASSWORD_HASH with the command gitlab-ctl pg-password-md5 gitlab. Enter the plaintext SQL_USER_PASSWORD later.On your database node, ensure the following is set in your /etc/gitlab/gitlab.rbpostgresql['pgbouncer_user_password'] = 'PGBOUNCER_USER_PASSWORD_HASH' postgresql['sql_user_password'] = 'SQL_USER_PASSWORD_HASH' postgresql['listen_address'] = 'XX.XX.XX.Y' # Where XX.XX.XX.Y is the ip address on the node postgresql should listen on postgresql['md5_auth_cidr_addresses'] = %w(AA.AA.AA.B/32) # Where AA.AA.AA.B is the IP address of the pgbouncer nodeRun gitlab-ctl reconfigureIf the database was already running, it needs to be restarted after reconfigure by running gitlab-ctl restart postgresql.On the node you are running PgBouncer on, make sure the following is set in /etc/gitlab/gitlab.rbpgbouncer['enable'] = true pgbouncer['databases'] = { gitlabhq_production: { host: 'DATABASE_HOST', user: 'pgbouncer', password: 'PGBOUNCER_USER_PASSWORD_HASH' } }You can pass additional configuration parameters per database, for ['databases'] = { gitlabhq_production: { ... pool_mode: 'transaction' } }Use these parameters with caution. For the complete list of parameters refer to the PgBouncer documentation.Run gitlab-ctl reconfigureOn the node running Puma, make sure the following is set in /etc/gitlab/gitlab.rbgitlab_rails['db_host'] = 'PGBOUNCER_HOST' gitlab_rails['db_port'] = '6432' gitlab_rails['db_password'] = 'SQL_USER_PASSWORD'Run gitlab-ctl reconfigureAt this point, your instance should connect to the database through PgBouncer. If you are having issues, see the Troubleshooting sectionBackupsDo not back up or restore GitLab through a PgBouncer causes a GitLab outage.Read more about this and how to reconfigure backups.Enable MonitoringIf you enable Monitoring, it must be enabled on all PgBouncer servers.Create/edit /etc/gitlab/gitlab.rb and add the following configuration:# Enable service discovery for Prometheus consul['enable'] = true consul['monitoring_service_discovery'] = true # Replace placeholders # Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z # with the addresses of the Consul server nodes consul['configuration'] = { retry_join: %w(Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z), } # Set the network addresses that the exporters will listen on node_exporter['listen_address'] = '0.0.0.0:9100' pgbouncer_exporter['listen_address'] = '0.0.0.0:9188'Run sudo gitlab-ctl reconfigure to compile the configuration.Administrative consoleIn Linux package installations, a command is provided to automatically connect to the PgBouncer administrative console. See the PgBouncer documentation for detailed instructions on how to interact with the console.To start a session run the following and provide the password for the pgbouncer gitlab-ctl pgb-consoleTo get some basic information about the =# show databases; show clients; show servers; name | host | port | database | force_user | pool_size | reserve_pool | pool_mode | max_connections | current_connections ---------------------+-----------+------+---------------------+------------+-----------+--------------+-----------+-----------------+--------------------- gitlabhq_production | 127.0.0.1 | 5432 | gitlabhq_production | | 100 | 5 | | 0 | 1 pgbouncer | | 6432 | pgbouncer | pgbouncer | 2 | 0 | statement | 0 | 0 (2 rows) type | user | database | state | addr | port | local_addr | local_port | connect_time | request_time | ptr | link | remote_pid | tls ------+-----------+---------------------+--------+-----------+-------+------------+------------+---------------------+---------------------+-----------+------ +------------+----- C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44590 | 127.0.0.1 | 6432 | 2018-04-24 :10 | 2018-04-24 :10 | 0x12444c0 | | 0 | C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44592 | 127.0.0.1 | 6432 | 2018-04-24 :10 | 2018-04-24 :10 | 0x12447c0 | | 0 | C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44594 | 127.0.0.1 | 6432 | 2018-04-24 :10 | 2018-04-24 :10 | 0x1244940 | | 0 | C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44706 | 127.0.0.1 | 6432 | 2018-04-24 :22 | 2018-04-24 :31 | 0x1244ac0 | | 0 | C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44708 | 127.0.0.1 | 6432 | 2018-04-24 :22 | 2018-04-24 :15 | 0x1244c40 | | 0 | C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44794 | 127.0.0.1 | 6432 | 2018-04-24 :15 | 2018-04-24 :15 | 0x1244dc0 | | 0 | C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44798 | 127.0.0.1 | 6432 | 2018-04-24 :15 | 2018-04-24 :31 | 0x1244f40 | | 0 | C | pgbouncer | pgbouncer | active | 127.0.0.1 | 44660 | 127.0.0.1 | 6432 | 2018-04-24 :51 | 2018-04-24 :12 | 0x1244640 | | 0 | (8 rows) type | user | database | state | addr | port | local_addr | local_port | connect_time | request_time | ptr | link | rem ote_pid | tls ------+--------+---------------------+-------+-----------+------+------------+------------+---------------------+---------------------+-----------+------+---- --------+----- S | gitlab | gitlabhq_production | idle | 127.0.0.1 | 5432 | 127.0.0.1 | 35646 | 2018-04-24 :15 | 2018-04-24 :10 | 0x124dca0 | | 19980 | (1 row)Procedure for bypassing PgBouncerLinux package installationsSome database changes have to be done directly, and not through PgBouncer.The main affected tasks are database restores and GitLab upgrades with database migrations.To find the primary node, run the following on a database gitlab-ctl patroni membersEdit /etc/gitlab/gitlab.rb on the application node you’re performing the task on, and update gitlab_rails['db_host'] and gitlab_rails['db_port'] with the database primary’s host and port.Run gitlab-ctl reconfigureAfter you’ve performed the tasks or procedure, switch back to using back /etc/gitlab/gitlab.rb to point to PgBouncer.Run gitlab-ctl reconfigureHelm chart installationsHigh-availability deployments also need to bypass PgBouncer for the same reasons as Linux package-based ones. For Helm chart backup and restore tasks are performed by the toolbox container.Migration tasks are performed by the migrations container.You should override the PostgreSQL port on each subchart, so these tasks can execute and connect to PostgreSQL tuningPgBouncer’s default settings suit the majority of installations. In specific cases you may want to change the performance-specific and resource-specific variables to either increase possible throughput or to limit resource utilization that could cause memory exhaustion on the database.You can find the parameters and respective documentation on the official PgBouncer documentation. Listed below are the most relevant ones and their defaults on a Linux package ['max_client_conn'] (default: 2048, depends on server file descriptor limits) This is the “frontend” pool in from Rails to PgBouncer.pgbouncer['default_pool_size'] (default: 100) This is the “backend” pool in from PgBouncer to the database.For detailed guidance on sizing max_client_conn and default_pool_size for your topology, see With PgBouncer.The pgbouncer['max_client_conn'] is the hard limit of connections PgBouncer can accept. It’s unlikely you need to change this. If you are hitting that limit, you may want to consider adding additional PgBouncers with an internal Load Balancer.When setting up the limits for a PgBouncer that points to the Geo Tracking Database, you can likely ignore puma from the equation, as it is only accessing that database sporadically.Pooling modeGitLab requires PgBouncer to run in transaction pooling mode (pool_mode = transaction). In this mode, a backend connection is held only for the duration of a single transaction and then returned to the pool. This allows many frontend connections to share a much smaller set of backend connections, which is the basis for the max_connections reduction described in With PgBouncer.In session mode, each frontend connection holds a backend connection for its entire lifetime. The backend pool would not be smaller than the frontend demand, so the max_connections reduction would not occur.TroubleshootingIn case you are experiencing any issues connecting through PgBouncer, the first place to check is always the gitlab-ctl tail pgbouncerAdditionally, you can check the output from show databases in the administrative console. In the output, you would expect to see values in the host field for the gitlabhq_production database. Additionally, current_connections should be greater than 1.Message: CIDR mask in addressSee the suggested fix in Geo documentation.Message: IP mask \"md5\": Name or service not knownSee the suggested fix in Geo documentation.PgBouncer as part of a fault-tolerant GitLab installationPgBouncer as part of a non-fault-tolerant GitLab installationBackupsEnable MonitoringAdministrative consoleProcedure for bypassing PgBouncerLinux package installationsHelm chart installationsFine tuningPooling : invalid CIDR mask in : invalid IP mask \"md5\": Name or service not known\n\nExample:\n```ruby\npostgresql['pgbouncer_user_password'] = 'PGBOUNCER_USER_PASSWORD_HASH'\npostgresql['sql_user_password'] = 'SQL_USER_PASSWORD_HASH'\npostgresql['listen_address'] = 'XX.XX.XX.Y' # Where XX.XX.XX.Y is the ip address on the node postgresql should listen on\npostgresql['md5_auth_cidr_addresses'] = %w(AA.AA.AA.B/32) # Where AA.AA.AA.B is the IP address of the pgbouncer node\n```\n\nExample:\n```ruby\npgbouncer['enable'] = true\npgbouncer['databases'] = {\n gitlabhq_production: {\n host: 'DATABASE_HOST',\n user: 'pgbouncer',\n password: 'PGBOUNCER_USER_PASSWORD_HASH'\n }\n}\n```\n\nExample:\n```ruby\npgbouncer['databases'] = {\n gitlabhq_production: {\n ...\n pool_mode: 'transaction'\n }\n}\n```\n\nExample:\n```ruby\ngitlab_rails['db_host'] = 'PGBOUNCER_HOST'\ngitlab_rails['db_port'] = '6432'\ngitlab_rails['db_password'] = 'SQL_USER_PASSWORD'\n```\n\nExample:\n```ruby\n# Enable service discovery for Prometheus\nconsul['enable'] = true\nconsul['monitoring_service_discovery'] = true\n\n# Replace placeholders\n# Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z\n# with the addresses of the Consul server nodes\nconsul['configuration'] = {\n retry_join: %w(Y.Y.Y.Y consul1.gitlab.example.com Z.Z.Z.Z),\n}\n\n# Set the network addresses that the exporters will listen on\nnode_exporter['listen_address'] = '0.0.0.0:9100'\npgbouncer_exporter['listen_address'] = '0.0.0.0:9188'\n```\n\nExample:\n```shell\nsudo gitlab-ctl pgb-console\n```\n\nExample:\n```shell\npgbouncer=# show databases; show clients; show servers;\n name | host | port | database | force_user | pool_size | reserve_pool | pool_mode | max_connections | current_connections\n---------------------+-----------+------+---------------------+------------+-----------+--------------+-----------+-----------------+---------------------\n gitlabhq_production | 127.0.0.1 | 5432 | gitlabhq_production | | 100 | 5 | | 0 | 1\n pgbouncer | | 6432 | pgbouncer | pgbouncer | 2 | 0 | statement | 0 | 0\n(2 rows)\n\n type | user | database | state | addr | port | local_addr | local_port | connect_time | request_time | ptr | link\n| remote_pid | tls\n------+-----------+---------------------+--------+-----------+-------+------------+------------+---------------------+---------------------+-----------+------\n+------------+-----\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44590 | 127.0.0.1 | 6432 | 2018-04-24 22:13:10 | 2018-04-24 22:17:10 | 0x12444c0 |\n| 0 |\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44592 | 127.0.0.1 | 6432 | 2018-04-24 22:13:10 | 2018-04-24 22:17:10 | 0x12447c0 |\n| 0 |\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44594 | 127.0.0.1 | 6432 | 2018-04-24 22:13:10 | 2018-04-24 22:17:10 | 0x1244940 |\n| 0 |\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44706 | 127.0.0.1 | 6432 | 2018-04-24 22:14:22 | 2018-04-24 22:16:31 | 0x1244ac0 |\n| 0 |\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44708 | 127.0.0.1 | 6432 | 2018-04-24 22:14:22 | 2018-04-24 22:15:15 | 0x1244c40 |\n| 0 |\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44794 | 127.0.0.1 | 6432 | 2018-04-24 22:15:15 | 2018-04-24 22:15:15 | 0x1244dc0 |\n| 0 |\n C | gitlab | gitlabhq_production | active | 127.0.0.1 | 44798 | 127.0.0.1 | 6432 | 2018-04-24 22:15:15 | 2018-04-24 22:16:31 | 0x1244f40 |\n| 0 |\n C | pgbouncer | pgbouncer | active | 127.0.0.1 | 44660 | 127.0.0.1 | 6432 | 2018-04-24 22:13:51 | 2018-04-24 22:17:12 | 0x1244640 |\n| 0 |\n(8 rows)\n\n type | user | database | state | addr | port | local_addr | local_port | connect_time | request_time | ptr | link | rem\note_pid | tls\n------+--------+---------------------+-------+-----------+------+------------+------------+---------------------+---------------------+-----------+------+----\n--------+-----\n S | gitlab | gitlabhq_production | idle | 127.0.0.1 | 5432 | 127.0.0.1 | 35646 | 2018-04-24 22:15:15 | 2018-04-24 22:17:10 | 0x124dca0 | |\n 19980 |\n(1 row)\n```\n\nExample:\n```shell\nsudo gitlab-ctl patroni members\n```\n\nExample:\n```shell\nsudo gitlab-ctl reconfigure\n```\n\nExample:\n```shell\nsudo gitlab-ctl tail pgbouncer\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.663Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":10,"totalLines":118,"estimatedTokens":3893}}248{"id":"doc-create_kubernetes_clusters_gitlab_docs-296e794c","source":"documentation","title":"Create Kubernetes clusters | GitLab Docs","url":"https://docs.gitlab.com/user/clusters/create/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureGetting startedTutorialsInfrastructure as CodeCreate Kubernetes clustersAmazon EKSAzure AKSGoogle GKECivoConnect Kubernetes clustersRunbooksMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Manage your infrastructu… /Create Kubernetes clustersHelp us learn about your current experience with the documentation. Take the survey.Create Kubernetes clustersYou can use Infrastructure as Code (IaC) to create clusters on cloud providers. You connect the clusters to GitLab by using the agent for Kubernetes.Create a cluster on Amazon EKSCreate a cluster on Azure AKSCreate a cluster on Civo\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.749Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":237}}249{"id":"doc-disaster_recovery_for_gitlab_dedicated_and_gitla-1c7556ac","source":"documentation","title":"Disaster recovery for GitLab Dedicated and GitLab Dedicated for Government | GitLab Docs","url":"https://docs.gitlab.com/administration/dedicated/disaster_recovery/","text":"Getting startedConfigure GitLabConfigure GitLab DuoUpdate your settingsEnable features behind feature flagsMaintain GitLabMonitor GitLabSecure GitLabAdminister usersAdminister GitLab DedicatedArchitectureCreate your GitLab Dedicated instanceView your instance detailsConfigure GitLab DedicatedAuthenticated user rate limitsEncryptionHosted runnersMonitor your instanceMaintenance operationsReleases and versioningDisaster recoveryAdminister GitLab RunnerGitLab Docs /Administer /Administer GitLab Dedica… /Disaster recoveryHelp us learn about your current experience with the documentation. Take the survey.Disaster recovery for GitLab Dedicated and GitLab Dedicated for : GitLab Dedicated, GitLab Dedicated for GovernmentGitLab Dedicated and GitLab Dedicated for Government provide disaster recovery to restore your instance if your primary region becomes unavailable. Recovery objectives, replication behavior, and the failover process depend on whether your environment has a secondary region configured for Geo-based failover.Recovery objectivesGitLab DedicatedTo be eligible for the full recovery a primary and secondary region when you create your instance.Select regions supported by GitLab Dedicated.If no secondary region is configured, recovery is limited to backup restoration.GitLab Dedicated provides disaster recovery with these recovery Time Objective (RTO): Service is restored to your secondary region in eight hours or less.Recovery Point Objective (RPO): Data loss is limited to a maximum of four hours of the most recent changes, depending on when the disaster occurs relative to the last backup.GitLab Dedicated for GovernmentGitLab Dedicated for Government does not use Geo-based secondary-region failover. Recovery relies on backup restoration. The recovery targets match those for GitLab Dedicated environments without a secondary region Time Objective (RTO): Service is restored within eight hours. Larger repositories or databases can extend recovery time.Recovery Point Objective (RPO): Data loss is limited to a maximum of four hours of the most recent changes.Geo replicationGitLab DedicatedWhen you create your instance, you select a primary region and a secondary region for your environment. Geo continuously replicates data between these regions, contentRepository storageObject storageGitLab Dedicated for GovernmentGitLab Dedicated for Government does not support Geo. Your instance runs in a single AWS GovCloud region (US-West), with backups replicated to a separate AWS GovCloud region (US-East) for redundancy.Automated backupsGitLab performs automated backups of all GitLab Dedicated datastores (including databases and Git repositories) every four hours (six times daily) by creating snapshots.Backups are tested, retained for 30 days, and stored in your chosen secondary region. They are also geographically replicated by AWS for additional protection.Database continuous log-based backups in the primary region for point-in-time recovery.Stream replication to the secondary region to provide a near-real-time copy.Object storage backups use geographical replication and versioning to provide backup protection.The four-hour backup frequency supports the Recovery Point Objective (RPO) to ensure you lose no more than four hours of data.Disaster coverageDisaster recovery covers these scenarios with guaranteed recovery region outage (for example, availability zone failure)Complete outage of your primary regionThese scenarios are covered on a best-effort basis without guaranteed recovery of both primary and secondary regionsGlobal internet outagesData corruption issuesService limitationsDisaster recovery has these service search indexes are not continuously replicated. After failover, these indexes are rebuilt when the secondary region is promoted. Basic search remains available during rebuilding.ClickHouse Cloud is provisioned only in the primary region. Features that require this service might be unavailable if the primary region is completely down.Production preview environments do not have secondary instances.Hosted runners are supported only in the primary region and cannot be rebuilt in the secondary instance.Some regions have limited feature availability due to AWS service constraints. For more information, see supported regions. These feature limitations do not affect disaster recovery capabilities or RTO and RPO targets.GitLab does not monitoring of failover eventsCustomer-initiated disaster recovery testingFailover processGitLab DedicatedWhen your instance becomes unavailable due to a complete region failure or critical component failure that cannot be quickly recovered, the GitLab Dedicated alerted by monitoring systems.Investigates if failover is required.If failover is you that failover is in progress.Promotes the secondary region to primary.Updates DNS records for <customer>.gitlab-dedicated.com to point to the newly promoted region.Notifies you when failover completes.If you use PrivateLink, you must update your internal networking configuration to target the PrivateLink endpoint for the secondary region. To minimize downtime, configure equivalent PrivateLink endpoints in your secondary region before a disaster occurs.The failover process typically completes in 90 minutes or less. Throughout the process, GitLab communicates with you through one or more operational contact information in SwitchboardSlackSupport ticketsGitLab may establish a temporary Slack channel and Zoom bridge to coordinate with your team throughout the recovery process.GitLab Dedicated for GovernmentGitLab Dedicated for Government does not have a secondary region to fail over to. If your instance becomes unavailable due to a complete region failure, the GitLab Dedicated team restores your instance from the most recent backup in your backup region.Throughout the process, GitLab communicates with you through one or more ticketsRelated topicsData residency and high availabilityGitLab Dedicated architectureRecovery objectivesGeo replicationAutomated backupsDisaster coverageService limitationsFailover processRelated topics\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:07.806Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1528}}250{"id":"doc-license_usage_gitlab_docs-5177669d","source":"documentation","title":"License usage | GitLab Docs","url":"https://docs.gitlab.com/administration/license_usage/","text":"Getting startedConfigure GitLabConfigure GitLab DuoUpdate your settingsEnable features behind feature flagsMaintain GitLabHousekeepingActivate GitLab EE with licenseLicense usageImport and export large projectsFast SSH key lookupFilesystem benchmarkinggitlab-sshdRails consoleUse SSH certificatesEnable encrypted configurationRake tasksBackup and restoreDormant project deletionMigrate to a subdomainMove repositoriesSilent modeRead-only stateRestart GitLabTroubleshootingMonitor GitLabSecure GitLabAdminister usersAdminister GitLab DedicatedAdminister GitLab RunnerGitLab Docs /Administer /Maintain GitLab /License usageHelp us learn about your current experience with the documentation. Take the survey.License , Self-ManagedYou can view the usage associated with your GitLab license and export the license usage file with the following keyLicensee emailLicense start date (UTC)License end date (UTC)CompanyTimestamp the file was generated at and exported (UTC)Table of historical user counts for each day in the the count was recorded (UTC)Billable user countA custom format is used for dates and times in CSV files.Export license must be an administrator.You can export your license usage into a CSV file.This file contains the information GitLab uses to manually process quarterly reconciliations and renewals. If your instance is firewalled or an offline environment, you must provide GitLab with this information.Do not open the license usage file. If you open the file, failures might occur when you submit your license usage data.In the upper-right corner, select Admin.In the left sidebar, select Subscription.In the upper-right corner, select Export license usage file.Export license usage\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.142Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":429}}251{"id":"doc-project_integrations_gitlab_docs-9df4ef23","source":"documentation","title":"Project integrations | GitLab Docs","url":"https://docs.gitlab.com/user/project/integrations/","text":"Getting startedTutorialsIntegrationsProject integrationsAkismetApple App Store ConnectAsanaAtlassian BambooAWS CodePipelineBeyond IdentityChatOpsClickHouseConfluence WorkspaceDatadogDiagram proxyDiagrams.netDiffblue CoverDiscord NotificationsElasticsearchEmails on pushExternal controlsExternal issue trackersGitGuardianGitHubGitLab for Slack appGitpodGmail actionsGoogle ChatGoogle PlayHarborirker (IRC gateway)JenkinsJiraKrokiMailgunMatrix notificationsMattermost notificationsMattermost slash commandsMicrosoft Teams notificationsMLflowMock CIPipeline status emailsPivotal TrackerPlantUMLPumblereCAPTCHASnowflakeSourcegraphSquash TMTelegramTrello Power-UpsUnify CircuitVaultWebex TeamsZentaoZoektWebhooksREST APIGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Editor and IDE extensionsGitLab Docs /Extend /Integrations /Project integrationsHelp us learn about your current experience with the documentation. Take the survey.Project , Premium, , GitLab Self-Managed, GitLab DedicatedFor administrator documentation, see project integration administration.You can integrate with external applications to add functionality to GitLab.You can view and manage integrations for (GitLab Self-Managed)GroupYou can or group default settings for a project integrationCustom settings for a project or group integrationManage group default settings for a project must have the Owner role for the group.To manage the group default settings for a project the top bar, select Search or go to and find your group.In the left sidebar, select Settings > Integrations.Select an integration.Complete the fields.Select Save changes.This may affect all or most of the subgroups and projects belonging to the group. Review the details below.If this is the first time you are setting up group settings for an integration is enabled for all subgroups and projects belonging to the group that don’t already have this integration configured, if you have the Enable integration toggle turned on in the group settings.Subgroups and projects that already have the integration configured are not affected, but can choose to use the inherited settings at any time.When you make further changes to the group are immediately applied to all subgroups and projects belonging to the group that have the integration set to use default settings.They are immediately applied to newer subgroups and projects, even those created after you last saved defaults for the integration. If your group default setting has the Enable integration toggle turned on, the integration is automatically enabled for all such subgroups and projects.Subgroups and projects with custom settings selected for the integration are not immediately affected and may choose to use the latest defaults at any time.If instance settings have also been configured for the same integration, projects in the group inherit settings from the group.Only the entire settings for an integration can be inherited. Per-field inheritance is proposed in epic 2137.Remove a group default must have the Owner role for the group.To remove a group default the top bar, select Search or go to and find your group.In the left sidebar, select Settings > Integrations.Select an integration.Select Reset and confirm.Resetting a group default setting removes integrations that use default settings and belong to a project or subgroup of the group.Use instance or group default settings for a project must have the Maintainer or Owner role for the project.To use instance or group default settings for a project the top bar, select Search or go to and find your project.In the left sidebar, select Settings > Integrations.Select an integration.On the right, from the dropdown list, select Use default settings.Under Enable integration, ensure the Active checkbox is selected.Complete the fields.Select Save changes.Use custom settings for a project or group must have the Maintainer or Owner role for the project integration.You must have the Owner role for the group integration.To use custom settings for a project or group the top bar, select Search or go to and find your project or group.In the left sidebar, select Settings > Integrations.Select an integration.On the right, from the dropdown list, select Use custom settings.Under Enable integration, ensure the Active checkbox is selected.Complete the fields.Select Save changes.Available integrationsThe following integrations can be available on a GitLab instance. If an instance administrator has configured an integration allowlist, only those integrations are available.CI/CDIntegrationDescriptionIntegration hooksAtlassian BambooRun CI/CD pipelines with Atlassian Bamboo.BuildkiteRun CI/CD pipelines with Buildkite.DroneRun CI/CD pipelines with Drone.JenkinsRun CI/CD pipelines with Jenkins.JetBrains TeamCityRun CI/CD pipelines with TeamCity.Event notificationsNone of these integrations have integration hooks.IntegrationDescriptionCampfireConnect Campfire to chat.Discord NotificationsSend notifications about project events to a Discord channel.Google ChatSend notifications from your GitLab project to a space in Google Chat.irker (IRC gateway)Send event notifications to IRC channels.Matrix notificationsSend notifications about project events to Matrix.Mattermost notificationsSend notifications about project events to Mattermost channels.Microsoft Teams notificationsSend event notifications to Microsoft Teams.PumbleSend event notifications to a Pumble channel.PushoverSend event notifications to your device.TelegramSend notifications about project events to Telegram.Unify CircuitSend notifications about project events to Unify Circuit.Webex TeamsSend event notifications to Webex Teams.StoresIntegrationDescriptionIntegration hooksApple App Store ConnectUse GitLab to build and release an app in the Apple App Store.NoGoogle PlayUse GitLab to build and release an app in Google Play.NoHarborUse Harbor as the container registry for GitLab.NoPackagistUpdate your PHP dependencies in Packagist.External issue trackersThe following integrations add links to external issue trackers in the left sidebar in your project. None of these integrations have integration hooks.IntegrationDescriptionIssue syncCan create new issuesBugzillaUse Bugzilla as an issue tracker.NoClickUpUse ClickUp as an issue tracker.NoNoCustom issue trackerUse a custom issue tracker.NoNoEngineering Workflow Management (EWM)Use EWM as an issue tracker.NoLinearUse Linear as an issue tracker.NoNoPhorgeUse Phorge as an issue tracker.NoRedmineUse Redmine as an issue tracker.NoYouTrackUse JetBrains YouTrack as your project’s issue tracker.NoExternal wikisThe following integrations add links to external wikis in the left sidebar in your project. None of these integrations have integration hooks.IntegrationDescriptionConfluence WorkspaceUse Confluence Cloud Workspace as an internal wiki.External wikiLink an external wiki.OtherIntegrationDescriptionIntegration hooksAsanaAdd commit messages as comments to Asana tasks.NoAssemblaManage projects with Assembla.NoBeyond IdentityVerify that GPG keys are authorized by Beyond Identity Authenticator.NoDatadogTrace your GitLab pipelines with Datadog.Diffblue CoverAutomatically write comprehensive, human-like Java unit tests.Emails on pushSend commits and diffs on push by email.NoGitGuardianReject commits based on GitGuardian policies.NoGitHubReceive statuses for commits and pull requests.NoGitLab for Slack appUse the native Slack app to receive notifications and run commands.NoGoogle Artifact ManagementManage your artifacts in Google Artifact Registry.NoGoogle Cloud IAMManage permissions for Google Cloud resources with Identity and Access Management (IAM).NoJiraUse Jira as an issue tracker.NoMattermost slash commandsRun slash commands from a Mattermost chat environment.NoPipeline status emailsSend the pipeline status to a list of recipients by email.NoPivotal TrackerAdd commit messages as comments to Pivotal Tracker stories.NoSquash TMUpdate Squash TM requirements when GitLab issues are modified.Project webhooksSome integrations use webhooks for external applications.You can configure a project webhook to listen for specific events like pushes, issues, or merge requests. When the webhook is triggered, GitLab sends a POST request with data to a specified webhook URL.For a list of integrations that use webhooks, see Available integrations.Push hook limitIf a single push includes changes to more than three branches or tags, integrations supported by push_hooks and tag_push_hooks events are not executed.To change the number of supported branches or tags, configure the push_event_hooks_limit setting.SSL verificationBy default, the SSL certificate for outgoing HTTP requests is verified based on an internal list of certificate authorities. The SSL certificate cannot be self-signed.You can disable SSL verification when you configure webhooks and some integrations.Related topicsIntegrations APIGitLab Developer PortalManage group default settings for a project integrationRemove a group default settingUse instance or group default settings for a project integrationUse custom settings for a project or group integrationAvailable integrationsCI/CDEvent notificationsStoresExternal issue trackersExternal wikisOtherProject webhooksPush hook limitSSL verificationRelated topics\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.144Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":2342}}252{"id":"doc-file_management_gitlab_docs-8dcb1577","source":"documentation","title":"File management | GitLab Docs","url":"https://docs.gitlab.com/topics/git/file_management/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitGetting startedTutorialsBasic operationsAdvanced operationsRebase and resolve conflictsCherry-pick changesRevert and undo changesReduce repository sizeFile Git remote URLsTroubleshootingManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Use Git /Advanced operations /File managementHelp us learn about your current experience with the documentation. Take the survey.File managementGit provides file management capabilities that help you to track changes, collaborate with others, and manage large files efficiently.File historyUse git log to view a file’s complete history and understand how it has changed over time. The file history shows author of each change.The date and time of each modification.The specific changes made in each commit.For example, to view history information about the CONTRIBUTING.md file in the root of the gitlab repository, log CONTRIBUTING.mdExample b350bf041666964c27834885e4590d90ad0bfe90 Malcolm <nmalcolm@gitlab.com> Dec 8 :07 2023 +1300 Update security contact and vulnerability disclosure info commit 8e4c7f26317ff4689610bf9d031b4931aef54086 Walker <bwalker@gitlab.com> Oct 20 :25 2023 +0000 Fix link to Code of Conduct and condense some of the verbiageCheck previous changes to a fileUse git blame to see who made the last change to a file and when. This helps to understand the context of a file’s content, resolve conflicts, and identify the person responsible for a specific change.If you want to find blame information about a README.md file in the local a terminal or command prompt.Go to your Git repository.Run the following blame README.mdTo navigate the results page, press Space.To exit out of the results, press Q.This output displays the file content with annotations showing the commit SHA, author, and date for each line. For (Dan Rhodes 2022-05-13 :20 +0000 1) ## Contributor License Agreement b87768f435185 (Jamie Hurewitz 2017-10-31 :23 +0000 2) 8e4c7f26317ff (Brett Walker 2023-10-20 :25 +0000 3) Contributions to this repository are subject to the 58233c4f1054c (Dan Rhodes 2022-05-13 :20 +0000 4)Git LFSGit Large File Storage (LFS) is an extension that helps you manage large files in Git repositories. It replaces large files with text pointers in Git, and stores the file contents on a remote server.Prerequisites:Download and install the appropriate version of the CLI extension for Git LFS for your operating system.Configure your project to use Git LFS.Install the Git LFS pre-push hook. To do this, run git lfs install in the root directory of your repository.Add and track filesTo add a large file into your Git repository and track it with Git tracking for all files of a certain type. Replace iso with your desired file lfs track \"*.iso\"This command creates a .gitattributes file with instructions to handle all ISO files with Git LFS. The following line is added to your .gitattributes file:*.iso filter=lfs -textAdd a file of that type, .iso, to your repository.Track the changes to both the .gitattributes file and the .iso add .Ensure you’ve added both statusThe .gitattributes file must be included in your commit. If it isn’t included, Git does not track the ISO file with Git LFS.Ensure the files you’re changing are not listed in a .gitignore file. If they are, Git commits the change locally but doesn’t push it to your upstream repository.Commit both files to your local copy of the commit -m \"Add an ISO file and .gitattributes\"Push your changes upstream. Replace main with the name of your push origin mainCreate a merge request.When you add a new file type to Git LFS tracking, existing files of this type are not converted to Git LFS. Only files of this type, added after you begin tracking, are added to Git LFS. Use git lfs migrate to convert existing files to use Git LFS.Stop tracking a fileWhen you stop tracking a file with Git LFS, the file remains on disk because it’s still part of your repository’s history.To stop tracking a file with Git the git lfs untrack command and provide the path to the lfs untrack doc/example.isoUse the touch command to convert it back to a standard doc/example.isoTrack the changes to the add .Commit and push your changes.Create a merge request and request a review.Merge the request into the target branch.If you delete an object tracked by Git LFS, without tracking it with git lfs untrack, the object shows as modified in git status.Stop tracking all files of a single typeTo stop tracking all files of a particular type in Git the git lfs untrack command and provide the file type to stop lfs untrack \"*.iso\"Use the touch command to convert the files back to standard *.isoTrack the changes to the add .Commit and push your changes.Create a merge request and request a review.Merge the request into the target branch.Exclusive file , Premium, , GitLab Self-Managed, GitLab DedicatedExclusive file locks help prevent conflicts and ensure that only one person can edit a file at a time. It’s a good option files that can’t be merged. For example, design files and videos.Files that require exclusive access during editing.Exclusive file locks apply to all branches in a repository. If you need to lock files only on the default branch, use default branch file and directory locks instead.Prerequisites:You must have Git LFS installed.You must have the Maintainer role for the project.Configure file locksTo configure file locks for a specific file the git lfs track command with the --lockable option. For example, to configure PNG lfs track \"*.png\" --lockableThis command creates or updates your .gitattributes file with the following content:*.png filter=lfs diff=lfs merge=lfs -text lockablePush the .gitattributes file to the remote repository for the changes to take effect.After a file type is registered as lockable, it is automatically marked as read-only.Configure file locks without LFSTo register a file type as lockable without using Git the .gitattributes file manually:*.pdf lockablePush the .gitattributes file to the remote repository.Lock and unlock filesTo lock or unlock a file with exclusive file a terminal window in your repository directory.Run one of the following a filegit lfs lock path/to/file.pngUnlock a filegit lfs unlock path/to/file.pngUnlock a file by IDgit lfs unlock --id=123Force unlock a filegit lfs unlock --id=123 --forceView locked filesTo view locked a terminal window in your repository.Run the following lfs locksThe output lists the locked files, the users who locked them, and the file IDs.In the GitLab repository file tree displays an LFS badge for files tracked by Git LFS.Exclusively-locked files show a padlock icon.When you rename an exclusively-locked file, the lock is lost. You must lock it again to keep it locked.Lock and edit a fileTo lock a file, edit it, and optionally unlock the lfs lock <file_path>Edit the file.Optional. Unlock the file when you’re lfs unlock <file_path>Related topicsFile management with the GitLab UIGit Large File Storage (LFS) documentationFile lockingFile historyCheck previous changes to a fileGit LFSAdd and track filesStop tracking a fileStop tracking all files of a single typeExclusive file locksConfigure file locksConfigure file locks without LFSLock and unlock filesView locked filesLock and edit a fileRelated topics\n\nExample:\n```shell\ngit log CONTRIBUTING.md\n```\n\nExample:\n```shell\ncommit b350bf041666964c27834885e4590d90ad0bfe90\nAuthor: Nick Malcolm <nmalcolm@gitlab.com>\nDate: Fri Dec 8 13:43:07 2023 +1300\n\n Update security contact and vulnerability disclosure info\n\ncommit 8e4c7f26317ff4689610bf9d031b4931aef54086\nAuthor: Brett Walker <bwalker@gitlab.com>\nDate: Fri Oct 20 17:53:25 2023 +0000\n\n Fix link to Code of Conduct\n\n and condense some of the verbiage\n```\n\nExample:\n```shell\ngit blame README.md\n```\n\nExample:\n```shell\n58233c4f1054c (Dan Rhodes 2022-05-13 07:02:20 +0000 1) ## Contributor License Agreement\nb87768f435185 (Jamie Hurewitz 2017-10-31 18:09:23 +0000 2)\n8e4c7f26317ff (Brett Walker 2023-10-20 17:53:25 +0000 3) Contributions to this repository are subject to the\n58233c4f1054c (Dan Rhodes 2022-05-13 07:02:20 +0000 4)\n```\n\nExample:\n```shell\ngit lfs track \"*.iso\"\n```\n\nExample:\n```plaintext\n*.iso filter=lfs -text\n```\n\nExample:\n```shell\ngit add .\n```\n\nExample:\n```shell\ngit status\n```\n\nExample:\n```shell\ngit commit -m \"Add an ISO file and .gitattributes\"\n```\n\nExample:\n```shell\ngit push origin main\n```\n\nExample:\n```shell\ngit lfs untrack doc/example.iso\n```\n\nExample:\n```shell\ntouch doc/example.iso\n```\n\nExample:\n```shell\ngit lfs untrack \"*.iso\"\n```\n\nExample:\n```shell\ntouch *.iso\n```\n\nExample:\n```shell\ngit lfs track \"*.png\" --lockable\n```\n\nExample:\n```plaintext\n*.png filter=lfs diff=lfs merge=lfs -text lockable\n```\n\nExample:\n```shell\n*.pdf lockable\n```\n\nExample:\n```shell\ngit lfs lock path/to/file.png\n```\n\nExample:\n```shell\ngit lfs unlock path/to/file.png\n```\n\nExample:\n```shell\ngit lfs unlock --id=123\n```\n\nExample:\n```shell\ngit lfs unlock --id=123 --force\n```\n\nExample:\n```shell\ngit lfs locks\n```\n\nExample:\n```shell\ngit lfs lock <file_path>\n```\n\nExample:\n```shell\ngit lfs unlock <file_path>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.335Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":24,"totalLines":138,"estimatedTokens":2363}}253{"id":"doc-deploy_a_gatsby_app_railway_guides-931a3f62","source":"documentation","title":"Deploy a Gatsby App | Railway Guides","url":"https://docs.railway.app/guides/gatsby","text":"Example:\n```text\nnpm init gatsby my-gatsby-site\n```\n\nExample:\n```text\ncd my-gatsby-site\nnpm run develop\n```\n\nExample:\n```text\nrailway init\n```\n\nExample:\n```text\nrailway up\n```\n\nExample:\n```text\nFROM node:lts-alpine AS build\n\nENV NPM_CONFIG_UPDATE_NOTIFIER=false\nENV NPM_CONFIG_FUND=false\n\nWORKDIR /app\nCOPY package*.json ./\nRUN npm ci\nCOPY . ./\nRUN npm run build\n\nFROM caddy\nWORKDIR /app\nCOPY Caddyfile ./\nRUN caddy fmt Caddyfile --overwrite\nCOPY --from=build /app/public ./public\n\nCMD [\"caddy\", \"run\", \"--config\", \"Caddyfile\", \"--adapter\", \"caddyfile\"]\n```\n\nExample:\n```text\n{\n admin off\n persist_config off\n auto_https off\n log {\n format json\n }\n servers {\n trusted_proxies static private_ranges 100.0.0.0/8\n }\n}\n\n:{$PORT:3000} {\n log {\n format json\n }\n\n rewrite /health /*\n\n root * public\n\n encode gzip\n\n file_server\n\n try_files {path} /index.html\n}\n```\n\nExample:\n```text\nNODE_OPTIONS=--max-old-space-size=4096\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:24.978Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":80,"estimatedTokens":249}}254{"id":"doc-ease_of_use_quantization_for_pytorch_with_intel_-2c31ab1b","source":"documentation","title":"Ease-of-use quantization for PyTorch with Intel® Neural Compressor — PyTorch Tutorials 2.13.0+cu130 documentation","url":"https://docs.pytorch.org/tutorials/recipes/intel_neural_compressor_for_pytorch.html","text":"Example:\n```js\nDocs Access comprehensive developer documentation for PyTorch View Docs Tutorials Get in-depth tutorials for beginners and advanced developers View Tutorials Resources Find development resources and get your questions answered View Resources\n```\n\nTo analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available Policy.\n\nExample:\n```text\n# install stable version from pip\npip install neural-compressor-pt\n```\n\nExample:\n```text\n# FP8 Quantization Example\nfrom neural_compressor.torch.quantization import (\n FP8Config,\n prepare,\n convert,\n)\n\nimport torch\nimport torchvision.models as models\n\n# Load a pre-trained ResNet18 model\nmodel = models.resnet18()\n\n# Configure FP8 quantization\nqconfig = FP8Config(fp8_config=\"E4M3\")\nmodel = prepare(model, qconfig)\n\n# Perform calibration (replace with actual calibration data)\ncalibration_data = torch.randn(1, 3, 224, 224).to(\"hpu\")\nmodel(calibration_data)\n\n# Convert the model to FP8\nmodel = convert(model)\n\n# Perform inference\ninput_data = torch.randn(1, 3, 224, 224).to(\"hpu\")\noutput = model(input_data).to(\"cpu\")\nprint(output)\n```\n\nExample:\n```text\nfrom neural_compressor.torch.quantization import load\n\n# The model name comes from HuggingFace Model Hub.\nmodel_name = \"TheBloke/Llama-2-7B-GPTQ\"\nmodel = load(\n model_name_or_path=model_name,\n format=\"huggingface\",\n device=\"hpu\",\n torch_dtype=torch.bfloat16,\n)\n```\n\nExample:\n```text\nimport torch\nfrom neural_compressor.torch.export import export\nfrom neural_compressor.torch.quantization import StaticQuantConfig, prepare, convert\n\n# Prepare the float model and example inputs for export model\nmodel = UserFloatModel()\nexample_inputs = ...\n\n# Export eager model into FX graph model\nexported_model = export(model=model, example_inputs=example_inputs)\n# Quantize the model\nquant_config = StaticQuantConfig()\nprepared_model = prepare(exported_model, quant_config=quant_config)\n# Calibrate\nrun_fn(prepared_model)\nq_model = convert(prepared_model)\n# Compile the quantized model and replace the Q/DQ pattern with Q-operator\nfrom torch._inductor import config\n\nconfig.freezing = True\nopt_model = torch.compile(q_model)\n```\n\nExample:\n```text\nfrom neural_compressor.torch.quantization import RTNConfig, TuningConfig, autotune\n\n\ndef eval_fn(model) -> float:\n return ...\n\n\ntune_config = TuningConfig(\n config_set=RTNConfig(use_sym=[False, True], group_size=[32, 128]),\n tolerable_loss=0.2,\n max_trials=10,\n)\nq_model = autotune(model, tune_config=tune_config, eval_fn=eval_fn)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:23.730Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":102,"estimatedTokens":680}}255{"id":"doc-export_a_model_with_control_flow_to_onnx_pytorch-74331f14","source":"documentation","title":"Export a model with control flow to ONNX — PyTorch Tutorials 2.13.0+cu130 documentation","url":"https://docs.pytorch.org/tutorials/beginner/onnx/export_control_flow_model_to_onnx_tutorial.html","text":"Example:\n```js\nDocs Access comprehensive developer documentation for PyTorch View Docs Tutorials Get in-depth tutorials for beginners and advanced developers View Tutorials Resources Find development resources and get your questions answered View Resources\n```\n\nTo analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available Policy.\n\nExample:\n```text\nimport torch\n```\n\nExample:\n```text\nclass ForwardWithControlFlowTest(torch.nn.Module):\n def forward(self, x):\n if x.sum():\n return x * 2\n return -x\n\n\nclass ModelWithControlFlowTest(torch.nn.Module):\n def __init__(self):\n super().__init__()\n self.mlp = torch.nn.Sequential(\n torch.nn.Linear(3, 2),\n torch.nn.Linear(2, 1),\n ForwardWithControlFlowTest(),\n )\n\n def forward(self, x):\n out = self.mlp(x)\n return out\n\n\nmodel = ModelWithControlFlowTest()\n```\n\nExample:\n```text\nx = torch.randn(3)\nmodel(x)\n\ntry:\n torch.export.export(model, (x,), strict=False)\n raise AssertionError(\"This export should failed unless PyTorch now supports this model.\")\nexcept Exception as e:\n print(e)\n```\n\nExample:\n```text\ndef forward(self, arg0_1: \"f32[2, 3]\", arg1_1: \"f32[2]\", arg2_1: \"f32[1, 2]\", arg3_1: \"f32[1]\", arg4_1: \"f32[3]\"):\n # File: /usr/local/lib/python3.10/dist-packages/torch/nn/modules/linear.py:134 in forward, code: return F.linear(input, self.weight, self.bias)\n linear: \"f32[2]\" = torch.ops.aten.linear.default(arg4_1, arg0_1, arg1_1); arg4_1 = arg0_1 = arg1_1 = None\n linear_1: \"f32[1]\" = torch.ops.aten.linear.default(linear, arg2_1, arg3_1); linear = arg2_1 = arg3_1 = None\n\n # File: /var/lib/workspace/beginner_source/onnx/export_control_flow_model_to_onnx_tutorial.py:55 in forward, code: if x.sum():\n sum_1: \"f32[]\" = torch.ops.aten.sum.default(linear_1); linear_1 = None\n ne: \"b8[]\" = torch.ops.aten.ne.Scalar(sum_1, 0); sum_1 = None\n item: \"Sym(Eq(u0, 1))\" = torch.ops.aten.item.default(ne); ne = item = None\n\n\n\n\ndef forward(self, arg0_1: \"f32[2, 3]\", arg1_1: \"f32[2]\", arg2_1: \"f32[1, 2]\", arg3_1: \"f32[1]\", arg4_1: \"f32[3]\"):\n # File: /usr/local/lib/python3.10/dist-packages/torch/nn/modules/linear.py:134 in forward, code: return F.linear(input, self.weight, self.bias)\n linear: \"f32[2]\" = torch.ops.aten.linear.default(arg4_1, arg0_1, arg1_1); arg4_1 = arg0_1 = arg1_1 = None\n linear_1: \"f32[1]\" = torch.ops.aten.linear.default(linear, arg2_1, arg3_1); linear = arg2_1 = arg3_1 = None\n\n # File: /var/lib/workspace/beginner_source/onnx/export_control_flow_model_to_onnx_tutorial.py:55 in forward, code: if x.sum():\n sum_1: \"f32[]\" = torch.ops.aten.sum.default(linear_1); linear_1 = None\n ne: \"b8[]\" = torch.ops.aten.ne.Scalar(sum_1, 0); sum_1 = None\n item: \"Sym(Eq(u0, 1))\" = torch.ops.aten.item.default(ne); ne = item = None\n\nCould not guard on data-dependent expression Eq(u0, 1) (unhinted: Eq(u0, 1)). (Size-like symbols: none)\n\nconsider using data-dependent friendly APIs such as guard_or_false, guard_or_true and statically_known_true.\nCaused by: (_export/non_strict_utils.py:1205 in __torch_function__)\nFor more information, run with TORCH_LOGS=\"dynamic\"\nFor extended logs when we create symbols, also add TORCHDYNAMO_EXTENDED_DEBUG_CREATE_SYMBOL=\"u0\"\nIf you suspect the guard was triggered from C++, add TORCHDYNAMO_EXTENDED_DEBUG_CPP=1\nFor more debugging help, see https://docs.google.com/document/d/1HSuTTVvYH1pTew89Rtpeu84Ht3nQEFTYhAX3Ypa_xJs/edit?usp=sharing\n\nFor C++ stack trace, run with TORCHDYNAMO_EXTENDED_DEBUG_CPP=1\n\nThe following call raised this error:\n File \"/var/lib/workspace/beginner_source/onnx/export_control_flow_model_to_onnx_tutorial.py\", line 55, in forward\n if x.sum():\n\n\nThe error above occurred when calling torch.export.export. If you would like to view some more information about this error, and get a list of all other errors that may occur in your export call, you can replace your `export()` call with `draft_export()`.\n```\n\nExample:\n```text\ndef new_forward(x):\n def identity2(x):\n return x * 2\n\n def neg(x):\n return -x\n\n return torch.cond(x.sum() > 0, identity2, neg, (x,))\n\n\nprint(\"the list of submodules\")\nfor name, mod in model.named_modules():\n print(name, type(mod))\n if isinstance(mod, ForwardWithControlFlowTest):\n mod.forward = new_forward\n```\n\nExample:\n```text\nthe list of submodules\n <class '__main__.ModelWithControlFlowTest'>\nmlp <class 'torch.nn.modules.container.Sequential'>\nmlp.0 <class 'torch.nn.modules.linear.Linear'>\nmlp.1 <class 'torch.nn.modules.linear.Linear'>\nmlp.2 <class '__main__.ForwardWithControlFlowTest'>\n```\n\nExample:\n```text\nprint(torch.export.export(model, (x,), strict=False))\n```\n\nExample:\n```text\nExportedProgram:\n class GraphModule(torch.nn.Module):\n def forward(self, p_mlp_0_weight: \"f32[2, 3]\", p_mlp_0_bias: \"f32[2]\", p_mlp_1_weight: \"f32[1, 2]\", p_mlp_1_bias: \"f32[1]\", x: \"f32[3]\"):\n # File: /usr/local/lib/python3.10/dist-packages/torch/nn/modules/linear.py:134 in forward, code: return F.linear(input, self.weight, self.bias)\n linear: \"f32[2]\" = torch.ops.aten.linear.default(x, p_mlp_0_weight, p_mlp_0_bias); x = p_mlp_0_weight = p_mlp_0_bias = None\n linear_1: \"f32[1]\" = torch.ops.aten.linear.default(linear, p_mlp_1_weight, p_mlp_1_bias); linear = p_mlp_1_weight = p_mlp_1_bias = None\n\n # File: /usr/local/lib/python3.10/dist-packages/torch/nn/modules/container.py:253 in forward, code: input = module(input)\n sum_1: \"f32[]\" = torch.ops.aten.sum.default(linear_1)\n gt: \"b8[]\" = torch.ops.aten.gt.Scalar(sum_1, 0); sum_1 = None\n\n # File: <eval_with_key>.5:9 in forward, code: cond = torch.ops.higher_order.cond(l_args_0_, cond_true_0, cond_false_0, (l_args_3_0_,)); l_args_0_ = cond_true_0 = cond_false_0 = l_args_3_0_ = None\n true_graph_0 = self.true_graph_0\n false_graph_0 = self.false_graph_0\n cond = torch.ops.higher_order.cond(gt, true_graph_0, false_graph_0, (linear_1,)); gt = true_graph_0 = false_graph_0 = linear_1 = None\n getitem: \"f32[1]\" = cond[0]; cond = None\n return (getitem,)\n\n class true_graph_0(torch.nn.Module):\n def forward(self, linear_1: \"f32[1]\"):\n # File: <eval_with_key>.6:6 in forward, code: mul = l_args_3_0__1 * 2; l_args_3_0__1 = None\n mul: \"f32[1]\" = torch.ops.aten.mul.Tensor(linear_1, 2); linear_1 = None\n return (mul,)\n\n class false_graph_0(torch.nn.Module):\n def forward(self, linear_1: \"f32[1]\"):\n # File: <eval_with_key>.7:6 in forward, code: neg = -l_args_3_0__1; l_args_3_0__1 = None\n neg: \"f32[1]\" = torch.ops.aten.neg.default(linear_1); linear_1 = None\n return (neg,)\n\nGraph signature:\n # inputs\n p_mlp_0_weight: PARAMETER target='mlp.0.weight'\n p_mlp_0_bias: PARAMETER target='mlp.0.bias'\n p_mlp_1_weight: PARAMETER target='mlp.1.weight'\n p_mlp_1_bias: PARAMETER target='mlp.1.bias'\n x: USER_INPUT\n\n # outputs\n getitem: USER_OUTPUT\n\nRange constraints: {}\n```\n\nExample:\n```text\nonnx_program = torch.onnx.export(model, (x,), dynamo=True)\nprint(onnx_program.model)\n```\n\nExample:\n```text\n/var/lib/workspace/beginner_source/onnx/export_control_flow_model_to_onnx_tutorial.py:137: UserWarning: Exporting a model while it is in training mode. Please ensure that this is intended, as it may lead to different behavior during inference. Calling model.eval() before export is recommended.\n onnx_program = torch.onnx.export(model, (x,), dynamo=True)\n[torch.onnx] Obtain model graph for `ModelWithControlFlowTest([...]` with `torch.export.export(..., strict=False)`...\n[torch.onnx] Obtain model graph for `ModelWithControlFlowTest([...]` with `torch.export.export(..., strict=False)`... ✅\n[torch.onnx] Run decompositions...\n/usr/lib/python3.10/copyreg.py:101: FutureWarning: `isinstance(treespec, LeafSpec)` is deprecated, use `isinstance(treespec, TreeSpec) and treespec.is_leaf()` instead.\n return cls.__new__(cls, *args)\n[torch.onnx] Run decompositions... ✅\n[torch.onnx] Translate the graph into ONNX...\n[torch.onnx] Translate the graph into ONNX... ✅\n[torch.onnx] Optimize the ONNX graph...\n[torch.onnx] Optimize the ONNX graph... ✅\n<\n ir_version=10,\n opset_imports={'': 20},\n producer_name='pytorch',\n producer_version='2.13.0+cu130',\n domain=None,\n model_version=None,\n>\ngraph(\n name=main_graph,\n inputs=(\n %\"x\"<FLOAT,[3]>\n ),\n outputs=(\n %\"getitem\"<FLOAT,[1]>\n ),\n initializers=(\n %\"mlp.0.bias\"<FLOAT,[2]>{TorchTensor<FLOAT,[2]>(Parameter containing: tensor([-0.4976, 0.4002], requires_grad=True), name='mlp.0.bias')},\n %\"mlp.1.bias\"<FLOAT,[1]>{TorchTensor<FLOAT,[1]>(Parameter containing: tensor([-0.4770], requires_grad=True), name='mlp.1.bias')},\n %\"val_0\"<FLOAT,[3,2]>{Tensor<FLOAT,[3,2]>(array([[-0.286133 , 0.5159266 ], [-0.2602857 , -0.17051515], [ 0.2899657 , -0.13858843]], dtype=float32), name='val_0')},\n %\"val_2\"<FLOAT,[2,1]>{Tensor<FLOAT,[2,1]>(array([[ 0.484586 ], [-0.04149146]], dtype=float32), name='val_2')},\n %\"scalar_tensor_default\"<FLOAT,[]>{Tensor<FLOAT,[]>(array(0., dtype=float32), name='scalar_tensor_default')},\n %\"scalar_tensor_default_2\"<FLOAT,[]>{Tensor<FLOAT,[]>(array(2., dtype=float32), name='scalar_tensor_default_2')}\n ),\n) {\n 0 | # node_MatMul_1\n %\"val_1\"<FLOAT,[2]> ⬅️ ::MatMul(%\"x\", %\"val_0\"{[[-0.2861329913139343, 0.5159265995025635], [-0.26028570532798767, -0.17051514983177185], [0.2899656891822815, -0.13858842849731445]]})\n 1 | # node_linear\n %\"linear\"<FLOAT,[2]> ⬅️ ::Add(%\"val_1\", %\"mlp.0.bias\"{[-0.49758395552635193, 0.40022167563438416]})\n 2 | # node_MatMul_3\n %\"val_3\"<FLOAT,[1]> ⬅️ ::MatMul(%\"linear\", %\"val_2\"{[[0.4845860004425049], [-0.04149146378040314]]})\n 3 | # node_linear_1\n %\"linear_1\"<FLOAT,[1]> ⬅️ ::Add(%\"val_3\", %\"mlp.1.bias\"{[-0.4770398437976837]})\n 4 | # node_sum_1\n %\"sum_1\"<FLOAT,[]> ⬅️ ::ReduceSum(%\"linear_1\") {noop_with_empty_axes=0, keepdims=0}\n 5 | # node_gt\n %\"gt\"<BOOL,[]> ⬅️ ::Greater(%\"sum_1\", %\"scalar_tensor_default\"{0.0})\n 6 | # node_cond__0\n %\"getitem\"<FLOAT,[1]> ⬅️ ::If(%\"gt\") {then_branch=\n graph(\n name=true_graph_0,\n inputs=(\n\n ),\n outputs=(\n %\"mul_true_graph_0\"<FLOAT,[1]>\n ),\n ) {\n 0 | # node_mul\n %\"mul_true_graph_0\"<FLOAT,[1]> ⬅️ ::Mul(%\"linear_1\", %\"scalar_tensor_default_2\"{2.0})\n return %\"mul_true_graph_0\"<FLOAT,[1]>\n }, else_branch=\n graph(\n name=false_graph_0,\n inputs=(\n\n ),\n outputs=(\n %\"neg_false_graph_0\"<FLOAT,[1]>\n ),\n ) {\n 0 | # node_neg\n %\"neg_false_graph_0\"<FLOAT,[1]> ⬅️ ::Neg(%\"linear_1\")\n return %\"neg_false_graph_0\"<FLOAT,[1]>\n }}\n return %\"getitem\"<FLOAT,[1]>\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:23.809Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":10,"totalLines":264,"estimatedTokens":2860}}256{"id":"doc-visualizing_models_data_and_training_with_tensor-18272489","source":"documentation","title":"Visualizing Models, Data, and Training with TensorBoard — PyTorch Tutorials 2.13.0+cu130 documentation","url":"https://docs.pytorch.org/tutorials/intermediate/tensorboard_tutorial.html","text":"Example:\n```js\nDocs Access comprehensive developer documentation for PyTorch View Docs Tutorials Get in-depth tutorials for beginners and advanced developers View Tutorials Resources Find development resources and get your questions answered View Resources\n```\n\nTo analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available Policy.\n\nExample:\n```text\n# imports\nimport matplotlib.pyplot as plt\nimport numpy as np\n\nimport torch\nimport torchvision\nimport torchvision.transforms as transforms\n\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport torch.optim as optim\n\n# transforms\ntransform = transforms.Compose(\n [transforms.ToTensor(),\n transforms.Normalize((0.5,), (0.5,))])\n\n# datasets\ntrainset = torchvision.datasets.FashionMNIST('./data',\n download=True,\n train=True,\n transform=transform)\ntestset = torchvision.datasets.FashionMNIST('./data',\n download=True,\n train=False,\n transform=transform)\n\n# dataloaders\ntrainloader = torch.utils.data.DataLoader(trainset, batch_size=4, shuffle=True)\n\ntestloader = torch.utils.data.DataLoader(testset, batch_size=4, shuffle=False)\n\n# constant for classes\nclasses = ('T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',\n 'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle Boot')\n\n# helper function to show an image\n# (used in the `plot_classes_preds` function below)\ndef matplotlib_imshow(img, one_channel=False):\n if one_channel:\n img = img.mean(dim=0)\n img = img / 2 + 0.5 # unnormalize\n npimg = img.numpy()\n if one_channel:\n plt.imshow(npimg, cmap=\"Greys\")\n else:\n plt.imshow(np.transpose(npimg, (1, 2, 0)))\n```\n\nExample:\n```text\nclass Net(nn.Module):\n def __init__(self):\n super(Net, self).__init__()\n self.conv1 = nn.Conv2d(1, 6, 5)\n self.pool = nn.MaxPool2d(2, 2)\n self.conv2 = nn.Conv2d(6, 16, 5)\n self.fc1 = nn.Linear(16 * 4 * 4, 120)\n self.fc2 = nn.Linear(120, 84)\n self.fc3 = nn.Linear(84, 10)\n\n def forward(self, x):\n x = self.pool(F.relu(self.conv1(x)))\n x = self.pool(F.relu(self.conv2(x)))\n x = x.view(-1, 16 * 4 * 4)\n x = F.relu(self.fc1(x))\n x = F.relu(self.fc2(x))\n x = self.fc3(x)\n return x\n\n\nnet = Net()\n```\n\nExample:\n```text\ncriterion = nn.CrossEntropyLoss()\noptimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)\n```\n\nExample:\n```text\nfrom torch.utils.tensorboard import SummaryWriter\n\n# default `log_dir` is \"runs\" - we'll be more specific here\nwriter = SummaryWriter('runs/fashion_mnist_experiment_1')\n```\n\nExample:\n```text\n# get some random training images\ndataiter = iter(trainloader)\nimages, labels = next(dataiter)\n\n# create grid of images\nimg_grid = torchvision.utils.make_grid(images)\n\n# show images\nmatplotlib_imshow(img_grid, one_channel=True)\n\n# write to tensorboard\nwriter.add_image('four_fashion_mnist_images', img_grid)\n```\n\nExample:\n```text\nPYTHONWARNINGS=\"ignore:pkg_resources is deprecated as an API:UserWarning\" tensorboard --logdir=runs\n```\n\nExample:\n```text\nwriter.add_graph(net, images)\nwriter.close()\n```\n\nExample:\n```text\n# helper function\ndef select_n_random(data, labels, n=100):\n '''\n Selects n random datapoints and their corresponding labels from a dataset\n '''\n assert len(data) == len(labels)\n\n perm = torch.randperm(len(data))\n return data[perm][:n], labels[perm][:n]\n\n# select random images and their target indices\nimages, labels = select_n_random(trainset.data, trainset.targets)\n\n# get the class labels for each image\nclass_labels = [classes[lab] for lab in labels]\n\n# log embeddings\nfeatures = images.view(-1, 28 * 28)\nwriter.add_embedding(features,\n metadata=class_labels,\n label_img=images.unsqueeze(1))\nwriter.close()\n```\n\nExample:\n```text\n# helper functions\n\ndef images_to_probs(net, images):\n '''\n Generates predictions and corresponding probabilities from a trained\n network and a list of images\n '''\n output = net(images)\n # convert output probabilities to predicted class\n _, preds_tensor = torch.max(output, 1)\n preds = np.squeeze(preds_tensor.numpy())\n return preds, [F.softmax(el, dim=0)[i].item() for i, el in zip(preds, output)]\n\n\ndef plot_classes_preds(net, images, labels):\n '''\n Generates matplotlib Figure using a trained network, along with images\n and labels from a batch, that shows the network's top prediction along\n with its probability, alongside the actual label, coloring this\n information based on whether the prediction was correct or not.\n Uses the \"images_to_probs\" function.\n '''\n preds, probs = images_to_probs(net, images)\n # plot the images in the batch, along with predicted and true labels\n fig = plt.figure(figsize=(12, 48))\n for idx in np.arange(4):\n ax = fig.add_subplot(1, 4, idx+1, xticks=[], yticks=[])\n matplotlib_imshow(images[idx], one_channel=True)\n ax.set_title(\"{0}, {1:.1f}%\\n(label: {2})\".format(\n classes[preds[idx]],\n probs[idx] * 100.0,\n classes[labels[idx]]),\n color=(\"green\" if preds[idx]==labels[idx].item() else \"red\"))\n return fig\n```\n\nExample:\n```text\nrunning_loss = 0.0\nfor epoch in range(1): # loop over the dataset multiple times\n\n for i, data in enumerate(trainloader, 0):\n\n # get the inputs; data is a list of [inputs, labels]\n inputs, labels = data\n\n # zero the parameter gradients\n optimizer.zero_grad()\n\n # forward + backward + optimize\n outputs = net(inputs)\n loss = criterion(outputs, labels)\n loss.backward()\n optimizer.step()\n\n running_loss += loss.item()\n if i % 1000 == 999: # every 1000 mini-batches...\n\n # ...log the running loss\n writer.add_scalar('training loss',\n running_loss / 1000,\n epoch * len(trainloader) + i)\n\n # ...log a Matplotlib Figure showing the model's predictions on a\n # random mini-batch\n writer.add_figure('predictions vs. actuals',\n plot_classes_preds(net, inputs, labels),\n global_step=epoch * len(trainloader) + i)\n running_loss = 0.0\nprint('Finished Training')\n```\n\nExample:\n```text\n# 1. gets the probability predictions in a test_size x num_classes Tensor\n# 2. gets the preds in a test_size Tensor\n# takes ~10 seconds to run\nclass_probs = []\nclass_label = []\nwith torch.no_grad():\n for data in testloader:\n images, labels = data\n output = net(images)\n class_probs_batch = [F.softmax(el, dim=0) for el in output]\n\n class_probs.append(class_probs_batch)\n class_label.append(labels)\n\ntest_probs = torch.cat([torch.stack(batch) for batch in class_probs])\ntest_label = torch.cat(class_label)\n\n# helper function\ndef add_pr_curve_tensorboard(class_index, test_probs, test_label, global_step=0):\n '''\n Takes in a \"class_index\" from 0 to 9 and plots the corresponding\n precision-recall curve\n '''\n tensorboard_truth = test_label == class_index\n tensorboard_probs = test_probs[:, class_index]\n\n writer.add_pr_curve(classes[class_index],\n tensorboard_truth,\n tensorboard_probs,\n global_step=global_step)\n writer.close()\n\n# plot all the pr curves\nfor i in range(len(classes)):\n add_pr_curve_tensorboard(i, test_probs, test_label)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:23.868Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":11,"totalLines":264,"estimatedTokens":1927}}257{"id":"doc-defining_a_neural_network_in_pytorch_pytorch_tut-af94ac1c","source":"documentation","title":"Defining a Neural Network in PyTorch — PyTorch Tutorials 2.13.0+cu130 documentation","url":"https://docs.pytorch.org/tutorials/recipes/recipes/defining_a_neural_network.html","text":"Example:\n```js\nDocs Access comprehensive developer documentation for PyTorch View Docs Tutorials Get in-depth tutorials for beginners and advanced developers View Tutorials Resources Find development resources and get your questions answered View Resources\n```\n\nTo analyze traffic and optimize your experience, we serve cookies on this site. By clicking or navigating, you agree to allow our usage of cookies. As the current maintainers of this site, Facebook’s Cookies Policy applies. Learn more, including about available Policy.\n\nExample:\n```text\npip install torch\n```\n\nExample:\n```text\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n```\n\nExample:\n```text\nclass Net(nn.Module):\n def __init__(self):\n super(Net, self).__init__()\n\n # First 2D convolutional layer, taking in 1 input channel (image),\n # outputting 32 convolutional features, with a square kernel size of 3\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n # Second 2D convolutional layer, taking in the 32 input layers,\n # outputting 64 convolutional features, with a square kernel size of 3\n self.conv2 = nn.Conv2d(32, 64, 3, 1)\n\n # Designed to ensure that adjacent pixels are either all 0s or all active\n # with an input probability\n self.dropout1 = nn.Dropout2d(0.25)\n self.dropout2 = nn.Dropout2d(0.5)\n\n # First fully connected layer\n self.fc1 = nn.Linear(9216, 128)\n # Second fully connected layer that outputs our 10 labels\n self.fc2 = nn.Linear(128, 10)\n\nmy_nn = Net()\nprint(my_nn)\n```\n\nExample:\n```text\nclass Net(nn.Module):\n def __init__(self):\n super(Net, self).__init__()\n self.conv1 = nn.Conv2d(1, 32, 3, 1)\n self.conv2 = nn.Conv2d(32, 64, 3, 1)\n self.dropout1 = nn.Dropout2d(0.25)\n self.dropout2 = nn.Dropout2d(0.5)\n self.fc1 = nn.Linear(9216, 128)\n self.fc2 = nn.Linear(128, 10)\n\n # x represents our data\n def forward(self, x):\n # Pass data through conv1\n x = self.conv1(x)\n # Use the rectified-linear activation function over x\n x = F.relu(x)\n\n x = self.conv2(x)\n x = F.relu(x)\n\n # Run max pooling over x\n x = F.max_pool2d(x, 2)\n # Pass data through dropout1\n x = self.dropout1(x)\n # Flatten x with start_dim=1\n x = torch.flatten(x, 1)\n # Pass data through ``fc1``\n x = self.fc1(x)\n x = F.relu(x)\n x = self.dropout2(x)\n x = self.fc2(x)\n\n # Apply softmax to x\n output = F.log_softmax(x, dim=1)\n return output\n```\n\nExample:\n```text\n# Equates to one random 28x28 image\nrandom_data = torch.rand((1, 1, 28, 28))\n\nmy_nn = Net()\nresult = my_nn(random_data)\nprint (result)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:23.965Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":96,"estimatedTokens":674}}258{"id":"doc-save_a_customer_s_payment_method_without_making_-35917d7c","source":"documentation","title":"Save a customer's payment method without making a payment | Stripe Documentation","url":"https://docs.stripe.com/payments/save-and-reuse","text":"Example:\n```text\n# Available as a gem\nsudo gem install stripe\n```\n\nExample:\n```text\n# If you use bundler, you can add this line to your Gemfile\ngem 'stripe'\n```\n\nExample:\n```text\ncurl -X POST https://api.stripe.com/v2/core/accounts \\\n -H \"Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2\" \\\n -H \"Stripe-Version: 2026-07-29.preview\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/checkout/sessions \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"customer_account={{CUSTOMER_ACCOUNT_ID}}\" \\\n -d mode=setup \\\n -d ui_mode=elements \\\n -d currency=usd\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/payment_methods/{{PAYMENT_METHOD_ID}}/attach \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"customer_account={{CUSTOMER_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\ncurl -G https://api.stripe.com/v1/payment_methods \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"customer_account={{CUSTOMER_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/payment_intents \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d amount=1099 \\\n -d currency=usd \\\n -d \"customer_account={{CUSTOMER_ACCOUNT_ID}}\" \\\n -d \"payment_method={{PAYMENT_METHOD_ID}}\" \\\n -d off_session=true \\\n -d confirm=true\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/checkout/sessions \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"customer_account={{CUSTOMER_ACCOUNT_ID}}\" \\\n -d \"line_items[0][price_data][currency]=usd\" \\\n -d \"line_items[0][price_data][product_data][name]=T-shirt\" \\\n -d \"line_items[0][price_data][unit_amount]=1099\" \\\n -d \"line_items[0][quantity]=1\" \\\n -d mode=payment \\\n -d ui_mode=elements \\\n --data-urlencode \"return_url=https://example.com/return\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.209Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":70,"estimatedTokens":425}}259{"id":"doc-deliver_your_1099_tax_forms_stripe_documentation-59e113f6","source":"documentation","title":"Deliver your 1099 tax forms | Stripe Documentation","url":"https://docs.stripe.com/connect/deliver-tax-forms","text":"Example:\n```text\ncurl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n --data-urlencode \"email=jennyrosen@gmail.com\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.261Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":48}}260{"id":"doc-set_up_an_issuing_and_connect_integration_stripe-212ec40e","source":"documentation","title":"Set up an Issuing and Connect integration | Stripe Documentation","url":"https://docs.stripe.com/issuing/connect-v2","text":"Example:\n```text\ncurl -X POST https://api.stripe.com/v2/core/accounts \\\n -H \"Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2\" \\\n -H \"Stripe-Version: 2025-09-30.preview\" \\\n --json '{\n \"include\": [\n \"configuration.card_creator\",\n \"configuration.recipient\"\n ],\n \"contact_email\": \"test@example.com\",\n \"display_name\": \"John Smith\",\n \"identity\": {\n \"country\": \"gb\",\n \"entity_type\": \"individual\"\n },\n \"configuration\": {\n \"merchant\": {\n \"mcc\": \"5045\",\n \"statement_descriptor\": {\n \"descriptor\": \"test1\"\n },\n \"support\": {\n \"phone\": \"7325460697\"\n }\n },\n \"card_creator\": {\n \"capabilities\": {\n \"commercial\": {\n \"stripe\": {\n \"charge_card\": {\n \"requested\": true\n }\n }\n }\n }\n },\n \"recipient\": {\n \"capabilities\": {\n \"stripe_balance\": {\n \"stripe_transfers\": {\n \"requested\": true\n }\n }\n }\n }\n },\n \"dashboard\": \"none\",\n \"defaults\": {\n \"currency\": \"gbp\",\n \"responsibilities\": {\n \"fees_collector\": \"application\",\n \"losses_collector\": \"application\"\n }\n }\n }'\n```\n\nExample:\n```text\n{\n \"id\": \"acct_123\",\n \"object\": \"v2.core.account\",\n \"applied_configurations\": [\n \"card_creator\", \"recipient\", \"merchant\"\n ],\n \"configuration\": {\n \"customer\": null,\n \"merchant\": null,\n \"recipient\": {\n \"capabilities\": {\n \"stripe_balance\": {\n \"stripe_transfers\": {\n \"requested\": true,\n \"status\": \"restricted\",\n \"status_details\": [\n {\n \"code\": \"requirements_past_due\",\n \"resolution\": \"provide_info\"\n }\n ]\n }\n }\n }\n },\n \"card_creator\": {\n \"capabilities\": {\n \"commercial\": {\n \"stripe\": {\n \"charge_card\": {\n \"requested\": true,\n \"status\": \"restricted\",\n \"status_details\": [\n {\n \"code\": \"requirements_past_due\",\n \"resolution\": \"provide_info\"\n }\n ]\n }\n }\n }\n }\n }\n },\n \"contact_email\": \"test@example.com\",\n \"created\": \"2025-06-18T00:48:16.000Z\",\n \"dashboard\": \"none\",\n \"identity\": null,\n \"defaults\": null,\n \"display_name\": \"John Smith\",\n \"metadata\": {},\n \"requirements\": null,\n \"livemode\": false\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/programs \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_program_beta=v2\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d platform_program=iprg_123 \\\n -d is_default=true\n```\n\nExample:\n```text\ncurl -G https://api.stripe.com/v2/core/accounts/acct_1234567890 \\\n -H \"Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2\" \\\n -H \"Stripe-Version: 2025-09-30.preview\" \\\n -d \"include[0]=identity\" \\\n -d \"include[1]=configuration.card_creator\"\n```\n\nExample:\n```text\ncurl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTED_ACCOUNT_ID}} \\\n -H \"Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2\" \\\n -H \"Stripe-Version: 2025-09-30.preview\" \\\n --json '{\n \"configuration\": {\n \"card_creator\": {\n \"capabilities\": {\n \"commercial\": {\n \"stripe\": {\n \"charge_card\": {\n \"requested\": true\n }\n }\n }\n }\n }\n }\n }'\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/account_links \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d account={{CONNECTED_ACCOUNT_ID}} \\\n --data-urlencode \"refresh_url=https://example.com/reauth\" \\\n --data-urlencode \"return_url=https://example.com/return\" \\\n -d type=account_onboarding\n```\n\nExample:\n```text\n{\n \"object\": \"account_link\",\n \"created\": 1612927106,\n \"expires_at\": 1612927406,\n \"url\": \"https://connect.stripe.com/setup/s/…\"\n}\n```\n\nExample:\n```text\ncurl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTED_ACCOUNT_ID}} \\\n -H \"Authorization: Bearer sk_test_BQokikJOvBiI2HlWgH4olfQ2\" \\\n -H \"Stripe-Version: 2025-09-30.preview\" \\\n --json '{\n \"include\": [\n \"configuration.card_creator\",\n \"requirements\"\n ],\n \"configuration\": {\n \"card_creator\": {\n \"capabilities\": {\n \"commercial\": {\n \"stripe\": {\n \"charge_card\": {\n \"requested\": true\n }\n }\n }\n }\n }\n }\n }'\n```\n\nExample:\n```text\n{\n \"id\": \"{{CONNECTED_ACCOUNT}}\",\n \"object\": \"v2.core.account\",\n \"applied_configurations\": [\n \"card_creator\"\n ],\n \"configuration\": {\n \"customer\": null,\n \"merchant\": null,\n \"recipient\": null,\n \"storer\": null,\n \"card_creator\": {\n \"capabilities\": {\n \"commercial\": {\n \"stripe\": {\n \"charge_card\": {\n \"requested\": true,\n \"status\": \"restricted\",\n \"status_details\": [\n {\n \"code\": \"requirements_past_due\",\n \"resolution\": \"provide_info\"\n }\n ]\n }\n }\n }\n }\n }\n },\n \"contact_email\": \"test@example.com\",\n \"created\": \"2025-06-18T00:48:16.000Z\",\n \"dashboard\": \"none\",\n \"identity\": null,\n \"defaults\": null,\n \"display_name\": \"Test Account\",\n \"metadata\": {},\n \"requirements\": {\n \"collector\": \"application\",\n \"entries\": [\n {\n \"awaiting_action_from\": \"user\",\n \"description\": \"identity.attestations.persons_provided.executives\",\n \"errors\": [],\n \"impact\": {\n \"restricts_capabilities\": [\n {\n \"capability\": \"commercial.stripe.charge_card\",\n \"configuration\": \"card_creator\",\n \"deadline\": {\n \"status\": \"past_due\"\n }\n }\n ]\n },\n \"minimum_deadline\": {\n \"status\": \"past_due\"\n },\n \"reference\": null,\n \"requested_reasons\": [\n {\n \"code\": \"routine_onboarding\"\n }\n ]\n }\n ]\n },\n \"livemode\": false\n}\n```\n\nExample:\n```text\n{\n \"created\": \"2025-06-18T02:08:15.025Z\",\n \"id\": \"evt_test_321\",\n \"object\": \"v2.core.event\",\n \"type\": \"v2.core.account[configuration.card_creator].capability_status_updated\",\n \"data\": {\n \"updated_capability\": \"commercial.stripe.charge_card\"\n },\n \"related_object\": {\n \"id\": \"acct_123\",\n \"type\": \"v2.core.account\",\n \"url\": \"/v2/core/accounts/{{CONNECTED_ACCOUNT}}?include=configuration.card_creator\"\n },\n \"changes\": ...,\n ...\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.282Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":297,"estimatedTokens":1757}}261{"id":"doc-tap_to_pay_stripe_documentation-dd6f8be5","source":"documentation","title":"Tap to Pay | Stripe Documentation","url":"https://docs.stripe.com/terminal/payments/setup-reader/tap-to-pay?platform=android","text":"Example:\n```text\ndependencies {\n implementation(\"com.stripe:stripeterminal-taptopay:5.8.0\")\n implementation(\"com.stripe:stripeterminal-core:5.8.0\")\n // ...\n}\n```\n\nExample:\n```text\nval config = TapToPayUxConfiguration.Builder()\n .tapZone(\n TapToPayUxConfiguration.TapZone.Front(0.5f, 0.3f)\n )\n .colors(\n TapToPayUxConfiguration.ColorScheme.Builder()\n .primary(TapToPayUxConfiguration.Color.Value(Color.parseColor(\"#FF008686\")))\n .success(TapToPayUxConfiguration.Color.Default)\n .error(TapToPayUxConfiguration.Color.Resource(android.R.color.holo_red_dark))\n .build()\n )\n .darkMode(\n TapToPayUxConfiguration.DarkMode.DARK\n )\n .build()\n\nTerminal.getInstance().setTapToPayUxConfiguration(config)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.322Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":31,"estimatedTokens":200}}262{"id":"doc-using_express_connected_accounts_stripe_document-6ca4d353","source":"documentation","title":"Using Express connected accounts | Stripe Documentation","url":"https://docs.stripe.com/connect/express-accounts","text":"Example:\n```text\ncurl https://api.stripe.com/v1/accounts \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d type=express\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d country=US \\\n -d type=express \\\n -d \"capabilities[card_payments][requested]=true\" \\\n -d \"capabilities[transfers][requested]=true\" \\\n -d business_type=individual \\\n --data-urlencode \"business_profile[url]=https://example.com\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/{{ACCOUNT_ID}}/persons \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d first_name=Jenny \\\n -d last_name=Rosen \\\n -d \"relationship[representative]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/account_links \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"account={{CONNECTED_ACCOUNT_ID}}\" \\\n --data-urlencode \"refresh_url=https://example.com/reauth\" \\\n --data-urlencode \"return_url=https://example.com/return\" \\\n -d type=account_onboarding\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.324Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":39,"estimatedTokens":251}}263{"id":"doc-regional_considerations_stripe_documentation-6358d24a","source":"documentation","title":"Regional considerations | Stripe Documentation","url":"https://docs.stripe.com/terminal/payments/regional?integration-country=BE","text":"Example:\n```text\ncurl https://api.stripe.com/v1/terminal/locations \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \\\n -d \"display_name\"=\"HQ\" \\\n -d \"address[line1]\"=\"Rue du Lombard 5-9\" \\\n -d \"address[city]\"=\"Bruxelles\" \\\n -d \"address[country]\"=\"BE\" \\\n -d \"address[postal_code]\"=\"1000\" \\\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.327Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":12,"estimatedTokens":76}}264{"id":"doc-upcoming_requirements_updates_stripe_documentati-771e4d80","source":"documentation","title":"Upcoming requirements updates | Stripe Documentation","url":"https://docs.stripe.com/connect/upcoming-requirements-updates","text":"Example:\n```text\n// Creating a connected account in Spain\ncurl https://api.stripe.com/v1/accounts \\\n -u sk_test_123: \\\n -H \"Stripe-Version: 2025-08-27.basil;experimental_onboarding_preview=v2\" \\\n -d 'type'='custom' \\\n -d 'country'='ES' \\\n -d 'capabilities[card_payments][requested]'='true' \\\n -d 'capabilities[card_payments][preview]'='true' \\\n -d 'capabilities[transfers][requested]'='true'\n{\n \"id\": \"acct_123\",\n ...\n \"requirements\": {...}\n ...\n}\n\n// Set the business name to enforce the account to be high risk\ncurl https://api.stripe.com/v1/accounts/acct_123 \\\n -u sk_test_123: \\\n -d \"business_profile[name]\"=\"example_high_risk\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_123/persons \\\n -u sk_test_123: \\\n -d first_name=Marie \\\n -d last_name=Dupont \\\n -d \"dob[day]\"=1 \\\n -d \"dob[month]\"=1 \\\n -d \"dob[year]\"=1901 \\\n -d \"relationship[owner]=true\" \\\n -d \"address[line1]\"=\"address_no_match\" \\\n -d \"address[city]\"=\"Madrid\" \\\n -d \"address[postal_code]\"=\"28001\"\n{\n \"id\": \"person_123\",\n ...\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_123 \\\n -u sk_test_123: \\\n -d \"company[owners_provided]\"=\"true\"\n```\n\nExample:\n```text\n{\n \"requirements\": {\n \"past_due\": [\n \"people.person_123.address.city\",\n \"people.person_123.address.line1\",\n \"people.person_123.address.postal_code\",\n \"people.person_123.first_name\",\n \"people.person_123.last_name\"\n ],\n \"errors\": [\n {\n \"code\": \"verification_failed_keyed_identity\",\n \"requirement\": \"people.person_123.address.city\"\n },\n {\n \"code\": \"verification_failed_keyed_identity\",\n \"requirement\": \"people.person_123.address.line1\"\n },\n {\n \"code\": \"verification_failed_keyed_identity\",\n \"requirement\": \"people.person_123.address.postal_code\"\n },\n {\n \"code\": \"verification_failed_keyed_identity\",\n \"requirement\": \"people.person_123.first_name\"\n },\n {\n \"code\": \"verification_failed_keyed_identity\",\n \"requirement\": \"people.person_123.last_name\"\n }\n ],\n \"alternatives\": [\n {\n \"original_fields_due\": [\n \"people.person_123.address.city\",\n \"people.person_123.address.line1\",\n \"people.person_123.address.postal_code\",\n \"people.person_123.first_name\",\n \"people.person_123.last_name\"\n ],\n \"alternative_fields_due\": [\n \"people.person_123.verification.additional_document\"\n ]\n },\n {\n \"original_fields_due\": [\n \"people.person_123.address.city\",\n \"people.person_123.address.line1\",\n \"people.person_123.address.postal_code\",\n \"people.person_123.first_name\",\n \"people.person_123.last_name\"\n ],\n \"alternative_fields_due\": [\n \"people.person_123.verification.proof_of_liveness\"\n ]\n }\n ]\n }\n}\n```\n\nExample:\n```text\n// Example: verification_data_not_found error\n{\n \"requirements\": {\n \"errors\": [{\n \"requirement\": \"owners\",\n \"code\": \"verification_data_not_found\",\n \"reason\": \"Stripe was unable to retrieve ownership or director information from third-party providers based on the current legal entity details. Verify that the business information on the account is correct.\"\n }]\n }\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts \\\n -u sk_test_123: \\\n -H \"Stripe-Version: 2026-01-28.preview;experimental_onboarding_preview=v2\" \\\n -d 'type'='custom' \\\n -d 'country'='ES' \\\n -d 'capabilities[card_payments][requested]'='true' \\\n -d 'capabilities[card_payments][preview]'='true' \\\n -d 'capabilities[transfers][requested]'='true' \\\n -d 'capabilities[transfers][preview]'='true'\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d business_type=individual \\\n -d \"business_profile[mcc]\"=5995 \\\n -d \"business_profile[url]\"=\"https://accessible.stripe.com\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Marie\" \\\n -d \"last_name=Dupont\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=test@example.com\" \\\n -d \"phone=%2B35366666666\" \\\n -d \"nationality=ES\" \\\n -d \"relationship[representative]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d \"tos_acceptance[date]=1540248693\" \\\n -d \"tos_acceptance[ip]=10.0.0.1\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/external_accounts \\\n -u sk_test_123: \\\n -d \"external_account[object]=bank_account\" \\\n -d \"external_account[account_number]=ES0700120345030000067890\" \\\n -d \"external_account[country]=ES\" \\\n -d \"external_account[currency]=EUR\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d business_type=company \\\n -d \"business_profile[mcc]\"=5995 \\\n -d \"business_profile[url]\"=\"https://accessible.stripe.com\" \\\n -d \"company[name]=Test company\" \\\n -d \"company[phone]=628123456787\" \\\n -d \"company[address][line1]=address_full_match\" \\\n -d \"company[address][city]=Madrid\" \\\n -d \"company[address][postal_code]=28009\" \\\n -d \"company[address][country]=ES\" \\\n -d \"company[tax_id]=000000000\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Adam\" \\\n -d \"last_name=\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=test@example.com\" \\\n -d \"phone=%2B35366666666\" \\\n -d \"nationality=ES\" \\\n -d \"relationship[representative]=true\" \\\n -d \"relationship[title]=CEO\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123:\n```\n\nExample:\n```text\n{\n \"alternative_fields_due\": [\n \"company.owners_provided\",\n \"documents.proof_of_ultimate_beneficial_ownership.files\",\n \"owners.first_name\",\n \"owners.last_name\"\n ],\n \"original_fields_due\": [\n \"company.owners_provided\",\n \"owners.first_name\",\n \"owners.last_name\"\n ]\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Marie\" \\\n -d \"last_name=Dupont\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=owner@example.com\" \\\n -d \"relationship[owner]=true\"\n\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Louis\" \\\n -d \"last_name=Martin\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=owner@example.com\" \\\n -d \"relationship[owner]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d \"company[owners_provided]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d business_type=company \\\n -d \"business_profile[mcc]\"=5995 \\\n -d \"business_profile[url]\"=\"https://accessible.stripe.com\" \\\n -d \"company[name]=Test company\" \\\n -d \"company[phone]=628123456787\" \\\n -d \"company[address][line1]=address_full_match\" \\\n -d \"company[address][city]=Madrid\" \\\n -d \"company[address][postal_code]=28009\" \\\n -d \"company[address][country]=ES\" \\\n -d \"company[tax_id]=222221001\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Marie\" \\\n -d \"last_name=Dupont\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=test@example.com\" \\\n -d \"phone=%2B35366666666\" \\\n -d \"nationality=ES\" \\\n -d \"relationship[representative]=true\" \\\n -d \"relationship[title]=CEO\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Adam\" \\\n -d \"last_name=Smith\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=owner@example.com\" \\\n -d \"relationship[owner]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d \"documents[proof_of_ultimate_beneficial_ownership][files][]\"=file_relationship_document_success\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123/persons \\\n -u sk_test_123: \\\n -d \"first_name=Adam\" \\\n -d \"last_name=Smith\" \\\n -d \"dob[year]=1901\" \\\n -d \"dob[month]=1\" \\\n -d \"dob[day]=1\" \\\n -d \"address[line1]=address_full_match\" \\\n -d \"address[city]=Madrid\" \\\n -d \"address[postal_code]=28009\" \\\n -d \"address[country]=ES\" \\\n -d \"email=owner@example.com\" \\\n -d \"relationship[director]=true\" \\\n -d \"relationship[title]=President\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d \"company[directors_provided]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_test_123 \\\n -u sk_test_123: \\\n -d \"company[name]=match_name_relationships\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.347Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":24,"totalLines":382,"estimatedTokens":2462}}265{"id":"doc-shared_payment_issued_tokens_stripe_api_referenc-cc2406bf","source":"documentation","title":"Shared Payment Issued Tokens | Stripe API Reference","url":"https://docs.stripe.com/api/shared-payment/issued-token","text":"Example:\n```text\n{ \"id\": \"spt_1RgaZcFPC5QUO6ZCDVZuVA8q\", \"object\": \"shared_payment.issued_token\", \"livemode\": false, \"created\": 1751500820, \"deactivated_at\": null, \"deactivated_reason\": null, \"payment_method\": \"pm_1RgaZbFPC5QUO6ZCe2ekOCNX\", \"seller_details\": { \"external_id\": null, \"network_business_profile\": \"profile_test_61TU90nIeGjU7NNVXA6TU90m7ISQWsBxpcx9lASWWXTk\" }, \"setup_future_usage\": null, \"shared_metadata\": {}, \"status\": \"active\", \"usage_details\": { \"amount_captured\": { \"value\": 0, \"currency\": \"usd\" } }, \"usage_limits\": { \"currency\": \"usd\", \"expires_at\": 1751587220, \"max_amount\": 1000 }}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/shared_payment/issued_tokens \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d payment_method={{PAYMENT_METHOD_ID}} \\ -d \"seller_details[network_business_profile]=profile_test_61TU90nIeGjU7NNVXA6TU90m7ISQWsBxpcx9lASWWXTk\" \\ -d \"usage_limits[currency]=usd\" \\ -d \"usage_limits[expires_at]=1751587220\" \\ -d \"usage_limits[max_amount]=1000\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.365Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":273}}266{"id":"doc-group_invoice_line_items_stripe_documentation-d832c20f","source":"documentation","title":"Group invoice line items | Stripe Documentation","url":"https://docs.stripe.com/invoicing/group-line-items","text":"Example:\n```text\nline_item.field_name\nline_item.description\n```\n\nExample:\n```text\nline_item.subscription.expand().metadata\n```\n\nExample:\n```text\n'PO Number' + line_item.invoice_item.expand().metadata['PO']\n```\n\nExample:\n```text\n'PO - ' + line_item.invoice_item.expand().metadata.purchase_order_number\n```\n\nExample:\n```text\nhas(line_item.invoice_item.expand().metadata.purchase_order_number)\n```\n\nExample:\n```text\nline_item.price.metadata.section\n```\n\nExample:\n```text\nhas(line_item.price.metadata.section)\n```\n\nExample:\n```text\n'Proration ' + (line_item.amount > 0 ? 'Debits' : 'Credits')\n```\n\nExample:\n```text\nline_item.proration\n```\n\nExample:\n```text\nline_item.description\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.405Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":52,"estimatedTokens":173}}267{"id":"doc-card_payments_without_bank_authentication_stripe-573a5876","source":"documentation","title":"Card payments without bank authentication | Stripe Documentation","url":"https://docs.stripe.com/payments/mobile/without-card-authentication","text":"Example:\n```text\nimport UIKit\nimport StripePaymentsUI\n\n@main\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {\n StripeAPI.defaultPublishableKey = \"pk_test_TYooMQauvdEDq54NiTphI7jx\"\n // do any other necessary launch configuration\n return true\n }\n}\n```\n\nExample:\n```text\nimport UIKit\nimport StripePaymentsUI\n\nclass CheckoutViewController: UIViewController {\n\n lazy var cardTextField: STPPaymentCardTextField = {\n let cardTextField = STPPaymentCardTextField()\n return cardTextField\n }()\n lazy var payButton: UIButton = {\n let button = UIButton(type: .custom)\n button.layer.cornerRadius = 5\n button.backgroundColor = .systemBlue\n button.titleLabel?.font = UIFont.systemFont(ofSize: 22)\n button.setTitle(\"Pay\", for: .normal)\n button.addTarget(self, action: #selector(pay), for: .touchUpInside)\n return button\n }()\n\n override func viewDidLoad() {\n super.viewDidLoad()\n view.backgroundColor = .white\n let stackView = UIStackView(arrangedSubviews: [cardTextField, payButton])\n stackView.axis = .vertical\n stackView.spacing = 20\n stackView.translatesAutoresizingMaskIntoConstraints = false\n view.addSubview(stackView)\n NSLayoutConstraint.activate([\n stackView.leftAnchor.constraint(equalToSystemSpacingAfter: view.leftAnchor, multiplier: 2),\n view.rightAnchor.constraint(equalToSystemSpacingAfter: stackView.rightAnchor, multiplier: 2),\n stackView.topAnchor.constraint(equalToSystemSpacingBelow: view.safeAreaLayoutGuide.topAnchor, multiplier: 2),\n ])\n }\n\n @objc\n func pay() {\n // ...\n }\n}\n```\n\nExample:\n```text\nfunc pay() {\n // Create a PaymentMethod with the card text field's card details\n STPAPIClient.shared.createPaymentMethod(with: cardTextField.paymentMethodParams) { (paymentMethod, error) in\n guard let paymentMethod = paymentMethod else {\n // Display the error to the customer\n return\n }\n let paymentMethodID = paymentMethod.stripeId\n // Send paymentMethodID to your server for the next step\n }\n}\n```\n\nExample:\n```text\n# Available as a gem\nsudo gem install stripe\n```\n\nExample:\n```text\n# If you use bundler, you can add this line to your Gemfile\ngem 'stripe'\n```\n\nExample:\n```text\n# Check the status of the PaymentIntent to make sure it succeeded\n\ncurl https://api.stripe.com/v1/payment_intents \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \\\n -d amount=1099 \\\n -d currency=usd \\\n\n# A PaymentIntent can be confirmed some time after creation,\n# but here we want to confirm (collect payment) immediately.\n -d confirm=true \\\n -d payment_method=\"{{PAYMENT_METHOD_ID}}\" \\\n\n# If the payment requires any follow-up actions from the\n# customer, like two-factor authentication, Stripe will error\n# and you will need to prompt them for a new payment method.\n -d error_on_requires_action=true\n```\n\nExample:\n```text\n{\n \"id\": \"pi_0FdpcX589O8KAxCGR6tGNyWj\",\n \"object\": \"payment_intent\",\n \"amount\": 1099,\n \"charges\": {\n \"object\": \"list\",\n \"data\": [\n {\n \"id\": \"ch_GA9w4aF29fYajT\",\n \"object\": \"charge\",\n \"amount\": 1099,\n \"refunded\": false,\n \"status\": \"succeeded\",\n }\n ]\n },\n \"client_secret\": \"pi_0FdpcX589O8KAxCGR6tGNyWj_secret_e00tjcVrSv2tjjufYqPNZBKZc\",\n \"currency\": \"usd\",\n \"last_payment_error\": null,\n \"status\": \"succeeded\",\n}\n```\n\nExample:\n```text\n{\n \"error\": {\n \"code\": \"authentication_required\",\n \"decline_code\": \"authentication_not_handled\",\n \"doc_url\": \"https://docs.stripe.com/error-codes#authentication-required\",\n \"message\": \"This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.\",\n \"payment_intent\": {\n \"id\": \"pi_1G8JtxDpqHItWkFAnB32FhtI\",\n \"object\": \"payment_intent\",\n \"amount\": 1099,\n \"status\": \"requires_payment_method\",\n \"last_payment_error\": {\n \"code\": \"authentication_required\",\n \"decline_code\": \"authentication_not_handled\",\n \"doc_url\": \"https://docs.stripe.com/error-codes#authentication-required\",\n \"message\": \"This payment required an authentication action to complete, but `error_on_requires_action` was set. When you're ready, you can upgrade your integration to handle actions at https://stripe.com/docs/payments/payment-intents/upgrade-to-handle-actions.\",\n \"type\": \"card_error\"\n },\n },\n \"type\": \"card_error\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.425Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":158,"estimatedTokens":1205}}268{"id":"doc-create_a_setupintent_stripe_api_reference-de150190","source":"documentation","title":"Create a SetupIntent | Stripe API Reference","url":"https://docs.stripe.com/api/setup_intents/create","text":"Example:\n```text\ncurl https://api.stripe.com/v1/setup_intents \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d \"automatic_payment_methods[enabled]=true\"\n```\n\nExample:\n```text\n{ \"id\": \"seti_1Mm8s8LkdIwHu7ix0OXBfTRG\", \"object\": \"setup_intent\", \"application\": null, \"automatic_payment_methods\": { \"enabled\": true }, \"cancellation_reason\": null, \"client_secret\": \"seti_1Mm8s8LkdIwHu7ix0OXBfTRG_secret_NXDICkPqPeiBTAFqWmkbff09lRmSVXe\", \"created\": 1678942624, \"customer\": null, \"description\": null, \"flow_directions\": null, \"last_setup_error\": null, \"latest_attempt\": null, \"livemode\": false, \"mandate\": null, \"metadata\": {}, \"next_action\": null, \"on_behalf_of\": null, \"payment_method\": null, \"payment_method_options\": { \"card\": { \"mandate_options\": null, \"network\": null, \"request_three_d_secure\": \"automatic\" } }, \"payment_method_types\": [ \"card\" ], \"single_use_mandate\": null, \"status\": \"requires_payment_method\", \"usage\": \"off_session\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/setup_intents/{{SETUP_INTENT_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d \"metadata[order_id]=6735\"\n```\n\nExample:\n```text\n{ \"id\": \"seti_1Mm8s8LkdIwHu7ix0OXBfTRG\", \"object\": \"setup_intent\", \"application\": null, \"cancellation_reason\": null, \"client_secret\": \"seti_1Mm8s8LkdIwHu7ix0OXBfTRG_secret_NXDICkPqPeiBTAFqWmkbff09lRmSVXe\", \"created\": 1678942624, \"customer\": null, \"description\": null, \"flow_directions\": null, \"last_setup_error\": null, \"latest_attempt\": null, \"livemode\": false, \"mandate\": null, \"metadata\": { \"order_id\": \"6735\" }, \"next_action\": null, \"on_behalf_of\": null, \"payment_method\": null, \"payment_method_options\": { \"card\": { \"mandate_options\": null, \"network\": null, \"request_three_d_secure\": \"automatic\" } }, \"payment_method_types\": [ \"card\" ], \"single_use_mandate\": null, \"status\": \"requires_payment_method\", \"usage\": \"off_session\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/setup_intents/{{SETUP_INTENT_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\"\n```\n\nExample:\n```text\n{ \"id\": \"seti_1Mm8s8LkdIwHu7ix0OXBfTRG\", \"object\": \"setup_intent\", \"application\": null, \"cancellation_reason\": null, \"client_secret\": \"seti_1Mm8s8LkdIwHu7ix0OXBfTRG_secret_NXDICkPqPeiBTAFqWmkbff09lRmSVXe\", \"created\": 1678942624, \"customer\": null, \"description\": null, \"flow_directions\": null, \"last_setup_error\": null, \"latest_attempt\": null, \"livemode\": false, \"mandate\": null, \"metadata\": {}, \"next_action\": null, \"on_behalf_of\": null, \"payment_method\": null, \"payment_method_options\": { \"card\": { \"mandate_options\": null, \"network\": null, \"request_three_d_secure\": \"automatic\" } }, \"payment_method_types\": [ \"card\" ], \"single_use_mandate\": null, \"status\": \"requires_payment_method\", \"usage\": \"off_session\"}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.442Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":31,"estimatedTokens":744}}269{"id":"doc-build_a_custom_checkout_page_that_includes_link_-0d63b3d5","source":"documentation","title":"Build a custom checkout page that includes Link | Stripe Documentation","url":"https://docs.stripe.com/payments/link/add-link-elements-integration","text":"Example:\n```text\n# Available as a gem\nsudo gem install stripe\n```\n\nExample:\n```text\n# If you use bundler, you can add this line to your Gemfile\ngem 'stripe'\n```\n\nExample:\n```text\nget '/secret' do\n intent = # ... Create or retrieve the PaymentIntent\n {client_secret: intent.client_secret}.to_json\nend\n```\n\nExample:\n```text\n(async () => {\n const response = await fetch('/secret');\n const {client_secret: clientSecret} = await response.json();\n // Render the form using the clientSecret\n})();\n```\n\nExample:\n```text\nnpm install --save @stripe/react-stripe-js @stripe/stripe-js\n```\n\nExample:\n```text\nimport {loadStripe} from \"@stripe/stripe-js\";\nimport {\n Elements,\n ContactDetailsElement,\n PaymentElement,\n} from \"@stripe/react-stripe-js\";\n\nconst stripe = loadStripe('pk_test_TYooMQauvdEDq54NiTphI7jx');\n\n// Customize the appearance of Elements using the Appearance API.\nconst appearance = {/* ... */};\n\n// Enable the skeleton loader UI for the optimal loading experience.\nconst loader = 'auto';\n```\n\nExample:\n```text\n<ContactDetailsElement onChange={(event) => {\n setEmail(event.value.email);\n}} />\n```\n\nExample:\n```text\n<ContactDetailsElement options={{defaultValues: {email: 'foo@bar.com'}}}/>\n```\n\nExample:\n```text\nimport {loadStripe} from \"@stripe/stripe-js\";\nimport {\n useStripe,\n useElements,\n Elements,\n LinkAuthenticationElement,\n PaymentElement,\n // If collecting shipping\n AddressElement,\n} from \"@stripe/react-stripe-js\";\n\nconst stripe = loadStripe('pk_test_TYooMQauvdEDq54NiTphI7jx');\n\nconst appearance = {/* ... */};\n\n// Enable the skeleton loader UI for the optimal loading experience.\nconst loader = 'auto';\n\nconst CheckoutPage =({clientSecret}) => (\n <Elements stripe={stripe} options={{clientSecret, appearance, loader}}>\n <CheckoutForm />\n </Elements>\n);\n\nexport default function CheckoutForm() {\n const stripe = useStripe();\n const elements = useElements();\n\n const handleSubmit = async (event) => {\n event.preventDefault();\n\n const {error} = await stripe.confirmPayment({\n elements,\n confirmParams: {\n return_url: \"https://example.com/order/123/complete\",\n },\n });\n\n if (error) {\n // handle error\n }\n };\n\n return (\n <form onSubmit={handleSubmit}>\n <h3>Contact info</h3>\n <LinkAuthenticationElement />\n {/* If collecting shipping */}\n <h3>Shipping</h3>\n <AddressElement options={{mode: 'shipping', allowedCountries: ['US']}} />\n <h3>Payment</h3>\n <PaymentElement />\n\n <button type=\"submit\">Submit</button>\n </form>\n );\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:27.444Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":126,"estimatedTokens":643}}270{"id":"doc-save_a_customer_s_payment_method_when_they_use_i-7658b033","source":"documentation","title":"Save a customer's payment method when they use it for a payment | Stripe Documentation","url":"https://docs.stripe.com/payments/save-during-payment?platform=web&ui=elements","text":"Example:\n```text\ncurl https://api.stripe.com/v1/checkout/sessions \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"line_items[0][price]={{PRICE_ID}}\" \\\n -d \"line_items[0][quantity]=2\" \\\n -d mode=payment \\\n -d ui_mode=elements \\\n -d customer_creation=always \\\n -d \"saved_payment_method_options[payment_method_save]=enabled\"\n```\n\nExample:\n```text\nconst checkout = stripe.initCheckoutElementsSdk({\n clientSecret,\n elementsOptions: {\n savedPaymentMethod: {\n // Default is 'auto' in the latest version of Stripe.js - this configuration is optional\n enableSave: 'auto',\n }\n }\n});\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/checkout/sessions \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"line_items[0][price]={{PRICE_ID}}\" \\\n -d \"line_items[0][quantity]=2\" \\\n -d mode=payment \\\n -d ui_mode=elements \\\n -d \"customer_account={{CUSTOMER_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\nconst checkout = stripe.initCheckoutElementsSdk({\n clientSecret,\n elementsOptions: {\n savedPaymentMethod: {\n // Default is 'auto' in the latest version of Stripe.js - this configuration is optional\n enableSave: 'auto',\n // Default is 'auto' in the latest version of Stripe.js - this configuration is optional\n enableRedisplay: 'auto',\n }\n }\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.042Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":52,"estimatedTokens":325}}271{"id":"doc-customize_redirect_behavior_stripe_documentation-2c18eb41","source":"documentation","title":"Customize redirect behavior | Stripe Documentation","url":"https://docs.stripe.com/payments/checkout/custom-success-page","text":"Example:\n```text\n# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.\n# Find your keys at https://dashboard.stripe.com/apikeys.\nclient = Stripe::StripeClient.new('sk_test_BQokikJOvBiI2HlWgH4olfQ2')\n\nsession = client.v1.checkout.sessions.create(\n success_url: \"http://yoursite.com/order/success\",\n success_url: \"http://yoursite.com/order/success?session_id={CHECKOUT_SESSION_ID}\",\n # other options...,\n)\n```\n\nExample:\n```text\n# This example sets up an endpoint using the Sinatra framework.\n\n\n# Don't put any keys in code. See https://docs.stripe.com/keys-best-practices.\nclient = Stripe::StripeClient.new('sk_test_BQokikJOvBiI2HlWgH4olfQ2')\n\nrequire 'sinatra'\n\nget '/order/success' do\n session = client.v1.checkout.sessions.retrieve(params[:session_id])\n customer_account = client.v2.core.accounts.retrieve(session.customer_account)\n\n \"<html><body><h1>Thanks for your order, #{customer_account.display_name}!</h1></body></html>\"\nend\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.055Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":32,"estimatedTokens":246}}272{"id":"doc-payment_method_configurations_stripe_api_referen-9bc4f03e","source":"documentation","title":"Payment Method Configurations | Stripe API Reference","url":"https://docs.stripe.com/api/payment_method_configurations?api-version=2025-09-30.preview","text":"Example:\n```text\n{ \"id\": \"pmc_abcdef\", \"object\": \"payment_method_configuration\", \"acss_debit\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"active\": true, \"affirm\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"afterpay_clearpay\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"alipay\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"apple_pay\": { \"available\": true, \"display_preference\": { \"overridable\": null, \"preference\": \"on\", \"value\": \"on\" } }, \"bancontact\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"card\": { \"available\": true, \"display_preference\": { \"overridable\": null, \"preference\": \"on\", \"value\": \"on\" } }, \"cartes_bancaires\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"eps\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"giropay\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"google_pay\": { \"available\": true, \"display_preference\": { \"overridable\": null, \"preference\": \"on\", \"value\": \"on\" } }, \"ideal\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"is_default\": true, \"klarna\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"link\": { \"available\": true, \"display_preference\": { \"overridable\": null, \"preference\": \"on\", \"value\": \"on\" } }, \"livemode\": false, \"name\": \"Default\", \"p24\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"sepa_debit\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"sofort\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"us_bank_account\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }, \"wechat_pay\": { \"available\": false, \"display_preference\": { \"overridable\": null, \"preference\": \"off\", \"value\": \"off\" } }}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/payment_method_configurations \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Version: 2025-09-30.preview\" \\ -d name=\"Buy Now Pay Laters\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.062Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":795}}273{"id":"doc-payment_link_stripe_api_reference-18b01cec","source":"documentation","title":"Payment Link | Stripe API Reference","url":"https://docs.stripe.com/api/payment-link?api-version=2025-09-30.preview","text":"Example:\n```text\n{ \"id\": \"plink_1MoC3ULkdIwHu7ixZjtGpVl2\", \"object\": \"payment_link\", \"active\": true, \"after_completion\": { \"hosted_confirmation\": { \"custom_message\": null }, \"type\": \"hosted_confirmation\" }, \"allow_promotion_codes\": false, \"application_fee_amount\": null, \"application_fee_percent\": null, \"automatic_tax\": { \"enabled\": false, \"liability\": null }, \"billing_address_collection\": \"auto\", \"consent_collection\": null, \"currency\": \"usd\", \"custom_fields\": [], \"custom_text\": { \"shipping_address\": null, \"submit\": null }, \"customer_creation\": \"if_required\", \"invoice_creation\": { \"enabled\": false, \"invoice_data\": { \"account_tax_ids\": null, \"custom_fields\": null, \"description\": null, \"footer\": null, \"issuer\": null, \"metadata\": {}, \"rendering_options\": null } }, \"livemode\": false, \"metadata\": {}, \"on_behalf_of\": null, \"payment_intent_data\": null, \"payment_method_collection\": \"always\", \"payment_method_types\": null, \"phone_number_collection\": { \"enabled\": false }, \"shipping_address_collection\": null, \"shipping_options\": [], \"submit_type\": \"auto\", \"subscription_data\": { \"description\": null, \"invoice_settings\": { \"issuer\": { \"type\": \"self\" } }, \"trial_period_days\": null }, \"tax_id_collection\": { \"enabled\": false }, \"transfer_data\": null, \"url\": \"https://buy.stripe.com/test_cN25nr0iZ7bUa7meUY\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/payment_links \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Version: 2025-09-30.preview\" \\ -d \"line_items[0][price]\"={{PRICE_ID}} \\ -d \"line_items[0][quantity]\"=1\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.066Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":432}}274{"id":"doc-financing_summary_stripe_api_reference-d0ab9791","source":"documentation","title":"Financing Summary | Stripe API Reference","url":"https://docs.stripe.com/api/capital/financing_summary?api-version=2025-09-30.preview","text":"Example:\n```text\n{ \"object\": \"capital.financing_summary\", \"details\": { \"advance_amount\": 100000, \"advance_paid_out_at\": 1688424277.0578003, \"currency\": \"usd\", \"current_repayment_interval\": null, \"fee_amount\": 10000, \"paid_amount\": 100263, \"remaining_amount\": 9737, \"repayments_begin_at\": 1688424277.0577993, \"withhold_rate\": 0.05 }, \"financing_offer\": \"financingoffer_1NPvU12eZvKYlo2CotjdGRzu\", \"status\": \"accepted\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/capital/financing_summary \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Version: 2025-09-30.preview\" \\ -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.067Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":178}}275{"id":"doc-collect_on_reader_tips_stripe_documentation-eddd4dee","source":"documentation","title":"Collect on-reader tips | Stripe Documentation","url":"https://docs.stripe.com/terminal/features/collecting-tips/on-reader","text":"Example:\n```text\ncurl https://api.stripe.com/v1/terminal/configurations \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"tipping[usd][percentages][]=15\" \\\n -d \"tipping[usd][percentages][]=20\" \\\n -d \"tipping[usd][percentages][]=25\" \\\n -d \"tipping[usd][fixed_amounts][]=100\" \\\n -d \"tipping[usd][fixed_amounts][]=200\" \\\n -d \"tipping[usd][fixed_amounts][]=300\" \\\n -d \"tipping[usd][smart_tip_threshold]=1000\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/terminal/readers/tmr_xxx/process_payment_intent \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"payment_intent=<payment_intent>\" \\\n -d \"process_config[skip_tipping]=true\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/terminal/readers/tmr_xxx/process_payment_intent \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"payment_intent=<payment_intent>\" \\\n -d \"process_config[tipping][amount_eligible]=1500\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.079Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":30,"estimatedTokens":225}}276{"id":"doc-list_all_readers_stripe_api_reference-c05bf421","source":"documentation","title":"List all Readers | Stripe API Reference","url":"https://docs.stripe.com/api/terminal/readers/list","text":"Example:\n```text\ncurl -G https://api.stripe.com/v1/terminal/readers \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d limit=3\n```\n\nExample:\n```text\n{ \"object\": \"list\", \"url\": \"/v1/terminal/readers\", \"has_more\": false, \"data\": [ { \"id\": \"tmr_FDOt2wlRZEdpd7\", \"object\": \"terminal.reader\", \"action\": null, \"device_sw_version\": \"2.37.2.0\", \"device_type\": \"simulated_wisepos_e\", \"ip_address\": \"0.0.0.0\", \"label\": \"Blue Rabbit\", \"last_seen_at\": 1681320543815, \"livemode\": false, \"location\": \"tml_FDOtHwxAAdIJOh\", \"metadata\": {}, \"serial_number\": \"259cd19c-b902-4730-96a1-09183be6e7f7\", \"status\": \"online\" } ]}\n```\n\nExample:\n```text\ncurl -X DELETE https://api.stripe.com/v1/terminal/readers/{{READER_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\"\n```\n\nExample:\n```text\n{ \"id\": \"tmr_FDOt2wlRZEdpd7\", \"object\": \"terminal.reader\", \"deleted\": true}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/terminal/readers/{{READER_ID}}/activate_gift_card \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d brand=svs \\ -d \"balance[amount]=5000\" \\ -d \"balance[currency]=usd\"\n```\n\nExample:\n```text\n{ \"id\": \"tmr_GkoLBwI8ngxx08\", \"object\": \"terminal.reader\", \"action\": { \"activate_gift_card\": {}, \"api_error\": null, \"failure_code\": null, \"failure_message\": null, \"status\": \"in_progress\", \"type\": \"activate_gift_card\" }, \"device_sw_version\": \"\", \"device_type\": \"simulated_wisepos_e\", \"ip_address\": \"0.0.0.0\", \"label\": \"simulated-wpe-e448e0d1-388f-40cd-b30f-ca82de03ced6\", \"last_seen_at\": 1783521571548, \"livemode\": false, \"location\": \"tml_GczOlAw6Yx2UMe\", \"metadata\": {}, \"serial_number\": \"e448e0d1-388f-40cd-b30f-ca82de03ced6\", \"status\": \"online\"}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.087Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":31,"estimatedTokens":463}}277{"id":"doc-lance_extension_duckdb-3383b4be","source":"documentation","title":"Lance Extension – DuckDB","url":"https://duckdb.org/docs/current/core_extensions/lance","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS\n\nExample:\n```text\nINSTALL lance;\nLOAD lance;\n```\n\nExample:\n```text\nSELECT *\nFROM 'path/to/dataset.lance'\nLIMIT 10;\n```\n\nExample:\n```text\nSELECT *\nFROM 's3://bucket/path/to/out.lance'\nLIMIT 10;\n```\n\nExample:\n```text\nCREATE SECRET (\n TYPE lance,\n PROVIDER credential_chain,\n SCOPE 's3://bucket/'\n);\n\nSELECT *\nFROM 's3://bucket/path/to/out.lance'\nLIMIT 10;\n```\n\nExample:\n```text\n-- Create/overwrite a Lance dataset from a query\nCOPY (\n SELECT 1::BIGINT AS id, 'a'::VARCHAR AS s\n UNION ALL\n SELECT 2::BIGINT AS id, 'b'::VARCHAR AS s\n) TO 'path/to/dataset.lance' (\n FORMAT lance,\n MODE 'overwrite'\n);\n\n-- Read it back via the replacement scan\nSELECT count(*) FROM 'path/to/dataset.lance';\n\n-- Append more rows to an existing dataset\nCOPY (\n SELECT 3::BIGINT AS id, 'c'::VARCHAR AS s\n) TO 'path/to/dataset.lance' (\n FORMAT lance,\n MODE 'append'\n);\n\n-- Optionally create an empty dataset (schema only)\nCOPY (\n SELECT 1::BIGINT AS id, 'x'::VARCHAR AS s\n WITH NO DATA\n) TO 'path/to/empty.lance' (\n FORMAT lance,\n MODE 'overwrite',\n WRITE_EMPTY_FILE true\n);\n```\n\nExample:\n```text\nCREATE SECRET (\n TYPE lance,\n PROVIDER credential_chain,\n SCOPE 's3://bucket/'\n);\n\nCOPY (SELECT 1 AS id)\nTO 's3://bucket/path/to/out.lance'\n(FORMAT lance, MODE 'overwrite');\n```\n\nExample:\n```text\nATTACH 'path/to/dir' AS lance_ns (TYPE lance);\n\n-- Schema-only (creates an empty dataset)\nCREATE TABLE lance_ns.main.my_empty (id BIGINT, s VARCHAR);\n\n-- CTAS (writes query results)\nCREATE TABLE lance_ns.main.my_dataset AS\n SELECT 1::BIGINT AS id, 'a'::VARCHAR AS s\n UNION ALL\n SELECT 2::BIGINT AS id, 'b'::VARCHAR AS s;\n\nSELECT count(*) FROM lance_ns.main.my_dataset;\n```\n\nExample:\n```text\n-- Search a vector column, returning distances in `_distance` (smaller is closer)\nSELECT id, label, _distance\nFROM lance_vector_search(\n 'path/to/dataset.lance', 'vec',\n [0.1, 0.2, 0.3, 0.4]::FLOAT[4],\n k = 5,\n prefilter = true\n)\nORDER BY _distance ASC;\n```\n\nExample:\n```text\n-- Search a text column, returning BM25-like scores in `_score`\nSELECT id, text, _score\nFROM lance_fts(\n 'path/to/dataset.lance',\n 'text',\n 'puppy',\n k = 10,\n prefilter = true\n)\nORDER BY _score DESC;\n```\n\nExample:\n```text\n-- Combine vector and text scores, returning `_hybrid_score` in addition to `_distance` / `_score`\nSELECT id, _hybrid_score, _distance, _score\nFROM lance_hybrid_search('path/to/dataset.lance',\n 'vec', [0.1, 0.2, 0.3, 0.4]::FLOAT[4],\n 'text', 'puppy',\n k = 10, prefilter = false,\n alpha = 0.5, oversample_factor = 4)\nORDER BY _hybrid_score DESC;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:30.985Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":10,"totalLines":138,"estimatedTokens":687}}278{"id":"doc-deploying_duckdb_wasm_duckdb-0a14a89e","source":"documentation","title":"Deploying DuckDB-Wasm – DuckDB","url":"https://duckdb.org/docs/current/clients/wasm/deploying_duckdb_wasm","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3\n\nExample:\n```text\nSET custom_extension_repository = 'https://some.endpoint.org/path/to/repository';\n```\n\nExample:\n```text\nSET allow_community_extensions = false;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:30.989Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":56}}279{"id":"doc-json_overview_duckdb-4bc866f7","source":"documentation","title":"JSON Overview – DuckDB","url":"https://duckdb.org/docs/current/data/json/overview","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2 1.1 1.0 0.10\n\nExample:\n```text\nSELECT * FROM 'todos.json';\n```\n\nExample:\n```text\nSELECT *\nFROM read_json('todos.json',\n format = 'array',\n columns = {userId: 'UBIGINT',\n id: 'UBIGINT',\n title: 'VARCHAR',\n completed: 'BOOLEAN'});\n```\n\nExample:\n```text\ncat data/json/todos.json | duckdb -c \"SELECT * FROM read_json('/dev/stdin')\"\n```\n\nExample:\n```text\nCREATE TABLE todos (userId UBIGINT, id UBIGINT, title VARCHAR, completed BOOLEAN);\nCOPY todos FROM 'todos.json' (AUTO_DETECT true);\n```\n\nExample:\n```text\nCREATE TABLE todos AS\n SELECT * FROM 'todos.json';\n```\n\nExample:\n```text\nSELECT filename, *\nFROM 'todos-*.json';\n```\n\nExample:\n```text\nCOPY (SELECT * FROM todos) TO 'todos.json';\n```\n\nExample:\n```text\nCREATE TABLE example (j JSON);\nINSERT INTO example VALUES\n ('{ \"family\": \"anatidae\", \"species\": [ \"duck\", \"goose\", \"swan\", null ] }');\n```\n\nExample:\n```text\nSELECT j.family FROM example;\n```\n\nExample:\n```text\n\"anatidae\"\n```\n\nExample:\n```text\nSELECT j->'$.family' FROM example;\n```\n\nExample:\n```text\nSELECT j->>'$.family' FROM example;\n```\n\nExample:\n```text\nanatidae\n```\n\nExample:\n```text\nSELECT '{\"d[u]._\\\"ck\":42}'->'$.\"d[u]._\\\"ck\"' AS v;\n```\n\nExample:\n```text\n42\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:30.997Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":15,"totalLines":89,"estimatedTokens":336}}280{"id":"doc-sql_to_from_json_duckdb-ab47846d","source":"documentation","title":"SQL to/from JSON – DuckDB","url":"https://duckdb.org/docs/current/data/json/sql_to_and_from_json","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2 1.1\n\nExample:\n```text\nSELECT json_serialize_sql('SELECT 2');\n```\n\nExample:\n```text\n{\"error\":false,\"statements\":[{\"node\":{\"type\":\"SELECT_NODE\",\"modifiers\":[],\"cte_map\":{\"map\":[]},\"select_list\":[{\"class\":\"CONSTANT\",\"type\":\"VALUE_CONSTANT\",\"alias\":\"\",\"query_location\":7,\"value\":{\"type\":{\"id\":\"INTEGER\",\"type_info\":null},\"is_null\":false,\"value\":2}}],\"from_table\":{\"type\":\"EMPTY\",\"alias\":\"\",\"sample\":null,\"query_location\":18446744073709551615},\"where_clause\":null,\"group_expressions\":[],\"group_sets\":[],\"aggregate_handling\":\"STANDARD_HANDLING\",\"having\":null,\"sample\":null,\"qualify\":null},\"named_param_map\":[]}]}\n```\n\nExample:\n```text\nSELECT json_serialize_sql('SELECT 1 + 2; SELECT a + b FROM tbl1', skip_empty := true, skip_null := true);\n```\n\nExample:\n```text\n{\"error\":false,\"statements\":[{\"node\":{\"type\":\"SELECT_NODE\",\"select_list\":[{\"class\":\"FUNCTION\",\"type\":\"FUNCTION\",\"query_location\":9,\"function_name\":\"+\",\"children\":[{\"class\":\"CONSTANT\",\"type\":\"VALUE_CONSTANT\",\"query_location\":7,\"value\":{\"type\":{\"id\":\"INTEGER\"},\"is_null\":false,\"value\":1}},{\"class\":\"CONSTANT\",\"type\":\"VALUE_CONSTANT\",\"query_location\":11,\"value\":{\"type\":{\"id\":\"INTEGER\"},\"is_null\":false,\"value\":2}}],\"order_bys\":{\"type\":\"ORDER_MODIFIER\"},\"distinct\":false,\"is_operator\":true,\"export_state\":false}],\"from_table\":{\"type\":\"EMPTY\",\"query_location\":18446744073709551615},\"aggregate_handling\":\"STANDARD_HANDLING\"}},{\"node\":{\"type\":\"SELECT_NODE\",\"select_list\":[{\"class\":\"FUNCTION\",\"type\":\"FUNCTION\",\"query_location\":23,\"function_name\":\"+\",\"children\":[{\"class\":\"COLUMN_REF\",\"type\":\"COLUMN_REF\",\"query_location\":21,\"column_names\":[\"a\"]},{\"class\":\"COLUMN_REF\",\"type\":\"COLUMN_REF\",\"query_location\":25,\"column_names\":[\"b\"]}],\"order_bys\":{\"type\":\"ORDER_MODIFIER\"},\"distinct\":false,\"is_operator\":true,\"export_state\":false}],\"from_table\":{\"type\":\"BASE_TABLE\",\"query_location\":32,\"table_name\":\"tbl1\"},\"aggregate_handling\":\"STANDARD_HANDLING\"}}]}\n```\n\nExample:\n```text\nSELECT json_serialize_sql('SELECT 1 + 2; SELECT a + b FROM tbl1', skip_default := true, skip_empty := true, skip_null := true);\n```\n\nExample:\n```text\n{\"error\":false,\"statements\":[{\"node\":{\"type\":\"SELECT_NODE\",\"select_list\":[{\"class\":\"FUNCTION\",\"type\":\"FUNCTION\",\"query_location\":9,\"function_name\":\"+\",\"children\":[{\"class\":\"CONSTANT\",\"type\":\"VALUE_CONSTANT\",\"query_location\":7,\"value\":{\"type\":{\"id\":\"INTEGER\"},\"is_null\":false,\"value\":1}},{\"class\":\"CONSTANT\",\"type\":\"VALUE_CONSTANT\",\"query_location\":11,\"value\":{\"type\":{\"id\":\"INTEGER\"},\"is_null\":false,\"value\":2}}],\"order_bys\":{\"type\":\"ORDER_MODIFIER\"},\"is_operator\":true}],\"from_table\":{\"type\":\"EMPTY\"},\"aggregate_handling\":\"STANDARD_HANDLING\"}},{\"node\":{\"type\":\"SELECT_NODE\",\"select_list\":[{\"class\":\"FUNCTION\",\"type\":\"FUNCTION\",\"query_location\":23,\"function_name\":\"+\",\"children\":[{\"class\":\"COLUMN_REF\",\"type\":\"COLUMN_REF\",\"query_location\":21,\"column_names\":[\"a\"]},{\"class\":\"COLUMN_REF\",\"type\":\"COLUMN_REF\",\"query_location\":25,\"column_names\":[\"b\"]}],\"order_bys\":{\"type\":\"ORDER_MODIFIER\"},\"is_operator\":true}],\"from_table\":{\"type\":\"BASE_TABLE\",\"query_location\":32,\"table_name\":\"tbl1\"},\"aggregate_handling\":\"STANDARD_HANDLING\"}}]}\n```\n\nExample:\n```text\nSELECT json_serialize_sql('TOTALLY NOT VALID SQL');\n```\n\nExample:\n```text\n{\"error\":true,\"error_type\":\"parser\",\"error_message\":\"syntax error at or near \\\"TOTALLY\\\"\",\"error_subtype\":\"SYNTAX_ERROR\",\"position\":\"0\"}\n```\n\nExample:\n```text\nSELECT json_deserialize_sql(json_serialize_sql('SELECT 1 + 2'));\n```\n\nExample:\n```text\nSELECT (1 + 2)\n```\n\nExample:\n```text\nSELECT json_deserialize_sql(json_serialize_sql('FROM x SELECT 1 + 2'));\n```\n\nExample:\n```text\nSELECT (1 + 2) FROM x\n```\n\nExample:\n```text\nSELECT * FROM json_execute_serialized_sql(json_serialize_sql('SELECT 1 + 2'));\n```\n\nExample:\n```text\n3\n```\n\nExample:\n```text\nSELECT * FROM json_execute_serialized_sql(json_serialize_sql('TOTALLY NOT VALID SQL'));\n```\n\nExample:\n```text\nParser Error:\nError parsing json: parser: syntax error at or near \"TOTALLY\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.006Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":16,"totalLines":84,"estimatedTokens":998}}281{"id":"doc-dot_commands_duckdb-381116df","source":"documentation","title":"Dot Commands – DuckDB","url":"https://duckdb.org/docs/current/clients/cli/dot_commands","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2\n\nExample:\n```text\n.help m\n```\n\nExample:\n```text\n.maxrows COUNT Sets the maximum number of rows for display (default: 40). Only for duckbox mode.\n.maxwidth COUNT Sets the maximum width in characters. 0 defaults to terminal width. Only for duckbox mode.\n.mode MODE ?TABLE? Set output mode\n```\n\nExample:\n```text\n.mode markdown\n.output my_results.md\nSELECT 'taking flight' AS output_column;\n.output\nSELECT 'back to the terminal' AS displayed_column;\n```\n\nExample:\n```text\n| output_column |\n| ------------- |\n| taking flight |\n```\n\nExample:\n```text\n| displayed_column |\n| -------------------- |\n| back to the terminal |\n```\n\nExample:\n```text\n.mode csv\n.once my_output_file.csv\nSELECT 1 AS col_1, 2 AS col_2\nUNION ALL\nSELECT 10 AS col1, 20 AS col_2;\n```\n\nExample:\n```csv\ncol_1,col_2\n1,2\n10,20\n```\n\nExample:\n```text\n.once -e\nSELECT 'quack' AS hello;\n```\n\nExample:\n```text\nCREATE TABLE swimmers AS SELECT 'duck' AS animal;\nCREATE TABLE fliers AS SELECT 'duck' AS animal;\nCREATE TABLE walkers AS SELECT 'duck' AS animal;\n.tables\n```\n\nExample:\n```text\nfliers swimmers walkers\n```\n\nExample:\n```text\n.tables %l%\n```\n\nExample:\n```text\nfliers walkers\n```\n\nExample:\n```text\n.schema\n```\n\nExample:\n```text\nCREATE TABLE fliers (animal VARCHAR);\nCREATE TABLE swimmers (animal VARCHAR);\nCREATE TABLE walkers (animal VARCHAR);\n```\n\nExample:\n```text\n.dump\n```\n\nExample:\n```text\n.dump %swim%\n```\n\nExample:\n```text\n.dump --newlines\n```\n\nExample:\n```text\nSELECT * FROM duckdb_settings() WHERE name = 'enable_progress_bar';\n```\n\nExample:\n```text\nSELECT * FROM duckdb_settings() WHERE name = 'progress_bar_time';\n```\n\nExample:\n```text\nSET progress_bar_time = 100;\n```\n\nExample:\n```text\n.progress_bar --add \"{align:right}{min_size:20}{color:red}Time: {sql:select (current_time::varchar).split('.')[1]}{color:reset} \"\n```\n\nExample:\n```text\n.progress_bar --add \"{align:right}{min_size:20}{color:blue}External Cache Usage: {sql:select format_bytes(memory_usage_bytes) from duckdb_memory() where tag='EXTERNAL_FILE_CACHE'}{color:reset};\n```\n\nExample:\n```text\n.progress_bar --clear\n```\n\nExample:\n```text\n.highlight off\n```\n\nExample:\n```text\n.highlight on\n```\n\nExample:\n```text\n.constant [red|green|yellow|blue|magenta|cyan|white|brightblack|brightred|brightgreen|brightyellow|brightblue|brightmagenta|brightcyan|brightwhite]\n```\n\nExample:\n```text\n.constantcode terminal_code\n```\n\nExample:\n```text\n.constantcode 033[31m\n```\n\nExample:\n```text\n.keyword [red|green|yellow|blue|magenta|cyan|white|brightblack|brightred|brightgreen|brightyellow|brightblue|brightmagenta|brightcyan|brightwhite]\n```\n\nExample:\n```text\n.keywordcode terminal_code\n```\n\nExample:\n```text\n.keywordcode 033[31m\n```\n\nExample:\n```text\n.highlight_colors layout red\n.highlight_colors column_type yellow\n.highlight_colors column_name yellow bold_underline\n.highlight_colors numeric_value cyan underline\n.highlight_colors temporal_value red bold\n.highlight_colors string_value green bold\n.highlight_colors footer gray\n```\n\nExample:\n```text\n.mo ma\n```\n\nExample:\n```text\n.mode markdown\n```\n\nExample:\n```text\n.import data.csv my_table\n```\n\nExample:\n```text\n.import data.csv my_table --delimiter \"|\" --header false\n```\n\nExample:\n```text\n.import data.json my_table --json\n```\n\nExample:\n```text\n.import data.parquet my_table\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.030Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":38,"totalLines":221,"estimatedTokens":838}}282{"id":"doc-comment_on_statement_duckdb-f1b2e215","source":"documentation","title":"COMMENT ON Statement – DuckDB","url":"https://duckdb.org/docs/current/sql/statements/comment_on","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2 1.1 1.0 0.10\n\nExample:\n```text\nCOMMENT ON TABLE test_table IS 'very nice table';\n```\n\nExample:\n```text\nCOMMENT ON COLUMN test_table.test_table_column IS 'very nice column';\n```\n\nExample:\n```text\nCOMMENT ON VIEW test_view IS 'very nice view';\n```\n\nExample:\n```text\nCOMMENT ON INDEX test_index IS 'very nice index';\n```\n\nExample:\n```text\nCOMMENT ON SEQUENCE test_sequence IS 'very nice sequence';\n```\n\nExample:\n```text\nCOMMENT ON TYPE test_type IS 'very nice type';\n```\n\nExample:\n```text\nCOMMENT ON MACRO test_macro IS 'very nice macro';\n```\n\nExample:\n```text\nCOMMENT ON MACRO TABLE test_table_macro IS 'very nice table macro';\n```\n\nExample:\n```text\nCOMMENT ON TABLE test_table IS NULL;\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_tables();\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_columns();\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_views();\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_indexes();\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_sequences();\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_types();\n```\n\nExample:\n```text\nSELECT comment FROM duckdb_functions();\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.083Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":16,"totalLines":83,"estimatedTokens":293}}283{"id":"doc-directly_read_duckdb_databases_duckdb-4d26cc4d","source":"documentation","title":"Directly Read DuckDB Databases – DuckDB","url":"https://duckdb.org/docs/current/guides/file_formats/read_duckdb","text":"⌘K ctrl+k 1.5 current 1.5current\n\nExample:\n```text\nread_duckdb('path_to_database', table_name = 'table_to_read');\n```\n\nExample:\n```text\nSELECT r_regionkey, r_name\nFROM read_duckdb('https://blobs.duckdb.org/data/tpch-sf10.db', table_name = 'region');\n```\n\nExample:\n```text\n┌─────────────┬─────────────┐\n│ r_regionkey │ r_name │\n│ int32 │ varchar │\n├─────────────┼─────────────┤\n│ 0 │ AFRICA │\n│ 1 │ AMERICA │\n│ 2 │ ASIA │\n│ 3 │ EUROPE │\n│ 4 │ MIDDLE EAST │\n└─────────────┴─────────────┘\n```\n\nExample:\n```text\nduckdb my-1.duckdb \\\n -c \"CREATE TABLE numbers AS SELECT 42 AS x;\" \\\n -c \"CREATE TABLE letters AS SELECT 'm' AS a;\"\n\nduckdb my-2.duckdb \\\n -c \"CREATE TABLE numbers AS SELECT 43 AS x;\"\n```\n\nExample:\n```text\nSELECT x FROM read_duckdb('my-*.duckdb', table_name = 'numbers');\n```\n\nExample:\n```text\n┌───────┐\n│ x │\n│ int32 │\n├───────┤\n│ 42 │\n│ 43 │\n└───────┘\n```\n\nExample:\n```text\nFROM read_duckdb('my-2.duckdb');\n```\n\nExample:\n```text\n┌───────┐\n│ x │\n│ int32 │\n├───────┤\n│ 3 │\n└───────┘\n```\n\nExample:\n```text\nFROM 'my-2.duckdb';\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.113Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":9,"totalLines":74,"estimatedTokens":291}}284{"id":"doc-command_line_duckdb-d66243b0","source":"documentation","title":"Command Line – DuckDB","url":"https://duckdb.org/docs/current/guides/troubleshooting/command_line","text":"⌘K ctrl+k 1.5 current 1.5current\n\nExample:\n```text\nduckdb https://blobs.duckdb.org/data/tpch-sf1.db\n```\n\nExample:\n```text\nExtension Autoloading Error:\nAn error occurred while trying to automatically install the required extension 'httpfs':\nInitialization function \"httpfs_duckdb_cpp_init\" from file \".../.duckdb/extensions/v1.5.2/osx_arm64/httpfs.duckdb_extension\" threw an exception:\n\"Schema with name main does not exist!\"\n```\n\nExample:\n```text\nduckdb duckdb:https://blobs.duckdb.org/data/tpch-sf1.db\n```\n\nExample:\n```text\necho \"SELECT 42 AS x;\" > test.sql\n```\n\nExample:\n```text\nduckdb < test.sql\n# does not run the script\n```\n\nExample:\n```text\nduckdb < test.sql | cat\n```\n\nExample:\n```text\n┌───────┐\n│ x │\n│ int32 │\n├───────┤\n│ 42 │\n└───────┘\n```\n\nExample:\n```text\nduckdb -f test.sql\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.139Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":52,"estimatedTokens":203}}285{"id":"doc-r_duckdb-c4841a9c","source":"documentation","title":"R – DuckDB","url":"https://duckdb.org/docs/current/dev/building/r","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2 1.1\n\nExample:\n```text\nMAKEFLAGS = -j8\n```\n\nExample:\n```text\nMAKEFLAGS = -j$(nproc)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.149Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":37}}286{"id":"doc-s3_iceberg_import_duckdb-43271fa3","source":"documentation","title":"S3 Iceberg Import – DuckDB","url":"https://duckdb.org/docs/current/guides/network_cloud_storage/s3_iceberg_import","text":"⌘K ctrl+k 1.5 current 1.5current 1.4LTS 1.3 1.2 1.1 1.0 0.10\n\nExample:\n```text\nINSTALL httpfs;\nINSTALL iceberg;\n```\n\nExample:\n```text\nLOAD httpfs;\nLOAD iceberg;\n```\n\nExample:\n```text\nCREATE SECRET (\n TYPE s3,\n KEY_ID 'AKIAIOSFODNN7EXAMPLE',\n SECRET 'wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY',\n REGION 'us-east-1'\n);\n```\n\nExample:\n```text\nCREATE SECRET (\n TYPE s3,\n PROVIDER credential_chain\n);\n```\n\nExample:\n```text\nSELECT *\nFROM iceberg_scan('s3://bucket/iceberg_table_folder/metadata/id.metadata.json');\n```\n\nExample:\n```text\nIO Error:\nCannot open file \"s3://bucket/iceberg_table_folder/metadata/version-hint.text\": No such file or directory\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.186Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":45,"estimatedTokens":170}}287{"id":"doc-no_useless_escape_eslint_pluggable_javascript_li-33477e54","source":"documentation","title":"no-useless-escape - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/no-useless-escape","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\nlet foo = \"hol\\a\"; // > foo = \"hola\"\nlet bar = `${foo}\\!`; // > bar = \"hola!\"\nlet baz = /\\:/ // same functionality with /:/\n```\n\nExample:\n```js\n/*eslint no-useless-escape: \"error\"*/\n\n\"\\'\";\n'\\\"';\n\"\\#\";\n\"\\e\";\n`\\\"`;\n`\\\"${foo}\\\"`;\n`\\#{foo}`;\n/\\!/;\n/\\@/;\n/[\\[]/;\n/[a-z\\-]/;\n```\n\nExample:\n```js\n/*eslint no-useless-escape: \"error\"*/\n\n\"\\\"\";\n'\\'';\n\"\\x12\";\n\"\\u00a9\";\n\"\\371\";\n\"xs\\u2111\";\n`\\``;\n`\\${${foo}}`;\n`$\\{${foo}}`;\n/\\\\/g;\n/\\t/g;\n/\\w\\$\\*\\^\\./;\n/[[]/;\n/[\\]]/;\n/[a-z-]/;\n```\n\nExample:\n```js\n/*eslint no-useless-escape: [\"error\", { \"allowRegexCharacters\": [\"-\"] }]*/\n\n/\\!/;\n/\\@/;\n/[a-z\\^]/;\n```\n\nExample:\n```js\n/*eslint no-useless-escape: [\"error\", { \"allowRegexCharacters\": [\"-\"] }]*/\n\n/[0\\-]/;\n/[\\-9]/;\n/a\\-b/;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.672Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":66,"estimatedTokens":288}}288{"id":"doc-behind_a_proxy_fastapi-345e418c","source":"documentation","title":"Behind a Proxy - FastAPI","url":"https://fastapi.tiangolo.com/advanced/behind-a-proxy/","text":"FastAPI Behind a Proxy en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\nExample:\n```text\n$ uv run fastapi run --forwarded-allow-ips=\"*\"\n\n<span style=\"color: green;\">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)\n```\n\nExample:\n```text\nfrom fastapi import FastAPI\n\napp = FastAPI()\n\n\n@app.get(\"/items/\")\ndef read_items():\n return [\"plumbus\", \"portal gun\"]\n```\n\nExample:\n```text\nhttps://mysuperapp.com/items/\n```\n\nExample:\n```text\nsequenceDiagram\n participant Client\n participant Proxy as Proxy/Load Balancer\n participant Server as FastAPI Server\n\n Client->>Proxy: HTTPS Request<br/>Host: mysuperapp.com<br/>Path: /items\n\n Note over Proxy: Proxy adds forwarded headers\n\n Proxy->>Server: HTTP Request<br/>X-Forwarded-For: [client IP]<br/>X-Forwarded-Proto: https<br/>X-Forwarded-Host: mysuperapp.com<br/>Path: /items\n\n Note over Server: Server interprets headers<br/>(if --forwarded-allow-ips is set)\n\n Server->>Proxy: HTTP Response<br/>with correct HTTPS URLs\n\n Proxy->>Client: HTTPS Response\n```\n\nExample:\n```text\nfrom fastapi import FastAPI, Request\n\napp = FastAPI()\n\n\n@app.get(\"/app\")\ndef read_main(request: Request):\n return {\"message\": \"Hello World\", \"root_path\": request.scope.get(\"root_path\")}\n```\n\nExample:\n```text\ngraph LR\n\nbrowser(\"Browser\")\nproxy[\"Proxy on http://0.0.0.0:9999/api/v1/app\"]\nserver[\"Server on http://127.0.0.1:8000/app\"]\n\nbrowser --> proxy\nproxy --> server\n```\n\nExample:\n```text\n{\n \"openapi\": \"3.1.0\",\n // More stuff here\n \"servers\": [\n {\n \"url\": \"/api/v1\"\n }\n ],\n \"paths\": {\n // More stuff here\n }\n}\n```\n\nExample:\n```text\n$ uv run fastapi run main.py --forwarded-allow-ips=\"*\" --root-path /api/v1\n\n<span style=\"color: green;\">INFO</span>: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)\n```\n\nExample:\n```text\n{\n \"message\": \"Hello World\",\n \"root_path\": \"/api/v1\"\n}\n```\n\nExample:\n```text\nfrom fastapi import FastAPI, Request\n\napp = FastAPI(root_path=\"/api/v1\")\n\n\n@app.get(\"/app\")\ndef read_main(request: Request):\n return {\"message\": \"Hello World\", \"root_path\": request.scope.get(\"root_path\")}\n```\n\nExample:\n```text\n[entryPoints]\n [entryPoints.http]\n address = \":9999\"\n\n[providers]\n [providers.file]\n filename = \"routes.toml\"\n```\n\nExample:\n```text\n[http]\n [http.middlewares]\n\n [http.middlewares.api-stripprefix.stripPrefix]\n prefixes = [\"/api/v1\"]\n\n [http.routers]\n\n [http.routers.app-http]\n entryPoints = [\"http\"]\n service = \"app\"\n rule = \"PathPrefix(`/api/v1`)\"\n middlewares = [\"api-stripprefix\"]\n\n [http.services]\n\n [http.services.app]\n [http.services.app.loadBalancer]\n [[http.services.app.loadBalancer.servers]]\n url = \"http://127.0.0.1:8000\"\n```\n\nExample:\n```text\n$ ./traefik --configFile=traefik.toml\n\nINFO[0000] Configuration loaded from file: /home/user/awesomeapi/traefik.toml\n```\n\nExample:\n```text\nfrom fastapi import FastAPI, Request\n\napp = FastAPI(\n servers=[\n {\"url\": \"https://stag.example.com\", \"description\": \"Staging environment\"},\n {\"url\": \"https://prod.example.com\", \"description\": \"Production environment\"},\n ],\n root_path=\"/api/v1\",\n)\n\n\n@app.get(\"/app\")\ndef read_main(request: Request):\n return {\"message\": \"Hello World\", \"root_path\": request.scope.get(\"root_path\")}\n```\n\nExample:\n```text\n{\n \"openapi\": \"3.1.0\",\n // More stuff here\n \"servers\": [\n {\n \"url\": \"/api/v1\"\n },\n {\n \"url\": \"https://stag.example.com\",\n \"description\": \"Staging environment\"\n },\n {\n \"url\": \"https://prod.example.com\",\n \"description\": \"Production environment\"\n }\n ],\n \"paths\": {\n // More stuff here\n }\n}\n```\n\nExample:\n```text\nfrom fastapi import FastAPI, Request\n\napp = FastAPI(\n servers=[\n {\"url\": \"https://stag.example.com\", \"description\": \"Staging environment\"},\n {\"url\": \"https://prod.example.com\", \"description\": \"Production environment\"},\n ],\n root_path=\"/api/v1\",\n root_path_in_servers=False,\n)\n\n\n@app.get(\"/app\")\ndef read_main(request: Request):\n return {\"message\": \"Hello World\", \"root_path\": request.scope.get(\"root_path\")}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.387Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":16,"totalLines":217,"estimatedTokens":1119}}289{"id":"doc-separate_openapi_schemas_for_input_and_output_or-13687c27","source":"documentation","title":"Separate OpenAPI Schemas for Input and Output or Not - FastAPI","url":"https://fastapi.tiangolo.com/how-to/separate-openapi-schemas/","text":"FastAPI Separate OpenAPI Schemas for Input and Output or Not en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\nExample:\n```text\nfrom fastapi import FastAPI\nfrom pydantic import BaseModel\n\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\n# Code below omitted 👇\n```\n\nExample:\n```text\nfrom fastapi import FastAPI\nfrom pydantic import BaseModel\n\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\n\napp = FastAPI()\n\n\n@app.post(\"/items/\")\ndef create_item(item: Item):\n return item\n\n\n@app.get(\"/items/\")\ndef read_items() -> list[Item]:\n return [\n Item(\n name=\"Portal Gun\",\n description=\"Device to travel through the multi-rick-verse\",\n ),\n Item(name=\"Plumbus\"),\n ]\n```\n\nExample:\n```text\nfrom fastapi import FastAPI\nfrom pydantic import BaseModel\n\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\n\napp = FastAPI()\n\n\n@app.post(\"/items/\")\ndef create_item(item: Item):\n return item\n\n# Code below omitted 👇\n```\n\nExample:\n```text\nfrom fastapi import FastAPI\nfrom pydantic import BaseModel\n\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\n\napp = FastAPI(separate_input_output_schemas=False)\n\n\n@app.post(\"/items/\")\ndef create_item(item: Item):\n return item\n\n\n@app.get(\"/items/\")\ndef read_items() -> list[Item]:\n return [\n Item(\n name=\"Portal Gun\",\n description=\"Device to travel through the multi-rick-verse\",\n ),\n Item(name=\"Plumbus\"),\n ]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.418Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":97,"estimatedTokens":441}}290{"id":"doc-avoiding_sql_injection_risk_the_go_programming_l-bb99a27b","source":"documentation","title":"Avoiding SQL injection risk - The Go Programming Language","url":"https://go.dev/doc/database/sql-injection","text":"Avoiding SQL injection risk You can avoid an SQL injection risk by providing SQL parameter values as sql package function arguments. Many functions in the sql package provide parameters for the SQL statement and for values to be used in that statement’s parameters (others provide a parameter for a prepared statement and parameters). Code in the following example uses the ? symbol as a placeholder for the id parameter, which is provided as a function argument: // Correct format for executing an SQL statement with parameters. rows, err := db.Query(\"SELECT * FROM user WHERE id = ?\", id) sql package functions that perform database operations create prepared statements from the arguments you supply. At run time, the sql package turns the SQL statement into a prepared statement and sends it along with the parameter, which is separate. placeholders vary depending on the DBMS and driver you’re using. For example, pq driver for Postgres accepts a placeholder form such as $1 instead of ?. You might be tempted to use a function from the fmt package to assemble the SQL statement as a string with parameters included – like this: // SECURITY RISK! rows, err := db.Query(fmt.Sprintf(\"SELECT * FROM user WHERE id = %s\", id)) This is not secure! When you do this, Go assembles the entire SQL statement, replacing the %s format verb with the parameter value, before sending the full statement to the DBMS. This poses an SQL injection risk because the code’s caller could send an unexpected SQL snippet as the id argument. That snippet could complete the SQL statement in unpredictable ways that are dangerous to your application. For example, by passing a certain %s value, you might end up with something like the following, which could return all user records in your * FROM user WHERE id = 1 OR 1=1;\n\ngo.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. Okay\n\nExample:\n```text\n// Correct format for executing an SQL statement with parameters.\nrows, err := db.Query(\"SELECT * FROM user WHERE id = ?\", id)\n```\n\nExample:\n```text\n// SECURITY RISK!\nrows, err := db.Query(fmt.Sprintf(\"SELECT * FROM user WHERE id = %s\", id))\n```\n\nExample:\n```text\nSELECT * FROM user WHERE id = 1 OR 1=1;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.368Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":22,"estimatedTokens":567}}291{"id":"doc-rate_limits_for_imports_and_exports_of_project_a-81abefd2","source":"documentation","title":"Rate limits for imports and exports of project and groups | GitLab Docs","url":"https://docs.gitlab.com/administration/settings/import_export_rate_limits/","text":"Getting startedConfigure GitLabConfigure GitLab DuoUpdate your settingsEnable features behind feature flagsMaintain GitLabMonitor GitLabSecure GitLabComplianceInstance compliance and security policy managementRate limitsAbuse and failed authentication bansDeprecated APIGit HTTPGit LFSGit SSH operationsGit abuseImport and exportIncident managementIssue creationNote creationNon-configurable limitsOrganizations APIPackage registryProjects APIRaw endpointsRepository files APIUser and IPGroups APIUsers APIWebhook operationsFiltering outbound requestsManage the CRIME vulnerabilityIdentity verificationMake new users confirm emailRunnersProxying assetsTLS supportRotate secrets of third-party integrationsRespond to security incidentsGitLab Dedicated for Government shared responsibility modelGitLab Dedicated for Government secure configuration guideHardeningAdminister usersAdminister GitLab DedicatedAdminister GitLab RunnerGitLab Docs /Administer /Secure GitLab /Rate limits /Import and exportHelp us learn about your current experience with the documentation. Take the survey.Rate limits for imports and exports of project and , Premium, Self-ManagedYou can configure the rate limits for file imports and exports of projects and groups. For information on the default rate limits, see import and export rate limits.When a user exceeds a rate limit, it is logged in auth.log.Change an import or export rate access.To change a rate the upper-right corner, select Admin.In the left sidebar, select Settings > Network.Expand Import and export rate limits.Change the value of any rate limit. The rate limits are per minute per user, not per IP address. Set to 0 to disable a rate limit.Change an import or export rate limit\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.390Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":435}}292{"id":"doc-grpc_bridge_envoy_1_40_0_dev_743baa_documentatio-55f625f2","source":"documentation","title":"gRPC bridge — envoy 1.40.0-dev-743baa documentation","url":"https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/grpc-bridge","text":"Example:\n```text\n$ pwd\nexamples/grpc-bridge\n$ docker compose -f docker-compose-protos.yaml up\nStarting grpc-bridge_stubs_python_1 ... done\nStarting grpc-bridge_stubs_go_1 ... done\nAttaching to grpc-bridge_stubs_go_1, grpc-bridge_stubs_python_1\ngrpc-bridge_stubs_go_1 exited with code 0\ngrpc-bridge_stubs_python_1 exited with code 0\n```\n\nExample:\n```text\n$ docker container prune\n```\n\nExample:\n```text\n$ ls -la client/kv/kv_pb2.py\n-rw-r--r-- 1 mdesales CORP\\Domain Users 9527 Nov 6 21:59 client/kv/kv_pb2.py\n\n$ ls -la server/kv/kv.pb.go\n-rw-r--r-- 1 mdesales CORP\\Domain Users 9994 Nov 6 21:59 server/kv/kv.pb.go\n```\n\nExample:\n```text\n$ pwd\nexamples/grpc-bridge\n$ docker compose pull\n$ docker compose up --build -d\n$ docker compose ps\n\n Name Command State Ports\n---------------------------------------------------------------------------------------------------------------\ngrpc-bridge_grpc-client-proxy_1 /docker-entrypoint.sh /bin ... Up 10000/tcp, 0.0.0.0:9911->9911/tcp\ngrpc-bridge_grpc-client_1 /bin/sh -c tail -f /dev/null Up\ngrpc-bridge_grpc-server-proxy_1 /docker-entrypoint.sh /bin ... Up 10000/tcp, 0.0.0.0:8811->8811/tcp\ngrpc-bridge_grpc-server_1 /bin/sh -c /bin/server Up 0.0.0.0:8081->8081/tcp\n```\n\nExample:\n```text\n$ pwd\nexamples/grpc-bridge\n```\n\nExample:\n```text\n$ docker compose exec grpc-client python /client/grpc-kv-client.py set foo bar\nsetf foo to bar\n```\n\nExample:\n```text\n$ docker compose exec grpc-client python /client/grpc-kv-client.py get foo\nbar\n```\n\nExample:\n```text\n$ docker compose exec grpc-client python /client/grpc-kv-client.py set foo baz\nsetf foo to baz\n```\n\nExample:\n```text\n$ docker compose exec grpc-client python /client/grpc-kv-client.py get foo\nbaz\n```\n\nExample:\n```text\n$ docker compose logs grpc-server\ngrpc_1 | 2017/05/30 12:05:09 set: foo = bar\ngrpc_1 | 2017/05/30 12:05:12 get: foo\ngrpc_1 | 2017/05/30 12:05:18 set: foo = baz\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.331Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":81,"estimatedTokens":513}}293{"id":"doc-jaeger_tracing_envoy_1_40_0_dev_743baa_documenta-c7b051b5","source":"documentation","title":"Jaeger tracing — envoy 1.40.0-dev-743baa documentation","url":"https://www.envoyproxy.io/docs/envoy/latest/start/sandboxes/jaeger-tracing","text":"Example:\n```text\n$ pwd\nexamples/jaeger-tracing\n$ docker compose pull\n$ docker compose up --build -d\n$ docker compose ps\nNAME IMAGE COMMAND SERVICE CREATED STATUS PORTS\njaeger-tracing-front-envoy-1 jaeger-tracing-front-envoy \"/docker-entrypoint.…\" front-envoy 43 seconds ago Up 20 seconds 0.0.0.0:10000->10000/tcp\njaeger-tracing-jaeger-1 jaeger-tracing-jaeger \"/go/bin/all-in-one-…\" jaeger 43 seconds ago Up 25 seconds (healthy) 4317-4318/tcp, 5775/udp, 5778/tcp, 9411/tcp, 14250/tcp, 14268/tcp, 6831-6832/udp, 0.0.0.0:16686->16686/tcp\njaeger-tracing-service1-1 jaeger-tracing-service1 \"/usr/local/bin/star…\" service1 43 seconds ago Up 42 seconds (healthy)\njaeger-tracing-service2-1 jaeger-tracing-service2 \"/usr/local/bin/star…\" service2 43 seconds ago Up 42 seconds (healthy)\n```\n\nExample:\n```text\n$ curl -v localhost:10000/trace/1\ncurl -v localhost:10000/trace/1\n* Host localhost:10000 was resolved.\n* IPv6: ::1\n* IPv4: 127.0.0.1\n* Trying [::1]:10000...\n* Connected to localhost (::1) port 10000\n> GET /trace/1 HTTP/1.1\n> Host: localhost:10000\n> User-Agent: curl/8.6.0\n> Accept: */*\n>\n< HTTP/1.1 200 OK\n< content-type: text/plain; charset=utf-8\n< content-length: 79\n< date: Wed, 06 Nov 2024 17:06:59 GMT\n< server: envoy\n< x-envoy-upstream-service-time: 37\n<\nHello from behind Envoy (service 1)! hostname 1445fe2bbcb3 resolved 172.20.0.4\n* Connection #0 to host localhost left intact\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.331Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":40,"estimatedTokens":398}}294{"id":"doc-git_git_help_documentation-34167dab","source":"documentation","title":"Git - git-help Documentation","url":"http://git-scm.com/docs/git-help/pt_BR","text":"Example:\n```text\ngit help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]\ngit help [[-i|--info] [-m|--man] [-w|--web]] [<comando>|<guia>]\ngit help [-g|--guides]\ngit help [-c|--config]\ngit help [--user-interfaces]\ngit help [--developer-interfaces]\n```\n\nExample:\n```text\n[man]\n\t\tviewer = konqueror\n\t\tviewer = woman\n```\n\nExample:\n```text\n[man]\n\t\tviewer = konq\n\n\t[man \"konq\"]\n\t\tcmd = O_CAMINHO_PARA_O/konqueror\n```\n\nExample:\n```text\n$ git config --global help.format web\n$ git config --global web.browser firefox\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.097Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":33,"estimatedTokens":138}}295{"id":"doc-git_git_help_documentation-e6366fac","source":"documentation","title":"Git - git-help Documentation","url":"http://git-scm.com/docs/git-help/zh_HANS-CN","text":"Example:\n```text\ngit help [-a|--all] [--[no-]verbose] [--[no-]external-commands] [--[no-]aliases]\ngit help [[-i|--info] [-m|--man] [-w|--web]] [<命令>|<文档>]\ngit help [-g|--guides]\ngit help [-c|--config]\ngit help [--user-interfaces]\ngit help [--developer-interfaces]\n```\n\nExample:\n```text\n[man]\n\t\tviewer = konqueror\n\t\tviewer = woman\n```\n\nExample:\n```text\n[man]\n\t\tviewer = konq\n\n\t[man \"konq\"]\n\t\tcmd = A_PATH_TO/konqueror\n```\n\nExample:\n```text\n$ git config --global help.format web\n$ git config --global web.browser firefox\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.098Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":33,"estimatedTokens":134}}296{"id":"doc-no_case_declarations_eslint_pluggable_javascript-ef4edf09","source":"documentation","title":"no-case-declarations - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/no-case-declarations","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\n/*eslint no-case-declarations: \"error\"*/\n\nswitch (foo) {\n case 1:\n let x = 1;\n break;\n case 2:\n const y = 2;\n break;\n case 3:\n function f() {}\n break;\n default:\n class C {}\n}\n```\n\nExample:\n```js\n/*eslint no-case-declarations: \"error\"*/\n\n// Declarations outside switch-statements are valid\nconst a = 0;\n\nswitch (foo) {\n // The following case clauses are wrapped into blocks using brackets\n case 1: {\n let x = 1;\n break;\n }\n case 2: {\n const y = 2;\n break;\n }\n case 3: {\n function f() {}\n break;\n }\n case 4:\n // Declarations using var without brackets are valid due to function-scope hoisting\n var z = 4;\n break;\n default: {\n class C {}\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.737Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":53,"estimatedTokens":312}}297{"id":"doc-set_up_a_development_environment_eslint_pluggabl-42f44726","source":"documentation","title":"Set up a Development Environment - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/contribute/development-environment","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```shell\ngit clone https://github.com/<Your GitHub Username>/eslint\n```\n\nExample:\n```shell\ncd eslint\n```\n\nExample:\n```shell\nnpm install\n```\n\nExample:\n```shell\nyarn add\n```\n\nExample:\n```shell\npnpm add\n```\n\nExample:\n```shell\nbun add\n```\n\nExample:\n```shell\ngit remote add upstream git@github.com:eslint/eslint.git\n```\n\nExample:\n```shell\nnpm install --global yo\n```\n\nExample:\n```shell\nyarn global add yo\n```\n\nExample:\n```shell\npnpm add --global yo\n```\n\nExample:\n```shell\nbun add --global yo\n```\n\nExample:\n```shell\nnpm install --global generator-eslint\n```\n\nExample:\n```shell\nyarn global add generator-eslint\n```\n\nExample:\n```shell\npnpm add --global generator-eslint\n```\n\nExample:\n```shell\nbun add --global generator-eslint\n```\n\nExample:\n```shell\nnpm test\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.751Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":16,"totalLines":83,"estimatedTokens":298}}298{"id":"doc-migrating_to_v3_0_0_eslint_pluggable_javascript_-f2a8ddaa","source":"documentation","title":"Migrating to v3.0.0 - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/use/migrating-to-3.0.0","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```json\n{\n\t\"extends\": \"eslint:recommended\"\n}\n```\n\nExample:\n```json\n{\n\t\"extends\": \"eslint:recommended\",\n\t\"rules\": {\n\t\t\"no-unsafe-finally\": \"off\",\n\t\t\"no-native-reassign\": \"off\",\n\t\t\"complexity\": [\"off\", 11],\n\t\t\"comma-dangle\": \"error\",\n\t\t\"require-yield\": \"error\"\n\t}\n}\n```\n\nExample:\n```js\nvar result = engine.executeOnText(text, filename);\n```\n\nExample:\n```js\nvar result = engine.executeOnText(text, filename, true);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.755Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":34,"estimatedTokens":213}}299{"id":"doc-constructor_super_eslint_pluggable_javascript_li-13c34401","source":"documentation","title":"constructor-super - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/constructor-super","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\nclass A {\n constructor() {\n super();\n }\n}\n```\n\nExample:\n```js\n/*eslint constructor-super: \"error\"*/\n\nclass A extends B {\n constructor() { } // Would throw a ReferenceError.\n}\n\n// Classes which inherits from a non constructor are always problems.\nclass C extends null {\n constructor() {\n super(); // Would throw a TypeError.\n }\n}\n\nclass D extends null {\n constructor() { } // Would throw a ReferenceError.\n}\n```\n\nExample:\n```js\n/*eslint constructor-super: \"error\"*/\n\nclass A {\n constructor() { }\n}\n\nclass B extends C {\n constructor() {\n super();\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.755Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":47,"estimatedTokens":262}}300{"id":"doc-for_direction_eslint_pluggable_javascript_linter-753a0f96","source":"documentation","title":"for-direction - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/for-direction","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\n/*eslint for-direction: \"error\"*/\nfor (let i = 0; i < 10; i--) {\n}\n\nfor (let i = 10; i >= 0; i++) {\n}\n\nfor (let i = 0; i > 10; i++) {\n // counter i is on the left with >, so i++ (increasing) is the wrong direction\n}\n\nfor (let i = 0; i > 0; i++) {\n // counter i is on the left with >, so i++ (increasing) is the wrong direction\n}\n\nfor (let i = 0; 0 < i; i++) {\n // counter i is on the right with <, so i++ (increasing) is the wrong direction\n}\n\nfor (let i = 0; 10 > i; i--) {\n}\n\nconst n = -2;\nfor (let i = 0; i < 10; i += n) {\n}\n```\n\nExample:\n```js\n/*eslint for-direction: \"error\"*/\nfor (let i = 0; i < 10; i++) {\n}\n\nfor (let i = 0; 10 > i; i++) { // with counter \"i\" on the right\n}\n\nfor (let i = 10; i >= 0; i += this.step) { // direction unknown\n}\n\nfor (let i = MIN; i <= MAX; i -= 0) { // not increasing or decreasing\n}\n\nfor (let i = 0; i < 0; i++) {\n // counter i is on the left with <, so i++ (increasing) is the correct direction\n // (loop never executes, but direction is consistent)\n}\n\nfor (let i = 0; 0 > i; i++) {\n // counter i is on the right with >, so i++ (increasing) is the correct direction\n // (loop never executes, but direction is consistent)\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.759Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":58,"estimatedTokens":408}}301{"id":"doc-no_sparse_arrays_eslint_pluggable_javascript_lin-ea56d799","source":"documentation","title":"no-sparse-arrays - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/no-sparse-arrays","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\nconst items = [,,];\n```\n\nExample:\n```js\nconst colors = [ \"red\",, \"blue\" ];\n```\n\nExample:\n```js\n/*eslint no-sparse-arrays: \"error\"*/\n\nconst items = [,];\nconst colors = [ \"red\",, \"blue\" ];\n```\n\nExample:\n```js\n/*eslint no-sparse-arrays: \"error\"*/\n\nconst items = [];\nconst arr = new Array(23);\n\n// trailing comma (after the last element) is not a problem\nconst colors = [ \"red\", \"blue\", ];\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.776Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":32,"estimatedTokens":208}}302{"id":"doc-class_methods_use_this_eslint_pluggable_javascri-5f67ad94","source":"documentation","title":"class-methods-use-this - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/class-methods-use-this","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\nconst array1 = [1, 2, 3];\nconst array2 = [4, 5, 6];\n\n// Using the `includes()` method on different objects gives different results:\narray1.includes(1); // true\narray2.includes(1); // false\n\n// Modifying the state of an object may change the outcome of its instance methods:\narray2.push(1);\narray2.includes(1); // true\n```\n\nExample:\n```js\nclass Person {\n sayHi() {\n console.log(\"Hi!\");\n }\n}\n\nconst person = new Person();\nperson.sayHi(); // => \"Hi!\"\n```\n\nExample:\n```js\n// Ordinary function\nfunction sayHi() {\n\tconsole.log(\"Hi!\");\n}\n\n// No need for `Person` class or any instance thereof\nsayHi(); // => \"Hi!\"\n\n// Alternately, a static method may be used if it offers a more natural API\nclass Person {\n static sayHi() {\n console.log(\"Hi!\");\n }\n}\n\nPerson.sayHi(); // => \"Hi!\"\n\n// Keep in mind that, either way, the following now throws an error,\n// since sayHi() is no longer an instance method!\n//\n// const person = new Person();\n// person.sayHi();\n```\n\nExample:\n```js\nclass Person {\n\tconstructor(name) {\n\t\tthis.name = name;\n\t}\n\n\tsayHi() {\n\t\tconsole.log(`Hi from ${this.name}!`);\n\t}\n}\n\nconst alice = new Person('Alice');\nalice.sayHi(); // => 'Hi from Alice!'\n\nconst bob = new Person('Bob');\nbob.sayHi(); // => 'Hi from Bob!'\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: \"error\"*/\n\nclass A {\n foo() {\n console.log(\"Hello World\"); /* error Expected 'this' to be used by class method 'foo'. */\n }\n}\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: \"error\"*/\n\nclass A {\n foo() {\n this.bar = \"Hello World\"; // OK, `this` is used\n }\n}\n\nclass B {\n constructor() {\n // OK. constructor is exempt\n }\n}\n\nclass C {\n static foo() {\n // OK. static methods aren't expected to use this.\n }\n\n static {\n // OK. static blocks are exempt.\n }\n}\n```\n\nExample:\n```ts\n\"class-methods-use-this\": [<enabled>, { \"exceptMethods\": [<...exceptions>] }]\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: \"error\"*/\n\nclass A {\n foo() {\n }\n}\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: [\"error\", { \"exceptMethods\": [\"foo\", \"#bar\"] }] */\n\nclass A {\n foo() {\n }\n #bar() {\n }\n}\n```\n\nExample:\n```ts\n\"class-methods-use-this\": [<enabled>, { \"enforceForClassFields\": true | false }]\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: [\"error\", { \"enforceForClassFields\": true }] */\n\nclass A {\n foo = () => {}\n}\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: [\"error\", { \"enforceForClassFields\": true }] */\n\nclass A {\n foo = () => {this;}\n}\n```\n\nExample:\n```js\n/*eslint class-methods-use-this: [\"error\", { \"enforceForClassFields\": false }] */\n\nclass A {\n foo = () => {}\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"enforceForClassFields\": true }] */\n\nclass A {\n foo = () => {}\n accessor bar = () => {}\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"enforceForClassFields\": true }] */\n\nclass A {\n foo = () => {this;}\n accessor bar = () => {this;}\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"enforceForClassFields\": false }] */\n\nclass A {\n foo = () => {}\n accessor bar = () => {}\n}\n```\n\nExample:\n```ts\n\"class-methods-use-this\": [<enabled>, { \"ignoreOverrideMethods\": true | false }]\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreOverrideMethods\": false }] */\n\nabstract class Base {\n abstract method(): void;\n abstract property: () => void;\n}\n\nclass Derived extends Base {\n override method() {}\n override property = () => {};\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreOverrideMethods\": false }] */\n\nabstract class Base {\n abstract method(): void;\n abstract property: () => void;\n}\n\nclass Derived extends Base {\n override method() {\n this.foo = \"Hello World\";\n };\n override property = () => {\n this;\n };\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreOverrideMethods\": true }] */\n\nabstract class Base {\n abstract method(): void;\n abstract property: () => void;\n}\n\nclass Derived extends Base {\n override method() {}\n override property = () => {};\n}\n```\n\nExample:\n```ts\n\"class-methods-use-this\": [<enabled>, { \"ignoreClassesWithImplements\": \"all\" | \"public-fields\" }]\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreClassesWithImplements\": \"all\" }] */\n\nclass Standalone {\n method() {}\n property = () => {};\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreClassesWithImplements\": \"all\" }] */\n\ninterface Base {\n method(): void;\n}\n\nclass Derived implements Base {\n method() {}\n property = () => {};\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreClassesWithImplements\": \"public-fields\" }] */\n\ninterface Base {\n method(): void;\n}\n\nclass Derived implements Base {\n method() {}\n property = () => {};\n\n private privateMethod() {}\n private privateProperty = () => {};\n\n protected protectedMethod() {}\n protected protectedProperty = () => {};\n}\n```\n\nExample:\n```ts\n/*eslint class-methods-use-this: [\"error\", { \"ignoreClassesWithImplements\": \"public-fields\" }] */\n\ninterface Base {\n method(): void;\n}\n\nclass Derived implements Base {\n method() {}\n property = () => {};\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.789Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":25,"totalLines":318,"estimatedTokens":1439}}303{"id":"doc-no_use_before_define_eslint_pluggable_javascript-ece8ba62","source":"documentation","title":"no-use-before-define - ESLint - Pluggable JavaScript Linter","url":"https://eslint.org/docs/latest/rules/no-use-before-define","text":"Donate Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions Team Blog Docs Store Playground Code Explorer Versions Version Switcher Selecting a version will take you to the chosen version of the ESLint docs. Version HEAD v10.8.1 v9.39.5 v8.57.1 Previous Versions\n\nExample:\n```js\n/*eslint no-use-before-define: \"error\"*/\n\nalert(a);\nvar a = 10;\n\nf();\nfunction f() {}\n\nfunction g() {\n return b;\n}\nvar b = 1;\n\n{\n alert(c);\n let c = 1;\n}\n\n{\n class C extends C {}\n}\n\n{\n class C {\n static x = \"foo\";\n [C.x]() {}\n }\n}\n\n{\n const C = class {\n static x = C;\n }\n}\n\n{\n const C = class {\n static {\n C.x = \"foo\";\n }\n }\n}\n\nexport { foo };\nconst foo = 1;\n```\n\nExample:\n```js\n/*eslint no-use-before-define: \"error\"*/\n\nvar a;\na = 10;\nalert(a);\n\nfunction f() {}\nf(1);\n\nvar b = 1;\nfunction g() {\n return b;\n}\n\n{\n let c;\n c++;\n}\n\n{\n class C {\n static x = C;\n }\n}\n\n{\n const C = class C {\n static x = C;\n }\n}\n\n{\n const C = class {\n x = C;\n }\n}\n\n{\n const C = class C {\n static {\n C.x = \"foo\";\n }\n }\n}\n\nconst foo = 1;\nexport { foo };\n```\n\nExample:\n```json\n{\n \"no-use-before-define\": [\"error\", {\n \"functions\": true,\n \"classes\": true,\n \"variables\": true,\n \"allowNamedExports\": false,\n \"enums\": true,\n \"typedefs\": true,\n \"ignoreTypeReferences\": true\n }]\n}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"functions\": false }]*/\n\nf();\nfunction f() {}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"classes\": false }]*/\n\nnew A();\nclass A {\n}\n\n{\n class C extends C {}\n}\n\n{\n class C extends D {}\n class D {}\n}\n\n{\n class C {\n static x = \"foo\";\n [C.x]() {}\n }\n}\n\n{\n class C {\n static {\n new D();\n }\n }\n class D {}\n}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"classes\": false }]*/\n\nfunction foo() {\n return new A();\n}\n\nclass A {\n}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"variables\": false }]*/\n\nconsole.log(foo);\nvar foo = 1;\n\nf();\nconst f = () => {};\n\ng();\nconst g = function() {};\n\n{\n const C = class {\n static x = C;\n }\n}\n\n{\n const C = class {\n static x = foo;\n }\n const foo = 1;\n}\n\n{\n class C {\n static {\n this.x = foo;\n }\n }\n const foo = 1;\n}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"variables\": false }]*/\n\nfunction baz() {\n console.log(foo);\n}\nvar foo = 1;\n\nconst a = () => f();\nfunction b() { return f(); }\nconst c = function() { return f(); }\nconst f = () => {};\n\nconst e = function() { return g(); }\nconst g = function() {}\n\n{\n const C = class {\n x = foo;\n }\n const foo = 1;\n}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"allowNamedExports\": true }]*/\n\nexport { a, b, f, C };\n\nconst a = 1;\n\nlet b;\n\nfunction f () {}\n\nclass C {}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", { \"allowNamedExports\": true }]*/\n\nexport default a;\nconst a = 1;\n\nconst b = c;\nexport const c = 1;\n\nexport function foo() {\n return d;\n}\nconst d = 1;\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"enums\": true }]*/\n\nconst x = Foo.FOO;\n\nenum Foo {\n FOO,\n}\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"enums\": true }]*/\n\nenum Foo {\n FOO,\n}\n\nconst x = Foo.FOO;\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"typedefs\": true, \"ignoreTypeReferences\": false }]*/\n\nlet myVar: StringOrNumber;\n\ntype StringOrNumber = string | number;\n\nconst x: Foo = {};\n\ninterface Foo {}\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"typedefs\": true, \"ignoreTypeReferences\": false }]*/\n\ntype StringOrNumber = string | number;\n\nlet myVar: StringOrNumber;\n\ninterface Foo {}\n\nconst x: Foo = {};\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"ignoreTypeReferences\": false }]*/\n\nlet var1: StringOrNumber;\n\ntype StringOrNumber = string | number;\n\nlet var2: Enum;\n\nenum Enum {}\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"ignoreTypeReferences\": false }]*/\n\ntype StringOrNumber = string | number;\n\nlet myVar: StringOrNumber;\n\nenum Enum {}\n\nlet var2: Enum;\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", { \"ignoreTypeReferences\": false, \"typedefs\": false, }]*/\n\nlet myVar: StringOrNumber;\n\ntype StringOrNumber = string | number;\n\nconst x: Foo = {};\n\ninterface Foo {}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", \"nofunc\"]*/\n\na();\nvar a = function() {};\n\nconsole.log(foo);\nvar foo = 1;\n\nfunction f() {\n return b;\n}\nvar b = 1;\n\nnew A();\nclass A {\n}\n\nfunction g() {\n return new B();\n}\nclass B {\n}\n\nexport default bar;\nconst bar = 1;\n\nexport { baz };\nconst baz = 1;\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", \"nofunc\"]*/\n\nfunction foo(): Foo {\n\treturn Foo.FOO;\n}\n\t\nenum Foo {\n\tFOO,\n}\n```\n\nExample:\n```js\n/*eslint no-use-before-define: [\"error\", \"nofunc\"]*/\n\nf();\nfunction f() {}\n\nclass A {\n}\nnew A();\n\nvar a = 10;\nalert(a);\n\nconst foo = 1;\nexport { foo };\n\nconst bar = 1;\nexport default bar;\n```\n\nExample:\n```ts\n/*eslint no-use-before-define: [\"error\", \"nofunc\"]*/\n\t\nenum Foo {\n\tFOO,\n}\n\nconst foo = Foo.Foo;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:31.790Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":21,"totalLines":428,"estimatedTokens":1361}}304{"id":"doc-general_how_to_recipes_fastapi-c490fd21","source":"documentation","title":"General - How To - Recipes - FastAPI","url":"https://fastapi.tiangolo.com/how-to/general/","text":"FastAPI General - How To - Recipes en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.506Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":77}}305{"id":"doc-run_a_server_manually_fastapi-1451c578","source":"documentation","title":"Run a Server Manually - FastAPI","url":"https://fastapi.tiangolo.com/deployment/manually/","text":"FastAPI Run a Server Manually en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\nExample:\n```text\n$ <font color=\"#4E9A06\">fastapi</font> run <u style=\"text-decoration-style:solid\">main.py</u>\n\n <span style=\"background-color:#009485\"><font color=\"#D3D7CF\"> FastAPI </font></span> Starting production server 🚀\n\n Searching for package file structure from directories\n with <font color=\"#3465A4\">__init__.py</font> files\n Importing from <font color=\"#75507B\">/home/user/code/</font><font color=\"#AD7FA8\">awesomeapp</font>\n\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> module </font></span> 🐍 main.py\n\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> code </font></span> Importing the FastAPI app object from the module with\n the following code:\n\n <u style=\"text-decoration-style:solid\">from </u><u style=\"text-decoration-style:solid\"><b>main</b></u><u style=\"text-decoration-style:solid\"> import </u><u style=\"text-decoration-style:solid\"><b>app</b></u>\n\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> app </font></span> Using import string: <font color=\"#3465A4\">main:app</font>\n\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> server </font></span> Server started at <font color=\"#729FCF\"><u style=\"text-decoration-style:solid\">http://0.0.0.0:8000</u></font>\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> server </font></span> Documentation at <font color=\"#729FCF\"><u style=\"text-decoration-style:solid\">http://0.0.0.0:8000/docs</u></font>\n\n Logs:\n\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> INFO </font></span> Started server process <b>[</b><font color=\"#34E2E2\"><b>2306215</b></font><b>]</b>\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> INFO </font></span> Waiting for application startup.\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> INFO </font></span> Application startup complete.\n <span style=\"background-color:#007166\"><font color=\"#D3D7CF\"> INFO </font></span> Uvicorn running on <font color=\"#729FCF\"><u style=\"text-decoration-style:solid\">http://0.0.0.0:8000</u></font> <b>(</b>Press CTRL+C\n to quit<b>)</b>\n```\n\nExample:\n```text\n$ uv add \"uvicorn[standard]\"\n\n---> 100%\n```\n\nExample:\n```text\n$ uv run uvicorn main:app --host 0.0.0.0 --port 80\n\n<span style=\"color: green;\">INFO</span>: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)\n```\n\nExample:\n```text\nfrom main import app\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.507Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":53,"estimatedTokens":699}}306{"id":"doc-apirouter_class_fastapi-5e2052d6","source":"documentation","title":"APIRouter class - FastAPI","url":"https://fastapi.tiangolo.com/reference/apirouter/","text":"FastAPI APIRouter class en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\nExample:\n```text\nfrom fastapi import APIRouter\n```\n\nExample:\n```text\nAPIRouter(\n *,\n prefix=\"\",\n tags=None,\n dependencies=None,\n default_response_class=Default(JSONResponse),\n responses=None,\n callbacks=None,\n routes=None,\n redirect_slashes=True,\n default=None,\n dependency_overrides_provider=None,\n route_class=APIRoute,\n on_startup=None,\n on_shutdown=None,\n lifespan=None,\n deprecated=None,\n include_in_schema=True,\n generate_unique_id_function=Default(generate_unique_id),\n strict_content_type=Default(True)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\n\napp = FastAPI()\nrouter = APIRouter()\n\n\n@router.get(\"/users/\", tags=[\"users\"])\nasync def read_users():\n return [{\"username\": \"Rick\"}, {\"username\": \"Morty\"}]\n\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef __init__(\n self,\n *,\n prefix: Annotated[str, Doc(\"An optional path prefix for the router.\")] = \"\",\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to all the *path operations* in this\n router.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to all the\n *path operations* in this router.\n\n Read more about it in the\n [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).\n \"\"\"\n ),\n ] = None,\n default_response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n The default response class to be used.\n\n Read more in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses to be shown in OpenAPI.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).\n\n And in the\n [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n OpenAPI callbacks that should apply to all *path operations* in this\n router.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n routes: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n **Note**: you probably shouldn't use this parameter, it is inherited\n from Starlette and supported for compatibility.\n\n ---\n\n A list of routes to serve incoming HTTP and WebSocket requests.\n \"\"\"\n ),\n deprecated(\n \"\"\"\n You normally wouldn't use this parameter with FastAPI, it is inherited\n from Starlette and supported for compatibility.\n\n In FastAPI, you normally would use the *path operation methods*,\n like `router.get()`, `router.post()`, etc.\n \"\"\"\n ),\n ] = None,\n redirect_slashes: Annotated[\n bool,\n Doc(\n \"\"\"\n Whether to detect and redirect slashes in URLs when the client doesn't\n use the same format.\n \"\"\"\n ),\n ] = True,\n default: Annotated[\n ASGIApp | None,\n Doc(\n \"\"\"\n Default function handler for this router. Used to handle\n 404 Not Found errors.\n \"\"\"\n ),\n ] = None,\n dependency_overrides_provider: Annotated[\n Any | None,\n Doc(\n \"\"\"\n Only used internally by FastAPI to handle dependency overrides.\n\n You shouldn't need to use it. It normally points to the `FastAPI` app\n object.\n \"\"\"\n ),\n ] = None,\n route_class: Annotated[\n type[APIRoute],\n Doc(\n \"\"\"\n Custom route (*path operation*) class to be used by this router.\n\n Read more about it in the\n [FastAPI docs for Custom Request and APIRoute class](https://fastapi.tiangolo.com/how-to/custom-request-and-route/#custom-apiroute-class-in-a-router).\n \"\"\"\n ),\n ] = APIRoute,\n on_startup: Annotated[\n Sequence[Callable[[], Any]] | None,\n Doc(\n \"\"\"\n A list of startup event handler functions.\n\n You should instead use the `lifespan` handlers.\n\n Read more in the [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).\n \"\"\"\n ),\n ] = None,\n on_shutdown: Annotated[\n Sequence[Callable[[], Any]] | None,\n Doc(\n \"\"\"\n A list of shutdown event handler functions.\n\n You should instead use the `lifespan` handlers.\n\n Read more in the\n [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).\n \"\"\"\n ),\n ] = None,\n # the generic to Lifespan[AppType] is the type of the top level application\n # which the router cannot know statically, so we use typing.Any\n lifespan: Annotated[\n Lifespan[Any] | None,\n Doc(\n \"\"\"\n A `Lifespan` context manager handler. This replaces `startup` and\n `shutdown` functions with a single context manager.\n\n Read more in the\n [FastAPI docs for `lifespan`](https://fastapi.tiangolo.com/advanced/events/).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark all *path operations* in this router as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n To include (or not) all the *path operations* in this router in the\n generated OpenAPI.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n strict_content_type: Annotated[\n bool,\n Doc(\n \"\"\"\n Enable strict checking for request Content-Type headers.\n\n When `True` (the default), requests with a body that do not include\n a `Content-Type` header will **not** be parsed as JSON.\n\n This prevents potential cross-site request forgery (CSRF) attacks\n that exploit the browser's ability to send requests without a\n Content-Type header, bypassing CORS preflight checks. In particular\n applicable for apps that need to be run locally (in localhost).\n\n When `False`, requests without a `Content-Type` header will have\n their body parsed as JSON, which maintains compatibility with\n certain clients that don't send `Content-Type` headers.\n\n Read more about it in the\n [FastAPI docs for Strict Content-Type](https://fastapi.tiangolo.com/advanced/strict-content-type/).\n \"\"\"\n ),\n ] = Default(True),\n) -> None:\n # Determine the lifespan context to use\n if lifespan is None:\n # Use the default lifespan that runs on_startup/on_shutdown handlers\n lifespan_context: Lifespan[Any] = _DefaultLifespan(self)\n elif inspect.isasyncgenfunction(lifespan):\n lifespan_context = asynccontextmanager(lifespan)\n elif inspect.isgeneratorfunction(lifespan):\n lifespan_context = _wrap_gen_lifespan_context(lifespan)\n else:\n lifespan_context = lifespan\n self.lifespan_context = lifespan_context\n\n super().__init__(\n routes=routes,\n redirect_slashes=redirect_slashes,\n default=default,\n lifespan=lifespan_context,\n )\n if prefix:\n assert prefix.startswith(\"/\"), \"A path prefix must start with '/'\"\n assert not prefix.endswith(\"/\"), (\n \"A path prefix must not end with '/', as the routes will start with '/'\"\n )\n\n # Handle on_startup/on_shutdown locally since Starlette removed support\n # Ref: https://github.com/Kludex/starlette/pull/3117\n # TODO: deprecate this once the lifespan (or alternative) interface is improved\n self.on_startup: list[Callable[[], Any]] = (\n [] if on_startup is None else list(on_startup)\n )\n self.on_shutdown: list[Callable[[], Any]] = (\n [] if on_shutdown is None else list(on_shutdown)\n )\n\n self.prefix = prefix\n self.tags: list[str | Enum] = tags or []\n self.dependencies = list(dependencies or [])\n self.deprecated = deprecated\n self.include_in_schema = include_in_schema\n self.responses = responses or {}\n self.callbacks = callbacks or []\n self.dependency_overrides_provider = dependency_overrides_provider\n self.route_class = route_class\n self.default_response_class = default_response_class\n self.generate_unique_id_function = generate_unique_id_function\n self.strict_content_type = strict_content_type\n self._routes_version = 0\n self._low_priority_routes: list[BaseRoute] = []\n self._frontend_routes: _FrontendRouteGroup | None = None\n```\n\nExample:\n```text\nwebsocket(path, name=None, *, dependencies=None)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI, WebSocket\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.websocket(\"/ws\")\nasync def websocket_endpoint(websocket: WebSocket):\n await websocket.accept()\n while True:\n data = await websocket.receive_text()\n await websocket.send_text(f\"Message text was: {data}\")\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef websocket(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n WebSocket path.\n \"\"\"\n ),\n ],\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n A name for the WebSocket. Only used internally.\n \"\"\"\n ),\n ] = None,\n *,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be used for this\n WebSocket.\n\n Read more about it in the\n [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).\n \"\"\"\n ),\n ] = None,\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Decorate a WebSocket function.\n\n Read more about it in the\n [FastAPI docs for WebSockets](https://fastapi.tiangolo.com/advanced/websockets/).\n\n **Example**\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI, WebSocket\n\n app = FastAPI()\n router = APIRouter()\n\n @router.websocket(\"/ws\")\n async def websocket_endpoint(websocket: WebSocket):\n await websocket.accept()\n while True:\n data = await websocket.receive_text()\n await websocket.send_text(f\"Message text was: {data}\")\n\n app.include_router(router)\n ```\n \"\"\"\n\n def decorator(func: DecoratedCallable) -> DecoratedCallable:\n self.add_api_websocket_route(\n path, func, name=name, dependencies=dependencies\n )\n return func\n\n return decorator\n```\n\nExample:\n```text\ninclude_router(\n router,\n *,\n prefix=\"\",\n tags=None,\n dependencies=None,\n default_response_class=Default(JSONResponse),\n responses=None,\n callbacks=None,\n deprecated=None,\n include_in_schema=True,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\n\napp = FastAPI()\ninternal_router = APIRouter()\nusers_router = APIRouter()\n\n@users_router.get(\"/users/\")\ndef read_users():\n return [{\"name\": \"Rick\"}, {\"name\": \"Morty\"}]\n\ninternal_router.include_router(users_router)\napp.include_router(internal_router)\n```\n\nExample:\n```text\ndef include_router(\n self,\n router: Annotated[\"APIRouter\", Doc(\"The `APIRouter` to include.\")],\n *,\n prefix: Annotated[str, Doc(\"An optional path prefix for the router.\")] = \"\",\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to all the *path operations* in this\n router.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to all the\n *path operations* in this router.\n\n Read more about it in the\n [FastAPI docs for Bigger Applications - Multiple Files](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).\n \"\"\"\n ),\n ] = None,\n default_response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n The default response class to be used.\n\n Read more in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#default-response-class).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses to be shown in OpenAPI.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Additional Responses in OpenAPI](https://fastapi.tiangolo.com/advanced/additional-responses/).\n\n And in the\n [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/#include-an-apirouter-with-a-custom-prefix-tags-responses-and-dependencies).\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n OpenAPI callbacks that should apply to all *path operations* in this\n router.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark all *path operations* in this router as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include (or not) all the *path operations* in this router in the\n generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = True,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> None:\n \"\"\"\n Include another `APIRouter` in the same current `APIRouter`.\n\n Read more about it in the\n [FastAPI docs for Bigger Applications](https://fastapi.tiangolo.com/tutorial/bigger-applications/).\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n\n app = FastAPI()\n internal_router = APIRouter()\n users_router = APIRouter()\n\n @users_router.get(\"/users/\")\n def read_users():\n return [{\"name\": \"Rick\"}, {\"name\": \"Morty\"}]\n\n internal_router.include_router(users_router)\n app.include_router(internal_router)\n ```\n \"\"\"\n assert self is not router, (\n \"Cannot include the same APIRouter instance into itself. \"\n \"Did you mean to include a different router?\"\n )\n assert not router._contains_router(self), (\n \"Cannot include an APIRouter instance that already includes this router. \"\n \"Did you mean to include a different router?\"\n )\n if prefix:\n assert prefix.startswith(\"/\"), \"A path prefix must start with '/'\"\n assert not prefix.endswith(\"/\"), (\n \"A path prefix must not end with '/', as the routes will start with '/'\"\n )\n else:\n for route, route_context in _iter_routes_with_context(router.routes):\n if route_context is None:\n path = getattr(route, \"path\", None)\n name = getattr(route, \"name\", \"unknown\")\n elif route_context.starlette_route is not None:\n path = getattr(route_context.starlette_route, \"path\", None)\n name = getattr(route_context.starlette_route, \"name\", \"unknown\")\n else:\n path = route_context.path\n name = route_context.name\n if path is not None and not path:\n raise FastAPIError(\n f\"Prefix and path cannot be both empty (path operation: {name})\"\n )\n include_context = _RouterIncludeContext.for_include(\n parent_router=self,\n included_router=router,\n prefix=prefix,\n tags=tags,\n dependencies=dependencies,\n default_response_class=default_response_class,\n responses=responses,\n callbacks=callbacks,\n deprecated=deprecated,\n include_in_schema=include_in_schema,\n generate_unique_id_function=generate_unique_id_function,\n )\n self.routes.append(\n _IncludedRouter(original_router=router, include_context=include_context)\n )\n self._mark_routes_changed()\n for handler in router.on_startup:\n self.add_event_handler(\"startup\", handler)\n for handler in router.on_shutdown:\n self.add_event_handler(\"shutdown\", handler)\n self.lifespan_context = _merge_lifespan_context(\n self.lifespan_context,\n router.lifespan_context,\n )\n```\n\nExample:\n```text\nfrontend(\n path, *, directory, fallback=\"auto\", check_dir=\"auto\"\n)\n```\n\nExample:\n```text\n.\n├── pyproject.toml\n├── app\n│ ├── __init__.py\n│ └── main.py\n└── dist\n ├── index.html\n └── assets\n └── app.js\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\n\napp = FastAPI()\nrouter = APIRouter()\nrouter.frontend(\"/\", directory=\"dist\")\napp.include_router(router)\n```\n\nExample:\n```text\ndef frontend(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path prefix where the frontend build should be served.\n \"\"\"\n ),\n ],\n *,\n directory: Annotated[\n str | os.PathLike[str],\n Doc(\n \"\"\"\n The directory containing the static frontend build output.\n \"\"\"\n ),\n ],\n fallback: Annotated[\n Literal[\"auto\", \"index.html\", \"404.html\"] | None,\n Doc(\n \"\"\"\n The fallback file behavior for missing frontend paths.\n \"\"\"\n ),\n ] = \"auto\",\n check_dir: Annotated[\n bool | Literal[\"auto\"],\n Doc(\n \"\"\"\n Check that the frontend directory exists when the app is created. When\n set to `\"auto\"`, skip the check with a warning when `FASTAPI_ENV` is\n `\"development\"`, and check it otherwise. The `fastapi dev` command\n sets `FASTAPI_ENV` to `\"development\"` if it is not already set.\n \"\"\"\n ),\n ] = \"auto\",\n) -> None:\n \"\"\"\n Serve a static frontend build as low-priority routes.\n\n Use this for frontend tools that build static files into a directory,\n such as `dist`. **FastAPI** path operations are checked first, and\n the frontend files are checked only if no normal route matched.\n\n A typical project could look like this:\n\n ```text\n .\n ├── pyproject.toml\n ├── app\n │ ├── __init__.py\n │ └── main.py\n └── dist\n ├── index.html\n └── assets\n └── app.js\n ```\n\n Then in `app/main.py`:\n\n ```python\n from fastapi import APIRouter, FastAPI\n\n app = FastAPI()\n router = APIRouter()\n router.frontend(\"/\", directory=\"dist\")\n app.include_router(router)\n ```\n \"\"\"\n check_dir = _resolve_frontend_check_dir(\n directory=directory, check_dir=check_dir\n )\n normalized_path = _normalize_frontend_path(path)\n if self._frontend_routes is None:\n self._frontend_routes = _FrontendRouteGroup(\n dependencies=self.dependencies,\n dependency_overrides_provider=self.dependency_overrides_provider,\n )\n self._low_priority_routes.append(self._frontend_routes)\n self._frontend_routes.add_frontend_route(\n _join_frontend_paths(self.prefix, normalized_path),\n directory=directory,\n fallback=fallback,\n check_dir=check_dir,\n )\n self._mark_routes_changed()\n```\n\nExample:\n```text\nget(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.get(\"/items/\")\ndef read_items():\n return [{\"name\": \"Empanada\"}, {\"name\": \"Arepa\"}]\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef get(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP GET operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n\n app = FastAPI()\n router = APIRouter()\n\n @router.get(\"/items/\")\n def read_items():\n return [{\"name\": \"Empanada\"}, {\"name\": \"Arepa\"}]\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"GET\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\nput(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\nfrom pydantic import BaseModel\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.put(\"/items/{item_id}\")\ndef replace_item(item_id: str, item: Item):\n return {\"message\": \"Item replaced\", \"id\": item_id}\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef put(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP PUT operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n from pydantic import BaseModel\n\n class Item(BaseModel):\n name: str\n description: str | None = None\n\n app = FastAPI()\n router = APIRouter()\n\n @router.put(\"/items/{item_id}\")\n def replace_item(item_id: str, item: Item):\n return {\"message\": \"Item replaced\", \"id\": item_id}\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"PUT\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\npost(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\nfrom pydantic import BaseModel\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.post(\"/items/\")\ndef create_item(item: Item):\n return {\"message\": \"Item created\"}\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef post(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP POST operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n from pydantic import BaseModel\n\n class Item(BaseModel):\n name: str\n description: str | None = None\n\n app = FastAPI()\n router = APIRouter()\n\n @router.post(\"/items/\")\n def create_item(item: Item):\n return {\"message\": \"Item created\"}\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"POST\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\ndelete(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.delete(\"/items/{item_id}\")\ndef delete_item(item_id: str):\n return {\"message\": \"Item deleted\"}\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef delete(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP DELETE operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n\n app = FastAPI()\n router = APIRouter()\n\n @router.delete(\"/items/{item_id}\")\n def delete_item(item_id: str):\n return {\"message\": \"Item deleted\"}\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"DELETE\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\noptions(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.options(\"/items/\")\ndef get_item_options():\n return {\"additions\": [\"Aji\", \"Guacamole\"]}\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef options(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP OPTIONS operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n\n app = FastAPI()\n router = APIRouter()\n\n @router.options(\"/items/\")\n def get_item_options():\n return {\"additions\": [\"Aji\", \"Guacamole\"]}\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"OPTIONS\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\nhead(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\nfrom pydantic import BaseModel\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.head(\"/items/\", status_code=204)\ndef get_items_headers(response: Response):\n response.headers[\"X-Cat-Dog\"] = \"Alone in the world\"\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef head(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP HEAD operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n from pydantic import BaseModel\n\n class Item(BaseModel):\n name: str\n description: str | None = None\n\n app = FastAPI()\n router = APIRouter()\n\n @router.head(\"/items/\", status_code=204)\n def get_items_headers(response: Response):\n response.headers[\"X-Cat-Dog\"] = \"Alone in the world\"\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"HEAD\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\npatch(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\nfrom pydantic import BaseModel\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.patch(\"/items/\")\ndef update_item(item: Item):\n return {\"message\": \"Item updated in place\"}\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef patch(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP PATCH operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n from pydantic import BaseModel\n\n class Item(BaseModel):\n name: str\n description: str | None = None\n\n app = FastAPI()\n router = APIRouter()\n\n @router.patch(\"/items/\")\n def update_item(item: Item):\n return {\"message\": \"Item updated in place\"}\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"PATCH\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\ntrace(\n path,\n *,\n response_model=Default(None),\n status_code=None,\n tags=None,\n dependencies=None,\n summary=None,\n description=None,\n response_description=\"Successful Response\",\n responses=None,\n deprecated=None,\n operation_id=None,\n response_model_include=None,\n response_model_exclude=None,\n response_model_by_alias=True,\n response_model_exclude_unset=False,\n response_model_exclude_defaults=False,\n response_model_exclude_none=False,\n include_in_schema=True,\n response_class=Default(JSONResponse),\n name=None,\n callbacks=None,\n openapi_extra=None,\n generate_unique_id_function=Default(generate_unique_id)\n)\n```\n\nExample:\n```text\nfrom fastapi import APIRouter, FastAPI\nfrom pydantic import BaseModel\n\nclass Item(BaseModel):\n name: str\n description: str | None = None\n\napp = FastAPI()\nrouter = APIRouter()\n\n@router.trace(\"/items/{item_id}\")\ndef trace_item(item_id: str):\n return None\n\napp.include_router(router)\n```\n\nExample:\n```text\ndef trace(\n self,\n path: Annotated[\n str,\n Doc(\n \"\"\"\n The URL path to be used for this *path operation*.\n\n For example, in `http://example.com/items`, the path is `/items`.\n \"\"\"\n ),\n ],\n *,\n response_model: Annotated[\n Any,\n Doc(\n \"\"\"\n The type to use for the response.\n\n It could be any valid Pydantic *field* type. So, it doesn't have to\n be a Pydantic model, it could be other things, like a `list`, `dict`,\n etc.\n\n It will be used for:\n\n * Documentation: the generated OpenAPI (and the UI at `/docs`) will\n show it as the response (JSON Schema).\n * Serialization: you could return an arbitrary object and the\n `response_model` would be used to serialize that object into the\n corresponding JSON.\n * Filtering: the JSON sent to the client will only contain the data\n (fields) defined in the `response_model`. If you returned an object\n that contains an attribute `password` but the `response_model` does\n not include that field, the JSON sent to the client would not have\n that `password`.\n * Validation: whatever you return will be serialized with the\n `response_model`, converting any data as necessary to generate the\n corresponding JSON. But if the data in the object returned is not\n valid, that would mean a violation of the contract with the client,\n so it's an error from the API developer. So, FastAPI will raise an\n error and return a 500 error code (Internal Server Error).\n\n Read more about it in the\n [FastAPI docs for Response Model](https://fastapi.tiangolo.com/tutorial/response-model/).\n \"\"\"\n ),\n ] = Default(None),\n status_code: Annotated[\n int | None,\n Doc(\n \"\"\"\n The default status code to be used for the response.\n\n You could override the status code by returning a response directly.\n\n Read more about it in the\n [FastAPI docs for Response Status Code](https://fastapi.tiangolo.com/tutorial/response-status-code/).\n \"\"\"\n ),\n ] = None,\n tags: Annotated[\n list[str | Enum] | None,\n Doc(\n \"\"\"\n A list of tags to be applied to the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/#tags).\n \"\"\"\n ),\n ] = None,\n dependencies: Annotated[\n Sequence[params.Depends] | None,\n Doc(\n \"\"\"\n A list of dependencies (using `Depends()`) to be applied to the\n *path operation*.\n\n Read more about it in the\n [FastAPI docs for Dependencies in path operation decorators](https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-in-path-operation-decorators/).\n \"\"\"\n ),\n ] = None,\n summary: Annotated[\n str | None,\n Doc(\n \"\"\"\n A summary for the *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n description: Annotated[\n str | None,\n Doc(\n \"\"\"\n A description for the *path operation*.\n\n If not provided, it will be extracted automatically from the docstring\n of the *path operation function*.\n\n It can contain Markdown.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Path Operation Configuration](https://fastapi.tiangolo.com/tutorial/path-operation-configuration/).\n \"\"\"\n ),\n ] = None,\n response_description: Annotated[\n str,\n Doc(\n \"\"\"\n The description for the default response.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = \"Successful Response\",\n responses: Annotated[\n dict[int | str, dict[str, Any]] | None,\n Doc(\n \"\"\"\n Additional responses that could be returned by this *path operation*.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n deprecated: Annotated[\n bool | None,\n Doc(\n \"\"\"\n Mark this *path operation* as deprecated.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n \"\"\"\n ),\n ] = None,\n operation_id: Annotated[\n str | None,\n Doc(\n \"\"\"\n Custom operation ID to be used by this *path operation*.\n\n By default, it is generated automatically.\n\n If you provide a custom operation ID, you need to make sure it is\n unique for the whole API.\n\n You can customize the\n operation ID generation with the parameter\n `generate_unique_id_function` in the `FastAPI` class.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = None,\n response_model_include: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to include only certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_exclude: Annotated[\n IncEx | None,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to exclude certain fields in the\n response data.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = None,\n response_model_by_alias: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response model\n should be serialized by alias when an alias is used.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_include-and-response_model_exclude).\n \"\"\"\n ),\n ] = True,\n response_model_exclude_unset: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that were not set and\n have their default values. This is different from\n `response_model_exclude_defaults` in that if the fields are set,\n they will be included in the response, even if the value is the same\n as the default.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_defaults: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data\n should have all the fields, including the ones that have the same value\n as the default. This is different from `response_model_exclude_unset`\n in that if the fields are set but contain the same default values,\n they will be excluded from the response.\n\n When `True`, default values are omitted from the response.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#use-the-response_model_exclude_unset-parameter).\n \"\"\"\n ),\n ] = False,\n response_model_exclude_none: Annotated[\n bool,\n Doc(\n \"\"\"\n Configuration passed to Pydantic to define if the response data should\n exclude fields set to `None`.\n\n This is much simpler (less smart) than `response_model_exclude_unset`\n and `response_model_exclude_defaults`. You probably want to use one of\n those two instead of this one, as those allow returning `None` values\n when it makes sense.\n\n Read more about it in the\n [FastAPI docs for Response Model - Return Type](https://fastapi.tiangolo.com/tutorial/response-model/#response_model_exclude_none).\n \"\"\"\n ),\n ] = False,\n include_in_schema: Annotated[\n bool,\n Doc(\n \"\"\"\n Include this *path operation* in the generated OpenAPI schema.\n\n This affects the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for Query Parameters and String Validations](https://fastapi.tiangolo.com/tutorial/query-params-str-validations/#exclude-parameters-from-openapi).\n \"\"\"\n ),\n ] = True,\n response_class: Annotated[\n type[Response],\n Doc(\n \"\"\"\n Response class to be used for this *path operation*.\n\n This will not be used if you return a response directly.\n\n Read more about it in the\n [FastAPI docs for Custom Response - HTML, Stream, File, others](https://fastapi.tiangolo.com/advanced/custom-response/#redirectresponse).\n \"\"\"\n ),\n ] = Default(JSONResponse),\n name: Annotated[\n str | None,\n Doc(\n \"\"\"\n Name for this *path operation*. Only used internally.\n \"\"\"\n ),\n ] = None,\n callbacks: Annotated[\n list[BaseRoute] | None,\n Doc(\n \"\"\"\n List of *path operations* that will be used as OpenAPI callbacks.\n\n This is only for OpenAPI documentation, the callbacks won't be used\n directly.\n\n It will be added to the generated OpenAPI (e.g. visible at `/docs`).\n\n Read more about it in the\n [FastAPI docs for OpenAPI Callbacks](https://fastapi.tiangolo.com/advanced/openapi-callbacks/).\n \"\"\"\n ),\n ] = None,\n openapi_extra: Annotated[\n dict[str, Any] | None,\n Doc(\n \"\"\"\n Extra metadata to be included in the OpenAPI schema for this *path\n operation*.\n\n Read more about it in the\n [FastAPI docs for Path Operation Advanced Configuration](https://fastapi.tiangolo.com/advanced/path-operation-advanced-configuration/#custom-openapi-path-operation-schema).\n \"\"\"\n ),\n ] = None,\n generate_unique_id_function: Annotated[\n Callable[[APIRoute], str],\n Doc(\n \"\"\"\n Customize the function used to generate unique IDs for the *path\n operations* shown in the generated OpenAPI.\n\n This is particularly useful when automatically generating clients or\n SDKs for your API.\n\n Read more about it in the\n [FastAPI docs about how to Generate Clients](https://fastapi.tiangolo.com/advanced/generate-clients/#custom-generate-unique-id-function).\n \"\"\"\n ),\n ] = Default(generate_unique_id),\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add a *path operation* using an HTTP TRACE operation.\n\n ## Example\n\n ```python\n from fastapi import APIRouter, FastAPI\n from pydantic import BaseModel\n\n class Item(BaseModel):\n name: str\n description: str | None = None\n\n app = FastAPI()\n router = APIRouter()\n\n @router.trace(\"/items/{item_id}\")\n def trace_item(item_id: str):\n return None\n\n app.include_router(router)\n ```\n \"\"\"\n return self.api_route(\n path=path,\n response_model=response_model,\n status_code=status_code,\n tags=tags,\n dependencies=dependencies,\n summary=summary,\n description=description,\n response_description=response_description,\n responses=responses,\n deprecated=deprecated,\n methods=[\"TRACE\"],\n operation_id=operation_id,\n response_model_include=response_model_include,\n response_model_exclude=response_model_exclude,\n response_model_by_alias=response_model_by_alias,\n response_model_exclude_unset=response_model_exclude_unset,\n response_model_exclude_defaults=response_model_exclude_defaults,\n response_model_exclude_none=response_model_exclude_none,\n include_in_schema=include_in_schema,\n response_class=response_class,\n name=name,\n callbacks=callbacks,\n openapi_extra=openapi_extra,\n generate_unique_id_function=generate_unique_id_function,\n )\n```\n\nExample:\n```text\non_event(event_type)\n```\n\nExample:\n```text\n@deprecated(\n \"\"\"\n on_event is deprecated, use lifespan event handlers instead.\n\n Read more about it in the\n [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/).\n \"\"\"\n)\ndef on_event(\n self,\n event_type: Annotated[\n str,\n Doc(\n \"\"\"\n The type of event. `startup` or `shutdown`.\n \"\"\"\n ),\n ],\n) -> Callable[[DecoratedCallable], DecoratedCallable]:\n \"\"\"\n Add an event handler for the router.\n\n `on_event` is deprecated, use `lifespan` event handlers instead.\n\n Read more about it in the\n [FastAPI docs for Lifespan Events](https://fastapi.tiangolo.com/advanced/events/#alternative-events-deprecated).\n \"\"\"\n\n def decorator(func: DecoratedCallable) -> DecoratedCallable:\n self.add_event_handler(event_type, func)\n return func\n\n return decorator\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.526Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":40,"totalLines":4263,"estimatedTokens":35703}}307{"id":"doc-resources_fastapi-7f1aa4c0","source":"documentation","title":"Resources - FastAPI","url":"https://fastapi.tiangolo.com/resources/","text":"FastAPI Resources en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.581Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":73}}308{"id":"doc-cookie_parameters_fastapi-6018d1dd","source":"documentation","title":"Cookie Parameters - FastAPI","url":"https://fastapi.tiangolo.com/tutorial/cookie-params/","text":"FastAPI Cookie Parameters en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\nExample:\n```text\nfrom typing import Annotated\n\nfrom fastapi import Cookie, FastAPI\n\napp = FastAPI()\n\n\n@app.get(\"/items/\")\nasync def read_items(ads_id: Annotated[str | None, Cookie()] = None):\n return {\"ads_id\": ads_id}\n```\n\nExample:\n```text\nfrom fastapi import Cookie, FastAPI\n\napp = FastAPI()\n\n\n@app.get(\"/items/\")\nasync def read_items(ads_id: str | None = Cookie(default=None)):\n return {\"ads_id\": ads_id}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.602Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":29,"estimatedTokens":180}}309{"id":"doc-json_compatible_encoder_fastapi-474e9700","source":"documentation","title":"JSON Compatible Encoder - FastAPI","url":"https://fastapi.tiangolo.com/tutorial/encoder/","text":"FastAPI JSON Compatible Encoder en - English de - Deutsch es - español fr - français hi - हिन्दी ja - 日本語 ko - 한국어 pt - português ru - русский язык tr - Türkçe uk - українська мова zh - 简体中文 zh-hant - 繁體中文 Search fastapi/fastapi FastAPI Features Learn Reference Resources About Release Notes\n\nExample:\n```text\nfrom datetime import datetime\n\nfrom fastapi import FastAPI\nfrom fastapi.encoders import jsonable_encoder\nfrom pydantic import BaseModel\n\nfake_db = {}\n\n\nclass Item(BaseModel):\n title: str\n timestamp: datetime\n description: str | None = None\n\n\napp = FastAPI()\n\n\n@app.put(\"/items/{id}\")\ndef update_item(id: str, item: Item):\n json_compatible_item_data = jsonable_encoder(item)\n fake_db[id] = json_compatible_item_data\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:32.624Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":29,"estimatedTokens":190}}310{"id":"doc-basics_tutorial_kotlin_grpc-349f619a","source":"documentation","title":"Basics tutorial | Kotlin | gRPC","url":"https://grpc.io/docs/languages/kotlin/basics/","text":"gRPCAboutDocsGuidesVideosShowcaseBlogCommunitygRPConf 2026 is on Sept 3rd! - Register now ($50 until Jul 24th) or Submit a talk proposal (by Jun 14th)\n\nExample:\n```sh\ngit clone --depth 1 https://github.com/grpc/grpc-kotlin\n```\n\nExample:\n```sh\ncd grpc-kotlin/examples\n```\n\nExample:\n```proto\nservice RouteGuide {\n ...\n}\n```\n\nExample:\n```proto\n// Obtains the feature at a given position.\nrpc GetFeature(Point) returns (Feature) {}\n```\n\nExample:\n```proto\n// Obtains the Features available within the given Rectangle. Results are\n// streamed rather than returned at once (e.g. in a response message with a\n// repeated field), as the rectangle may cover a large area and contain a\n// huge number of features.\nrpc ListFeatures(Rectangle) returns (stream Feature) {}\n```\n\nExample:\n```proto\n// Accepts a stream of Points on a route being traversed, returning a\n// RouteSummary when traversal is completed.\nrpc RecordRoute(stream Point) returns (RouteSummary) {}\n```\n\nExample:\n```proto\n// Accepts a stream of RouteNotes sent while a route is being traversed,\n// while receiving other RouteNotes (e.g. from other users).\nrpc RouteChat(stream RouteNote) returns (stream RouteNote) {}\n```\n\nExample:\n```proto\n// Points are represented as latitude-longitude pairs in the E7 representation\n// (degrees multiplied by 10**7 and rounded to the nearest integer).\n// Latitudes should be in the range +/- 90 degrees and longitude should be in\n// the range +/- 180 degrees (inclusive).\nmessage Point {\n int32 latitude = 1;\n int32 longitude = 2;\n}\n```\n\nExample:\n```kotlin\nclass RouteGuideService(\n val features: Collection<Feature>,\n /* ... */\n) : RouteGuideGrpcKt.RouteGuideCoroutineImplBase() {\n /* ... */\n}\n```\n\nExample:\n```kotlin\noverride suspend fun getFeature(request: Point): Feature =\n features.find { it.location == request } ?:\n // No feature was found, return an unnamed feature.\n Feature.newBuilder().apply { location = request }.build()\n```\n\nExample:\n```kotlin\noverride fun listFeatures(request: Rectangle): Flow<Feature> =\n features.asFlow().filter { it.exists() && it.location in request }\n```\n\nExample:\n```kotlin\noverride suspend fun recordRoute(requests: Flow<Point>): RouteSummary {\n var pointCount = 0\n var featureCount = 0\n var distance = 0\n var previous: Point? = null\n val stopwatch = Stopwatch.createStarted(ticker)\n requests.collect { request ->\n pointCount++\n if (getFeature(request).exists()) {\n featureCount++\n }\n val prev = previous\n if (prev != null) {\n distance += prev distanceTo request\n }\n previous = request\n }\n return RouteSummary.newBuilder().apply {\n this.pointCount = pointCount\n this.featureCount = featureCount\n this.distance = distance\n this.elapsedTime = Durations.fromMicros(stopwatch.elapsed(TimeUnit.MICROSECONDS))\n }.build()\n}\n```\n\nExample:\n```kotlin\noverride fun routeChat(requests: Flow<RouteNote>): Flow<RouteNote> =\n flow {\n // could use transform, but it's currently experimental\n requests.collect { note ->\n val notes: MutableList<RouteNote> = routeNotes.computeIfAbsent(note.location) {\n Collections.synchronizedList(mutableListOf<RouteNote>())\n }\n for (prevNote in notes.toTypedArray()) { // thread-safe snapshot\n emit(prevNote)\n }\n notes += note\n }\n }\n```\n\nExample:\n```kotlin\nclass RouteGuideServer(\n val port: Int,\n val features: Collection<Feature> = Database.features(),\n val server: Server =\n ServerBuilder.forPort(port)\n .addService(RouteGuideService(features)).build()\n) {\n\n fun start() {\n server.start()\n println(\"Server started, listening on $port\")\n /* ... */\n }\n /* ... */\n}\n\nfun main(args: Array<String>) {\n val port = 8980\n val server = RouteGuideServer(port)\n server.start()\n server.awaitTermination()\n }\n```\n\nExample:\n```kotlin\nval channel = ManagedChannelBuilder.forAddress(\"localhost\", 8980).usePlaintext().build()\n```\n\nExample:\n```kotlin\nval stub = RouteGuideCoroutineStub(channel)\n```\n\nExample:\n```kotlin\nval request = point(latitude, longitude)\nval feature = stub.getFeature(request)\n```\n\nExample:\n```kotlin\nsuspend fun getFeature(latitude: Int, longitude: Int) {\n val request = point(latitude, longitude)\n val feature = stub.getFeature(request)\n if (feature.exists()) { /* ... */ }\n}\n```\n\nExample:\n```kotlin\nsuspend fun listFeatures(lowLat: Int, lowLon: Int, hiLat: Int, hiLon: Int) {\n val request = Rectangle.newBuilder()\n .setLo(point(lowLat, lowLon))\n .setHi(point(hiLat, hiLon))\n .build()\n var i = 1\n stub.listFeatures(request).collect { feature ->\n println(\"Result #${i++}: $feature\")\n }\n}\n```\n\nExample:\n```kotlin\nsuspend fun recordRoute(points: Flow<Point>) {\n println(\"*** RecordRoute\")\n val summary = stub.recordRoute(points)\n println(\"Finished trip with ${summary.pointCount} points.\")\n println(\"Passed ${summary.featureCount} features.\")\n println(\"Travelled ${summary.distance} meters.\")\n val duration = summary.elapsedTime.seconds\n println(\"It took $duration seconds.\")\n}\n```\n\nExample:\n```kotlin\nfun generateRoutePoints(features: List<Feature>, numPoints: Int): Flow<Point> = flow {\n for (i in 1..numPoints) {\n val feature = features.random(random)\n println(\"Visiting point ${feature.location.toStr()}\")\n emit(feature.location)\n delay(timeMillis = random.nextLong(500L..1500L))\n }\n}\n```\n\nExample:\n```kotlin\nsuspend fun routeChat() {\n val requests = generateOutgoingNotes()\n stub.routeChat(requests).collect { note ->\n println(\"Got message \\\"${note.message}\\\" at ${note.location.toStr()}\")\n }\n println(\"Finished RouteChat\")\n}\n\nprivate fun generateOutgoingNotes(): Flow<RouteNote> = flow {\n val notes = listOf(/* ... */)\n for (note in notes) {\n println(\"Sending message \\\"${note.message}\\\" at ${note.location.toStr()}\")\n emit(note)\n delay(500)\n }\n}\n```\n\nExample:\n```sh\n./gradlew installDist\n```\n\nExample:\n```sh\n./server/build/install/server/bin/route-guide-server\nServer started, listening on 8980\n```\n\nExample:\n```sh\n./client/build/install/client/bin/route-guide-client\n```\n\nExample:\n```nocode\n*** GetFeature: lat=409146138 lon=-746188906\nFound feature called \"Berkshire Valley Management Area Trail, Jefferson, NJ, USA\" at 40.9146138, -74.6188906\n*** GetFeature: lat=0 lon=0\nFound no feature at 0.0, 0.0\n*** ListFeatures: lowLat=400000000 lowLon=-750000000 hiLat=420000000 liLon=-730000000\nResult #1: name: \"Patriots Path, Mendham, NJ 07945, USA\"\nlocation {\n latitude: 407838351\n longitude: -746143763\n}\n...\nResult #64: name: \"3 Hasta Way, Newton, NJ 07860, USA\"\nlocation {\n latitude: 410248224\n longitude: -747127767\n}\n\n*** RecordRoute\nVisiting point 40.0066188, -74.6793294\n...\nVisiting point 40.4318328, -74.0835638\nFinished trip with 10 points.\nPassed 3 features.\nTravelled 93238790 meters.\nIt took 9 seconds.\n*** RouteChat\nSending message \"First message\" at 0.0, 0.0\nSending message \"Second message\" at 0.0, 0.0\nGot message \"First message\" at 0.0, 0.0\nSending message \"Third message\" at 1.0, 0.0\nSending message \"Fourth message\" at 1.0, 1.0\nSending message \"Last message\" at 0.0, 0.0\nGot message \"First message\" at 0.0, 0.0\nGot message \"Second message\" at 0.0, 0.0\nFinished RouteChat\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.860Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":26,"totalLines":295,"estimatedTokens":1797}}311{"id":"doc-mock_ci_gitlab_docs-890bcfd0","source":"documentation","title":"Mock CI | GitLab Docs","url":"https://docs.gitlab.com/user/project/integrations/mock_ci/","text":"Getting startedTutorialsIntegrationsProject integrationsAkismetApple App Store ConnectAsanaAtlassian BambooAWS CodePipelineBeyond IdentityChatOpsClickHouseConfluence WorkspaceDatadogDiagram proxyDiagrams.netDiffblue CoverDiscord NotificationsElasticsearchEmails on pushExternal controlsExternal issue trackersGitGuardianGitHubGitLab for Slack appGitpodGmail actionsGoogle ChatGoogle PlayHarborirker (IRC gateway)JenkinsJiraKrokiMailgunMatrix notificationsMattermost notificationsMattermost slash commandsMicrosoft Teams notificationsMLflowMock CIPipeline status emailsPivotal TrackerPlantUMLPumblereCAPTCHASnowflakeSourcegraphSquash TMTelegramTrello Power-UpsUnify CircuitVaultWebex TeamsZentaoZoektWebhooksREST APIGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Editor and IDE extensionsGitLab Docs /Extend /Integrations /Mock CIHelp us learn about your current experience with the documentation. Take the survey.Mock , Premium, , GitLab Self-Managed, GitLab DedicatedThis integration is only available in a development environment.To set up the mock CI service server, respond to the following : #{project.namespace.path}/#{project.path}/status/#{sha}.jsonHave your service return 200 { status: ['failed'|'canceled'|'running'|'pending'|'success'|'success-with-warnings'|'skipped'|'not_found'] }.If the service returns a 404, the service is interpreted as pending.build_page: #{project.namespace.path}/#{project.path}/status/#{sha}Where the build is linked to (whether or not it’s implemented).For an example Mock CI server, see gitlab-org/gitlab-mock-ci-service.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.423Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":407}}312{"id":"doc-matrix_gitlab_docs-2a0a4986","source":"documentation","title":"Matrix | GitLab Docs","url":"https://docs.gitlab.com/user/project/integrations/matrix/","text":"Getting startedTutorialsIntegrationsProject integrationsAkismetApple App Store ConnectAsanaAtlassian BambooAWS CodePipelineBeyond IdentityChatOpsClickHouseConfluence WorkspaceDatadogDiagram proxyDiagrams.netDiffblue CoverDiscord NotificationsElasticsearchEmails on pushExternal controlsExternal issue trackersGitGuardianGitHubGitLab for Slack appGitpodGmail actionsGoogle ChatGoogle PlayHarborirker (IRC gateway)JenkinsJiraKrokiMailgunMatrix notificationsMattermost notificationsMattermost slash commandsMicrosoft Teams notificationsMLflowMock CIPipeline status emailsPivotal TrackerPlantUMLPumblereCAPTCHASnowflakeSourcegraphSquash TMTelegramTrello Power-UpsUnify CircuitVaultWebex TeamsZentaoZoektWebhooksREST APIGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Editor and IDE extensionsGitLab Docs /Extend /Integrations /Matrix notificationsHelp us learn about your current experience with the documentation. Take the survey.MatrixTier: Free, Premium, , GitLab Self-Managed, GitLab DedicatedHistoryIntroduced in GitLab 17.3.You can configure GitLab to send notifications to a Matrix room.Set up the Matrix integration in access for instance enablement.The Owner role for group enablement.The Maintainer or Owner role for project enablement.After you join to a Matrix room, you can configure GitLab to send enable the your group or the top bar, select Search or go to and find your project or group.Select Settings > Integrations.For your the upper-right corner, select Admin.Select Settings > Integrations.Select Matrix.Under Enable integration, select the Active checkbox.Optional. In Hostname, enter the hostname of your server.In Token, paste the token value from the Matrix’s user.In the Trigger section, select the checkboxes for the GitLab events you want to receive in Matrix.In the Notification settings Room identifier, paste the Matrix room identifier.Optional. Select the Notify only broken pipelines checkbox to receive notifications for failed pipelines only.Optional. Select the Notify only when status changes checkbox to receive notifications only when the pipeline status for the ref changes.Optional. From the Branches for which notifications are to be sent dropdown list, select the branches you want to receive notifications for.Optional. Select Test settings.Select Save changes.The Matrix room can now receive all selected GitLab events.Set up the Matrix integration in GitLab\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.423Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":616}}313{"id":"doc-zoekt_gitlab_docs-bf954033","source":"documentation","title":"Zoekt | GitLab Docs","url":"https://docs.gitlab.com/integration/zoekt/","text":"Example:\n```shell\ngitlab-rake gitlab:zoekt:index\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:disable\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:pause_indexing\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:resume_indexing\n```\n\nExample:\n```shell\nsudo gitlab-rake gitlab:zoekt:estimate_storage\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:reindex_failed_projects\n```\n\nExample:\n```shell\ngitlab-rake \"gitlab:zoekt:reindex_failed_projects[1,2,3]\"\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:info\n```\n\nExample:\n```shell\ngitlab-rake \"gitlab:zoekt:info[10]\"\n```\n\nExample:\n```ruby\nSearch::Zoekt::Index.group(:state).count\nSearch::Zoekt::Repository.group(:state).count\nSearch::Zoekt::Task.group(:state).count\n```\n\nExample:\n```console\nExact Code Search\nGitLab version: 19.1.0\nEnable indexing: yes\nEnable searching: yes\nPause indexing: no\nIndex root namespaces automatically: yes\nCache search results for five minutes: yes\nIndexing CPU to tasks multiplier: 1.0\nProbability of random force reindexing (percentage): 0.25\nNumber of parallel processes per indexing task: 1\nNumber of namespaces per indexing rollout: 32\nOffline nodes automatically deleted after: 20m\nIndexing timeout per project: 30m\nMaximum number of files per project to be indexed: 500000\nMaximum file size for indexing: 1MB\nMaximum trigrams per file: 20000\nRetry interval for failed namespaces: 1d\nNumber of replicas per namespace: 1\nMaximum number of projects for legacy search: 1000\nMaximum number of process restarts within 15 minutes for nodes: 3\n\nNodes\n# Number of Zoekt nodes and their status\nNode count: 2 (online: 2, offline: 0)\nLast seen at: 2026-04-16 22:58:09 UTC (less than a minute ago)\nMax schema_version: 2601\nStorage reserved / usable: 71.1 MiB / 124 GiB (0.06%)\nStorage indexed / reserved: 42.7 MiB / 71.1 MiB (60.0%)\nStorage used / total: 797 GiB / 921 GiB (86.54%)\nOnline node watermark levels: 2\n - low: 2\n\nIndexing status\nGroup count: 8\n# Number of enabled namespaces and their status\nEnabledNamespace count: 8 (without indices: 0, rollout blocked: 0, with search disabled: 0)\nReplicas count: 8\n - ready: 8\nIndices count: 8\n - ready: 8\nIndices watermark levels: 8\n - healthy: 8\nRepositories count: 10\n - ready: 10\nTasks count: 10\n - done: 10\nTasks pending/processing by type: (none)\nStorage buffer factor: 0.831× [dynamic (observed)]\n\nFeature Flags (Non-Default Values)\nFeature flags: none\n\nFeature Flags (Default Values)\nFeature flags: none\n\nNode Details\nNode 1 - test-zoekt-hostname-1:\n Status: Online\n Last seen at: 2026-04-16 22:58:09 UTC (less than a minute ago)\n Disk utilization: 86.54%\n Unclaimed storage: 62 GiB\n # Zoekt build version on the node. Must match GitLab version.\n Zoekt version: 2026.04.15-v1.4.0-1-g89a8871\n Schema version: 2601\nNode 2 - test-zoekt-hostname-2:\n Status: Online\n Last seen at: 2026-04-16 22:58:09 UTC (less than a minute ago)\n Disk utilization: 86.54%\n Unclaimed storage: 62 GiB\n Zoekt version: 2026.04.15-v1.4.0-1-g89a8871\n Schema version: 2601\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:health\n```\n\nExample:\n```shell\ngitlab-rake \"gitlab:zoekt:health[10]\"\n```\n\nExample:\n```shell\ngitlab-rake gitlab:zoekt:reindex_projects ID_FROM=10 ID_TO=20\n```\n\nExample:\n```plaintext\nstorage_per_replica = sum(repository_git_size) × buffer_factor\ntotal_cluster_storage = storage_per_replica × number_of_replicas\n```\n\nExample:\n```shell\nsudo gitlab-rake gitlab:zoekt:info\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.443Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":154,"estimatedTokens":1079}}314{"id":"doc-views_laravel_13_x_the_clean_stack_for_artisans_-5d230607","source":"documentation","title":"Views | Laravel 13.x - The clean stack for Artisans and agents","url":"https://laravel.com/docs/13.x/views","text":"Laravel is the most productive way to build, deploy, and monitor software.First nameLast nameEmail addressStay updatedBy submitting this form, you agree to our terms. You can opt-out anytime.© 2026 LaravelLegalStatusProductsCloudForgeNightwatchVaporNovaPackagesCashierDuskHorizonOctaneScoutPennantPintSailSanctumSocialiteTelescopePulseReverbEchoResourcesDocumentationStarter KitsRelease NotesBlogNewsCommunityLarabellesLearnJobsCareersTrustPartnersVehiklThreadableSteadfast CollectiveRedberrybyte564 RobotsJump24TightenCurotecUCodeSoftSee All\n\nExample:\n```text\n<!-- View stored in resources/views/greeting.blade.php --> <html> <body> <h1>Hello, {{ $name }}</h1> </body></html>\n<!-- View stored in resources/views/greeting.blade.php -->\n\n<html>\n <body>\n <h1>Hello, {{ $name }}</h1>\n </body>\n</html>\n```\n\nExample:\n```text\nRoute::get('/', function () { return view('greeting', ['name' => 'James']);});\nRoute::get('/', function () {\n return view('greeting', ['name' => 'James']);\n});\n```\n\nExample:\n```text\nphp artisan make:view greeting\nphp artisan make:view greeting\n```\n\nExample:\n```text\nuse Illuminate\\Support\\Facades\\View; return View::make('greeting', ['name' => 'James']);\nuse Illuminate\\Support\\Facades\\View;\n\nreturn View::make('greeting', ['name' => 'James']);\n```\n\nExample:\n```text\nreturn view('admin.profile', $data);\nreturn view('admin.profile', $data);\n```\n\nExample:\n```text\nuse Illuminate\\Support\\Facades\\View; return View::first(['custom.admin', 'admin'], $data);\nuse Illuminate\\Support\\Facades\\View;\n\nreturn View::first(['custom.admin', 'admin'], $data);\n```\n\nExample:\n```text\nuse Illuminate\\Support\\Facades\\View; if (View::exists('admin.profile')) { // ...}\nuse Illuminate\\Support\\Facades\\View;\n\nif (View::exists('admin.profile')) {\n // ...\n}\n```\n\nExample:\n```text\nreturn view('greetings', ['name' => 'Victoria']);\nreturn view('greetings', ['name' => 'Victoria']);\n```\n\nExample:\n```text\nreturn view('greeting') ->with('name', 'Victoria') ->with('occupation', 'Astronaut');\nreturn view('greeting')\n ->with('name', 'Victoria')\n ->with('occupation', 'Astronaut');\n```\n\nExample:\n```text\n<?php namespace App\\Providers; use Illuminate\\Support\\Facades\\View; class AppServiceProvider extends ServiceProvider{ /** * Register any application services. */ public function register(): void { // ... } /** * Bootstrap any application services. */ public function boot(): void { View::share('key', 'value'); }}\n<?php\n\nnamespace App\\Providers;\n\nuse Illuminate\\Support\\Facades\\View;\n\nclass AppServiceProvider extends ServiceProvider\n{\n /**\n * Register any application services.\n */\n public function register(): void\n {\n // ...\n }\n\n /**\n * Bootstrap any application services.\n */\n public function boot(): void\n {\n View::share('key', 'value');\n }\n}\n```\n\nExample:\n```text\n<?php namespace App\\Providers; use App\\View\\Composers\\ProfileComposer;use Illuminate\\Support\\Facades;use Illuminate\\Support\\ServiceProvider;use Illuminate\\View\\View; class AppServiceProvider extends ServiceProvider{ /** * Register any application services. */ public function register(): void { // ... } /** * Bootstrap any application services. */ public function boot(): void { // Using class-based composers... Facades\\View::composer('profile', ProfileComposer::class); // Using closure-based composers... Facades\\View::composer('welcome', function (View $view) { // ... }); Facades\\View::composer('dashboard', function (View $view) { // ... }); }}\n<?php\n\nnamespace App\\Providers;\n\nuse App\\View\\Composers\\ProfileComposer;\nuse Illuminate\\Support\\Facades;\nuse Illuminate\\Support\\ServiceProvider;\nuse Illuminate\\View\\View;\n\nclass AppServiceProvider extends ServiceProvider\n{\n /**\n * Register any application services.\n */\n public function register(): void\n {\n // ...\n }\n\n /**\n * Bootstrap any application services.\n */\n public function boot(): void\n {\n // Using class-based composers...\n Facades\\View::composer('profile', ProfileComposer::class);\n\n // Using closure-based composers...\n Facades\\View::composer('welcome', function (View $view) {\n // ...\n });\n\n Facades\\View::composer('dashboard', function (View $view) {\n // ...\n });\n }\n}\n```\n\nExample:\n```text\n<?php namespace App\\View\\Composers; use App\\Repositories\\UserRepository;use Illuminate\\View\\View; class ProfileComposer{ /** * Create a new profile composer. */ public function __construct( protected UserRepository $users, ) {} /** * Bind data to the view. */ public function compose(View $view): void { $view->with('count', $this->users->count()); }}\n<?php\n\nnamespace App\\View\\Composers;\n\nuse App\\Repositories\\UserRepository;\nuse Illuminate\\View\\View;\n\nclass ProfileComposer\n{\n /**\n * Create a new profile composer.\n */\n public function __construct(\n protected UserRepository $users,\n ) {}\n\n /**\n * Bind data to the view.\n */\n public function compose(View $view): void\n {\n $view->with('count', $this->users->count());\n }\n}\n```\n\nExample:\n```text\nuse App\\Views\\Composers\\MultiComposer;use Illuminate\\Support\\Facades\\View; View::composer( ['profile', 'dashboard'], MultiComposer::class);\nuse App\\Views\\Composers\\MultiComposer;\nuse Illuminate\\Support\\Facades\\View;\n\nView::composer(\n ['profile', 'dashboard'],\n MultiComposer::class\n);\n```\n\nExample:\n```text\nuse Illuminate\\Support\\Facades;use Illuminate\\View\\View; Facades\\View::composer('*', function (View $view) { // ...});\nuse Illuminate\\Support\\Facades;\nuse Illuminate\\View\\View;\n\nFacades\\View::composer('*', function (View $view) {\n // ...\n});\n```\n\nExample:\n```text\nuse App\\View\\Creators\\ProfileCreator;use Illuminate\\Support\\Facades\\View; View::creator('profile', ProfileCreator::class);\nuse App\\View\\Creators\\ProfileCreator;\nuse Illuminate\\Support\\Facades\\View;\n\nView::creator('profile', ProfileCreator::class);\n```\n\nExample:\n```text\nphp artisan view:cache\nphp artisan view:cache\n```\n\nExample:\n```text\nphp artisan view:clear\nphp artisan view:clear\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:48.453Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":17,"totalLines":219,"estimatedTokens":1591}}315{"id":"doc-deploying_a_contract_hardhat_3-73a15d6e","source":"documentation","title":"Deploying a contract | Hardhat 3","url":"https://hardhat.org/docs/tutorial/deploying","text":"Example:\n```text\nimport { buildModule } from \"@nomicfoundation/hardhat-ignition/modules\";\nexport default buildModule(\"CounterModule\", (m) => { const counter = m.contract(\"Counter\");\n m.call(counter, \"incBy\", [5n]);\n return { counter };});\n```\n\nExample:\n```text\nnpx hardhat ignition deploy ignition/modules/Counter.ts\n```\n\nExample:\n```text\npnpm hardhat ignition deploy ignition/modules/Counter.ts\n```\n\nExample:\n```text\nyarn hardhat ignition deploy ignition/modules/Counter.ts\n```\n\nExample:\n```text\nnpx hardhat node\n```\n\nExample:\n```text\npnpm hardhat node\n```\n\nExample:\n```text\nyarn hardhat node\n```\n\nExample:\n```text\nnpx hardhat ignition deploy ignition/modules/Counter.ts --network localhost\n```\n\nExample:\n```text\npnpm hardhat ignition deploy ignition/modules/Counter.ts --network localhost\n```\n\nExample:\n```text\nyarn hardhat ignition deploy ignition/modules/Counter.ts --network localhost\n```\n\nExample:\n```text\nimport hardhatToolboxViemPlugin from \"@nomicfoundation/hardhat-toolbox-viem\";import { defineConfig } from \"hardhat/config\";\nexport default defineConfig({ plugins: [hardhatToolboxViemPlugin], solidity: { version: \"0.8.28\", }, networks: { sepolia: { type: \"http\", url: \"<SEPOLIA_RPC_URL>\", accounts: [\"<SEPOLIA_PRIVATE_KEY>\"], }, },});\n```\n\nExample:\n```text\nnpx hardhat ignition deploy ignition/modules/Counter.ts --network sepolia\n```\n\nExample:\n```text\npnpm hardhat ignition deploy ignition/modules/Counter.ts --network sepolia\n```\n\nExample:\n```text\nyarn hardhat ignition deploy ignition/modules/Counter.ts --network sepolia\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.222Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":14,"totalLines":75,"estimatedTokens":397}}316{"id":"doc-displaying_execution_traces_hardhat_3-6b04a53e","source":"documentation","title":"Displaying execution traces | Hardhat 3","url":"https://hardhat.org/docs/guides/execution-traces","text":"Example:\n```text\nnpx hardhat test -vvv\n```\n\nExample:\n```text\npnpm hardhat test -vvv\n```\n\nExample:\n```text\nyarn hardhat test -vvv\n```\n\nExample:\n```text\nnpx hardhat test --verbosity 3\n```\n\nExample:\n```text\npnpm hardhat test --verbosity 3\n```\n\nExample:\n```text\nyarn hardhat test --verbosity 3\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.233Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":31,"estimatedTokens":77}}317{"id":"doc-git_git_show_documentation-1db19dad","source":"documentation","title":"Git - git-show Documentation","url":"http://git-scm.com/docs/git-show","text":"Example:\n```text\ngitshow\n```\n\nExample:\n```text\n<hash> <title-line>\n```\n\nExample:\n```text\ncommit <hash>\nAuthor: <author>\n_\n <title-line>_\n```\n\nExample:\n```text\ncommit <hash>\nAuthor: <author>\nDate: <author-date>\n_\n <title-line>\n\n <full-commit-message>_\n```\n\nExample:\n```text\ncommit <hash>\nAuthor: <author>\nCommit: <committer>\n_\n <title-line>\n\n <full-commit-message>_\n```\n\nExample:\n```text\ncommit <hash>\nAuthor: <author>\nAuthorDate: <author-date>\nCommit: <committer>\nCommitDate: <committer-date>\n_\n <title-line>\n\n <full-commit-message>_\n```\n\nExample:\n```text\nFrom <hash> <date>\nFrom: <author>\nDate: <author-date>\nSubject: [PATCH] <title-line>\n_\n<full-commit-message>_\n```\n\nExample:\n```text\nThe author of fe6e0ee was Junio C Hamano, 23 hours ago\nThe title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\n```\n\nExample:\n```text\n%(decorate:prefix=,suffix=,tag=,separator= )\n```\n\nExample:\n```text\n$ git log -2 --pretty=format:%h 4da45bef \\\n | perl -pe '$_ .= \" -- NO NEWLINE\\n\" unless /\\n/'\n4da45be\n7134973 -- NO NEWLINE\n\n$ git log -2 --pretty=tformat:%h 4da45bef \\\n | perl -pe '$_ .= \" -- NO NEWLINE\\n\" unless /\\n/'\n4da45be\n7134973\n```\n\nExample:\n```text\n$ git log -2 --pretty=tformat:%h 4da45bef\n$ git log -2 --pretty=%h 4da45bef\n```\n\nExample:\n```text\n+ return frotz(nitfol, two->ptr, 1, 0);\n...\n- hit = frotz(nitfol, mf2.ptr, 1, 0);\n```\n\nExample:\n```text\ndiff --git a/file1 b/file2\n```\n\nExample:\n```text\noldmodenewmodedeletedfilemodenewfilemodecopyfromcopytorenamefromrenametosimilarityindexdissimilarityindexindex..\n```\n\nExample:\n```text\ndiff --git a/a b/b\nrename from a\nrename to b\ndiff --git a/b b/a\nrename from b\nrename to a\n```\n\nExample:\n```text\ndiff --combined describe.c\nindex fabadb8,cc95eb0..4866510\n--- a/describe.c\n+++ b/describe.c\n@@@ -98,20 -98,12 +98,20 @@@\n\treturn (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;\n }\n\n- static void describe(char *arg)\n -static void describe(struct commit *cmit, int last_one)\n++static void describe(char *arg, int last_one)\n {\n +\tunsigned char sha1[20];\n +\tstruct commit *cmit;\n\tstruct commit_list *list;\n\tstatic int initialized = 0;\n\tstruct commit_name *n;\n\n +\tif (get_sha1(arg, sha1) < 0)\n +\t\tusage(describe_usage);\n +\tcmit = lookup_commit_reference(sha1);\n +\tif (!cmit)\n +\t\tusage(describe_usage);\n +\n\tif (!initialized) {\n\t\tinitialized = 1;\n\t\tfor_each_ref(get_name);\n```\n\nExample:\n```text\ndiff --combined file\n```\n\nExample:\n```text\ndiff --cc file\n```\n\nExample:\n```text\nindex,..mode,..newfilemodedeletedfilemode,\n```\n\nExample:\n```text\n--- a/file\n+++ b/file\n```\n\nExample:\n```text\n--- a/file\n--- a/file\n--- a/file\n+++ b/file\n```\n\nExample:\n```text\n@@@ <from-file-range> <from-file-range> <to-file-range> @@@\n```\n\nExample:\n```text\n[i18n]\n\tcommitEncoding = ISO-8859-1\n```\n\nExample:\n```text\n[i18n]\n\tlogOutputEncoding = ISO-8859-1\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.235Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":24,"totalLines":198,"estimatedTokens":713}}318{"id":"doc-git_git_instaweb_documentation-56e09db6","source":"documentation","title":"Git - git-instaweb Documentation","url":"http://git-scm.com/docs/git-instaweb","text":"Example:\n```text\ngit instaweb [--local] [--httpd=<httpd>] [--port=<port>]\n [--browser=<browser>]\ngit instaweb [--start] [--stop] [--restart]\n```\n\nExample:\n```text\n[instaweb]\n\tlocal = true\n\thttpd = apache2 -f\n\tport = 4321\n\tbrowser = konqueror\n\tmodulePath = /usr/lib/apache2/modules\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.284Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":18,"estimatedTokens":78}}319{"id":"doc-git_git_filter_branch_documentation-2ec92d99","source":"documentation","title":"Git - git-filter-branch Documentation","url":"http://git-scm.com/docs/git-filter-branch","text":"Example:\n```text\ngit filter-branch [--setup <command>] [--subdirectory-filter <directory>]\n\t[--env-filter <command>] [--tree-filter <command>]\n\t[--index-filter <command>] [--parent-filter <command>]\n\t[--msg-filter <command>] [--commit-filter <command>]\n\t[--tag-name-filter <command>] [--prune-empty]\n\t[--original <namespace>] [-d <directory>] [-f | --force]\n\t[--state-branch <branch>] [--] [<rev-list-options>…]\n```\n\nExample:\n```text\ngit filter-branch --tree-filter 'rm filename' HEAD\n```\n\nExample:\n```text\ngit filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD\n```\n\nExample:\n```text\ngit filter-branch --subdirectory-filter foodir -- --all\n```\n\nExample:\n```text\ngit filter-branch --parent-filter 'sed \"s/^\\$/-p <graft-id>/\"' HEAD\n```\n\nExample:\n```text\ngit filter-branch --parent-filter \\\n\t'test $GIT_COMMIT = <commit-id> && echo \"-p <graft-id>\" || cat' HEAD\n```\n\nExample:\n```text\ngit replace --graft $commit-id $graft-id\ngit filter-branch $graft-id..HEAD\n```\n\nExample:\n```text\ngit filter-branch --commit-filter '\n\tif [ \"$GIT_AUTHOR_NAME\" = \"Darl McBribe\" ];\n\tthen\n\t\tskip_commit \"$@\";\n\telse\n\t\tgit commit-tree \"$@\";\n\tfi' HEAD\n```\n\nExample:\n```text\nskip_commit()\n{\n\tshift;\n\twhile [ -n \"$1\" ];\n\tdo\n\t\tshift;\n\t\tmap \"$1\";\n\t\tshift;\n\tdone;\n}\n```\n\nExample:\n```text\ngit filter-branch --msg-filter '\n\tsed -e \"/^git-svn-id:/d\"\n'\n```\n\nExample:\n```text\ngit filter-branch --msg-filter '\n\tcat &&\n\techo \"Acked-by: Bugs Bunny <bunny@bugzilla.org>\"\n' HEAD~10..HEAD\n```\n\nExample:\n```text\ngit filter-branch --env-filter '\n\tif test \"$GIT_AUTHOR_EMAIL\" = \"root@localhost\"\n\tthen\n\t\tGIT_AUTHOR_EMAIL=john@example.com\n\tfi\n\tif test \"$GIT_COMMITTER_EMAIL\" = \"root@localhost\"\n\tthen\n\t\tGIT_COMMITTER_EMAIL=john@example.com\n\tfi\n' -- --all\n```\n\nExample:\n```text\nD--E--F--G--H\n / /\nA--B-----C\n```\n\nExample:\n```text\ngit filter-branch ... C..H\n```\n\nExample:\n```text\ngit filter-branch ... C..H --not D\ngit filter-branch ... D..H --not C\n```\n\nExample:\n```text\ngit filter-branch --index-filter \\\n\t'git ls-files -s | sed \"s-\\t\\\"*-&newsubdir/-\" |\n\t\tGIT_INDEX_FILE=$GIT_INDEX_FILE.new \\\n\t\t\tgit update-index --index-info &&\n\t mv \"$GIT_INDEX_FILE.new\" \"$GIT_INDEX_FILE\"' HEAD\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.287Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":125,"estimatedTokens":546}}320{"id":"doc-git_git_ls_files_documentation-6e4c43bb","source":"documentation","title":"Git - git-ls-files Documentation","url":"http://git-scm.com/docs/git-ls-files","text":"Example:\n```text\ngit ls-files [-z] [-t] [-v] [-f]\n\t\t[-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]\n\t\t[-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]\n\t\t[--resolve-undo]\n\t\t[--directory [--no-empty-directory]] [--eol]\n\t\t[--deduplicate]\n\t\t[-x <pattern>|--exclude=<pattern>]\n\t\t[-X <file>|--exclude-from=<file>]\n\t\t[--exclude-per-directory=<file>]\n\t\t[--exclude-standard]\n\t\t[--error-unmatch] [--with-tree=<tree-ish>]\n\t\t[--full-name] [--recurse-submodules]\n\t\t[--abbrev[=<n>]] [--format=<format>] [--] [<file>…]\n```\n\nExample:\n```text\n[<tag> ]<mode> <object> <stage> <file>\n```\n\nExample:\n```text\ngit ls-files --format='%(objectname) %(path)'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.292Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":28,"estimatedTokens":168}}321{"id":"doc-git_git_reset_documentation-45571252","source":"documentation","title":"Git - git-reset Documentation","url":"http://git-scm.com/docs/git-reset/sv","text":"Example:\n```text\ngitreset-q--gitreset-q--pathspec-from-file=--pathspec-file-nulgitreset--patch-p--gitreset--soft--mixed-N--hard--merge--keep-q\n```\n\nExample:\n```text\n$ edit (1)\n$ git add frotz.c filfre.c\n$ mailx (2)\n$ git reset (3)\n$ git pull git://info.example.com/ nitfol (4)\n```\n\nExample:\n```text\n$ git commit ...\n$ git reset --soft HEAD^ (1)\n$ edit (2)\n$ git commit -a -c ORIG_HEAD (3)\n```\n\nExample:\n```text\n$ git branch topic/wip (1)\n$ git reset --hard HEAD~3 (2)\n$ git switch topic/wip (3)\n```\n\nExample:\n```text\n$ git commit ...\n$ git reset --hard HEAD~3 (1)\n```\n\nExample:\n```text\n$ git pull (1)\nAuto-merging nitfol\nCONFLICT (content): Merge conflict in nitfol\nAutomatic merge failed; fix conflicts and then commit the result.\n$ git reset --hard (2)\n$ git pull . topic/branch (3)\nUpdating from 41223... to 13134...\nFast-forward\n$ git reset --hard ORIG_HEAD (4)\n```\n\nExample:\n```text\n$ git pull (1)\nAuto-merging nitfol\nMerge made by recursive.\n nitfol | 20 +++++----\n ...\n$ git reset --merge ORIG_HEAD (2)\n```\n\nExample:\n```text\n$ git switch feature ;# du arbetade i \"funktions\"-grenen och\n$ work work work ;# blev avbruten\n$ git commit -a -m \"ögonblicksbild WIP\" (1)\n$ git switch master\n$ fix fix fix\n$ git commit ;# commit med riktig logg\n$ git switch feature\n$ git reset --soft HEAD^ ;# gå tillbaka till WIP-tillstånd (2)\n$ git reset (3)\n```\n\nExample:\n```text\n$ git reset -- frotz.c (1)\n$ git commit -m \"Checka in filer i index\" (2)\n$ git add frotz.c (3)\n```\n\nExample:\n```text\n$ git tag start\n$ git switch -c branch1\n$ edit\n$ git commit ... (1)\n$ edit\n$ git switch -c branch2 (2)\n$ git reset --keep start (3)\n```\n\nExample:\n```text\n$ git reset -N HEAD^ (1)\n$ git add -p (2)\n$ git diff --cached (3)\n$ git commit -c HEAD@{1} (4)\n... (5)\n$ git add ... (6)\n$ git diff --cached (7)\n$ git commit ... (8)\n```\n\nExample:\n```text\ngit reset --option target\n```\n\nExample:\n```text\narbetande index HEAD target arbetande index HEAD\n----------------------------------------------------\n A B C D --soft A B D\n\t\t\t --mixed A D D\n\t\t\t --hard D D D\n\t\t\t --merge (otillåten)\n\t\t\t --keep (otillåten)\n```\n\nExample:\n```text\narbetande index HEAD target arbetande index HEAD\n----------------------------------------------------\n A B C C --soft A B C\n\t\t\t --mixed A C C\n\t\t\t --hard C C C\n\t\t\t --merge (otillåten)\n\t\t\t --keep A C C\n```\n\nExample:\n```text\narbetande index HEAD target arbetande index HEAD\n----------------------------------------------------\n B B C D --soft B B D\n\t\t\t --mixed B D D\n\t\t\t --hard D D D\n\t\t\t --merge D D D\n\t\t\t --keep (otillåten)\n```\n\nExample:\n```text\narbetande index HEAD target arbetande index HEAD\n----------------------------------------------------\n B B C C --soft B B C\n\t\t\t --mixed B C C\n\t\t\t --hard C C C\n\t\t\t --merge C C C\n\t\t\t --keep B C C\n```\n\nExample:\n```text\narbetande index HEAD target arbetande index HEAD\n----------------------------------------------------\n B C C D --soft B C D\n\t\t\t --mixed B D D\n\t\t\t --hard D D D\n\t\t\t --merge (otillåten)\n\t\t\t --keep (otillåten)\n```\n\nExample:\n```text\narbetsindex HUVUD mål arbetsindex HUVUD\n----------------------------------------------------\n B C C C --soft B C C\n\t\t\t --mixed B C C\n\t\t\t --hard C C C\n\t\t\t --merge B C C\n\t\t\t --keep B C C\n```\n\nExample:\n```text\narbetsindex HEAD mål arbetsindex HEAD\n----------------------------------------------------\n X U A B --soft (disallowed)\n\t\t\t --mixed X B B\n\t\t\t --hard B B B\n\t\t\t --merge B B B\n\t\t\t --keep (disallowed)\n```\n\nExample:\n```text\narbetsindex HEAD mål arbetsindex HEAD\n----------------------------------------------------\n X U A A --soft (disallowed)\n\t\t\t --mixed X A A\n\t\t\t --hard A A A\n\t\t\t --merge A A A\n\t\t\t --keep (disallowed)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.379Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":20,"totalLines":195,"estimatedTokens":1220}}322{"id":"doc-git_git_documentation-4c5a18f5","source":"documentation","title":"Git - git Documentation","url":"http://git-scm.com/docs/git/ru","text":"Example:\n```text\ngit [--version] [--help] [-C <путь>] [-c <имя>=<значение>]\n [--exec-path[=<путь>]] [--html-path] [--man-path] [--info-path]\n [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--no-lazy-fetch]\n [--no-optional-locks] [--no-advice] [--bare] [--git-dir=<путь>]\n [--work-tree=<путь>] [--namespace=<имя>] [--config-env=<имя>=<переменная-среды>]\n <команда> [<аргументы>]\n```\n\nExample:\n```text\ngit --git-dir=a.git --work-tree=b -C c status\ngit --git-dir=c/a.git --work-tree=c/b status\n```\n\nExample:\n```text\n#\n# Символ '#' или ';' обозначает комментарий.\n#\n\n; основные переменные\n[core]\n\t; Не доверять режимам файлов\n\tfilemode = false\n\n; идентификация пользователя\n[user]\n\tname = \"Junio C Hamano\"\n\temail = \"gitster@pobox.com\"\n```\n\nExample:\n```text\nпуть старый-файл старый-hex старый-режим новый-файл новый-hex новый-режим\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.525Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":39,"estimatedTokens":218}}323{"id":"doc-git_git_documentation-210f759b","source":"documentation","title":"Git - git Documentation","url":"http://git-scm.com/docs/git/2.45.1","text":"Example:\n```text\ngit [-v | --version] [-h | --help] [-C <path>] [-c <name>=<value>]\n [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]\n [-p|--paginate|-P|--no-pager] [--no-replace-objects] [--bare]\n [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]\n [--config-env=<name>=<envvar>] <command> [<args>]\n```\n\nExample:\n```text\ngit --git-dir=a.git --work-tree=b -C c status\ngit --git-dir=c/a.git --work-tree=c/b status\n```\n\nExample:\n```text\n#\n# A '#' or ';' character indicates a comment.\n#\n\n; core variables\n[core]\n\t; Don't trust file modes\n\tfilemode = false\n\n; user identity\n[user]\n\tname = \"Junio C Hamano\"\n\temail = \"gitster@pobox.com\"\n```\n\nExample:\n```text\npath old-file old-hex old-mode new-file new-hex new-mode\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.559Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":38,"estimatedTokens":192}}324{"id":"doc-editor_plugins_and_ides_the_go_programming_langu-e80f0768","source":"documentation","title":"Editor plugins and IDEs - The Go Programming Language","url":"https://go.dev/doc/editors.html","text":"Documentation Editor plugins and IDEs Editor plugins and IDEs Introduction This document lists commonly used editor plugins and IDEs from the Go ecosystem that make Go development more productive and seamless. A comprehensive list of editor support and IDEs for Go development is available at the wiki. Options The Go ecosystem provides a variety of editor plugins and IDEs to enhance your day-to-day editing, navigation, testing, and debugging experience. Visual Studio extension provides support for the Go programming language is distributed either as a standalone IDE or as a plugin for IntelliJ IDEA Ultimate plugin provides Go programming language support Note that these are only a few top solutions; a more comprehensive community-maintained list of IDEs and text editor plugins is available at the Wiki.\n\ngo.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. Okay\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.486Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":238}}325{"id":"doc-executing_sql_statements_that_don_t_return_data_-49978730","source":"documentation","title":"Executing SQL statements that don't return data - The Go Programming Language","url":"https://go.dev/doc/database/change-data","text":"Executing SQL statements that don't return data When you perform database actions that don’t return data, use an Exec or ExecContext method from the database/sql package. SQL statements you’d execute this way include INSERT, DELETE, and UPDATE. When your query might return rows, use a Query or QueryContext method instead. For more, see Querying a database. An ExecContext method works as an Exec method does, but with an additional context.Context argument, as described in Canceling in-progress operations. Code in the following example uses DB.Exec to execute a statement to add a new record album to an album table. func AddAlbum(alb Album) (int64, error) { result, err := db.Exec(\"INSERT INTO album (title, artist) VALUES (?, ?)\", alb.Title, alb.Artist) if err != nil { return 0, fmt.Errorf(\"AddAlbum: %v\", err) } // Get the new album's generated ID for the client. id, err := result.LastInsertId() if err != nil { return 0, fmt.Errorf(\"AddAlbum: %v\", err) } // Return the new album's ID. return id, nil } DB.Exec returns sql.Result and an error. When the error is nil, you can use the Result to get the ID of the last inserted item (as in the example) or to retrieve the number of rows affected by the operation. placeholders in prepared statements vary depending on the DBMS and driver you’re using. For example, the pq driver for Postgres requires a placeholder like $1 instead of ?. If your code will be executing the same SQL statement repeatedly, consider using an sql.Stmt to create a reusable prepared statement from the SQL statement. For more, see Using prepared statements. ’t use string formatting functions such as fmt.Sprintf to assemble an SQL statement! You could introduce an SQL injection risk. For more, see Avoiding SQL injection risk. Functions for executing SQL statements that don’t return rows Function Description DB.Exec DB.ExecContext Execute a single SQL statement in isolation. Tx.Exec Tx.ExecContext Execute a SQL statement within a larger transaction. For more, see Executing transactions. Stmt.Exec Stmt.ExecContext Execute an already-prepared SQL statement. For more, see Using prepared statements. Conn.ExecContext For use with reserved connections. For more, see Managing connections.\n\ngo.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. Okay\n\nExample:\n```text\nfunc AddAlbum(alb Album) (int64, error) {\n result, err := db.Exec(\"INSERT INTO album (title, artist) VALUES (?, ?)\", alb.Title, alb.Artist)\n if err != nil {\n return 0, fmt.Errorf(\"AddAlbum: %v\", err)\n }\n\n // Get the new album's generated ID for the client.\n id, err := result.LastInsertId()\n if err != nil {\n return 0, fmt.Errorf(\"AddAlbum: %v\", err)\n }\n // Return the new album's ID.\n return id, nil\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.515Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":23,"estimatedTokens":708}}326{"id":"doc-service_config_grpc-02bc184d","source":"documentation","title":"Service Config | gRPC","url":"https://grpc.io/docs/guides/service-config/","text":"gRPCAboutDocsGuidesVideosShowcaseBlogCommunitygRPConf 2026 is on Sept 3rd! - Register now ($50 until Jul 24th) or Submit a talk proposal (by Jun 14th)\n\nExample:\n```json\n{\n \"loadBalancingConfig\": [ { \"round_robin\": {} } ],\n \"methodConfig\": [\n {\n \"name\": [{}],\n \"timeout\": \"1s\"\n },\n {\n \"name\": [\n { \"service\": \"foo\", \"method\": \"bar\" },\n { \"service\": \"baz\" }\n ],\n \"timeout\": \"2s\"\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.889Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":23,"estimatedTokens":114}}327{"id":"doc-feature_flags_in_the_development_of_gitlab_gitla-44a542eb","source":"documentation","title":"Feature flags in the development of GitLab | GitLab Docs","url":"https://docs.gitlab.com/development/feature_flags/","text":"Example:\n```ruby\n# To enable it for the instance:\nFeature.enable(:<dev_flag_name>)\n\n# To disable it for the instance:\nFeature.disable(:<dev_flag_name>)\n\n# To enable for a specific project:\nFeature.enable(:<dev_flag_name>, Project.find(<project id>))\n\n# To disable for a specific project:\nFeature.disable(:<dev_flag_name>, Project.find(<project id>))\n```\n\nExample:\n```ruby\n# Check if the feature flag is enabled\nFeature.enabled?(:dev_flag_name)\n\n# Check if the feature flag is disabled\nFeature.disabled?(:dev_flag_name)\n```\n\nExample:\n```ruby\n# Check if feature flag is enabled\nFeature.enabled?(:my_wip_flag, project)\n\n# Check if feature flag is disabled\nFeature.disabled?(:my_wip_flag, project)\n\n# Push feature flag to Frontend\npush_frontend_feature_flag(:my_wip_flag, project)\n```\n\nExample:\n```ruby\n# Check if feature flag is enabled\nFeature.enabled?(:my_beta_flag, project)\n\n# Check if feature flag is disabled\nFeature.disabled?(:my_beta_flag, project)\n\n# Push feature flag to Frontend\npush_frontend_feature_flag(:my_beta_flag, project)\n```\n\nExample:\n```ruby\n# Check if feature flag is enabled\nFeature.enabled?(:my_ops_flag, project)\n\n# Check if feature flag is disabled\nFeature.disabled?(:my_ops_flag, project)\n\n# Push feature flag to Frontend\npush_frontend_feature_flag(:my_ops_flag, project)\n```\n\nExample:\n```shell\n$ bin/feature-flag my_feature_flag\n>> Specify the feature flag type\n?> beta\nYou picked the type 'beta'\n\n>> Specify the group label to which the feature flag belongs, from the following list:\n1. group::group1\n2. group::group2\n?> 2\nYou picked the group 'group::group2'\n\n>> URL of the original feature issue (enter to skip):\n?> https://gitlab.com/gitlab-org/gitlab/-/issues/435435\n\n>> URL of the MR introducing the feature flag (enter to skip and let Danger provide a suggestion directly in the MR):\n?> https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141023\n\n>> Username of the feature flag DRI (enter to skip):\n?> bob\n\n>> Is this an EE only feature (enter to skip):\n?> [Return]\n\n>> Press any key and paste the issue content that we copied to your clipboard! 🚀\n?> [Return automatically opens the \"New issue\" page where you only have to paste the issue content]\n\n>> URL of the rollout issue (enter to skip):\n?> https://gitlab.com/gitlab-org/gitlab/-/issues/437162\n\ncreate config/feature_flags/beta/my_feature_flag.yml\n---\nname: my_feature_flag\nfeature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/435435\nintroduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/141023\nrollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/437162\nmilestone: '16.9'\ngroup: group::composition analysis\ntype: beta\ndefault_enabled: false\n```\n\nExample:\n```shell\n/chatops gitlab run feature list --dev\n/chatops gitlab run feature list --staging\n```\n\nExample:\n```ruby\n# default_enabled copied from feature flag definition YAML before it is removed\nDEFAULT_ENABLED = true\n\ndef up\n up_migrate_to_jsonb_setting(feature_flag_name: :my_flag_name,\n setting_name: :my_setting,\n jsonb_column_name: :settings,\n default_enabled: DEFAULT_ENABLED)\nend\n\ndef down\n down_migrate_to_jsonb_setting(setting_name: :my_setting, jsonb_column_name: :settings)\nend\n```\n\nExample:\n```ruby\n# default_enabled copied from feature flag definition YAML before it is removed\nDEFAULT_ENABLED = true\n\ndef up\n up_migrate_to_setting(feature_flag_name: :my_flag_name,\n setting_name: :my_setting,\n default_enabled: DEFAULT_ENABLED)\nend\n\ndef down\n down_migrate_to_setting(setting_name: :my_setting, default_enabled: DEFAULT_ENABLED)\nend\n```\n\nExample:\n```ruby\nif Feature.enabled?(:my_feature_flag, project)\n # execute code if feature flag is enabled\nelse\n # execute code if feature flag is disabled\nend\n\nif Feature.disabled?(:my_feature_flag, project)\n # execute code if feature flag is disabled\nend\n```\n\nExample:\n```ruby\nif Feature.enabled?(:experiment_feature_flag, project, type: :experiment)\n # execute code if feature flag is enabled\nend\n\nif Feature.disabled?(:worker_feature_flag, project, type: :worker)\n # execute code if feature flag is disabled\nend\n```\n\nExample:\n```ruby\nclass MyClass\n if Feature.enabled?(:...)\n new_process\n else\n legacy_process\n end\nend\n```\n\nExample:\n```ruby\nbefore_action do\n # Prefer to scope it per project or user, for example\n push_frontend_feature_flag(:vim_bindings, project)\nend\n\ndef index\n # ...\nend\n\ndef edit\n # ...\nend\n```\n\nExample:\n```javascript\nif ( gon.features.vimBindings ) {\n // ...\n}\n```\n\nExample:\n```ruby\nbefore_action do\n push_frontend_feature_flag(:vim_bindings, project, type: :experiment)\nend\n```\n\nExample:\n```ruby\nFeature.enabled?(:feature_flag, project)\n```\n\nExample:\n```ruby\n# Bad -- Unnecessary query is executed\nFeature.enabled?(:feature_flag, Project.find(project_id))\n\n# Good -- No query for projects\nFeature.enabled?(:feature_flag, Project.actor_from_id(project_id))\n\n# Good -- Project model is used after feature flag check\nproject = Project.find(project_id)\nreturn unless Feature.enabled?(:feature_flag, project)\nproject.update!(column: value)\n```\n\nExample:\n```ruby\nFeature.enabled?(:feature_flag, group.root_ancestor)\n```\n\nExample:\n```ruby\nFeature.enabled?(:feature_flag_group, group)\nFeature.enabled?(:feature_flag_user, user)\n```\n\nExample:\n```ruby\nFeature.enabled?(:feature_flag, :instance)\n```\n\nExample:\n```ruby\n# Bad\nFeature.enable_percentage_of_time(:feature_flag, 40)\nFeature.enabled?(:feature_flag)\n\n# Good\nFeature.enable_percentage_of_actors(:feature_flag, 40)\nFeature.enabled?(:feature_flag, Feature.current_request)\n```\n\nExample:\n```ruby\nclass Foo < ActiveRecord::Base\n include FeatureGate\nend\n```\n\nExample:\n```ruby\nFeature.enabled?(:licensed_feature_feature_flag, project) &&\n project.feature_available?(:licensed_feature)\n```\n\nExample:\n```ruby\nFeature.enable(:feature_flag_name, :gitlab_team_members)\n```\n\nExample:\n```ruby\nFeature.enable(:feature_flag_name)\n```\n\nExample:\n```ruby\nFeature.disable(:feature_flag_name)\n```\n\nExample:\n```ruby\nFeature.enable(:feature_flag_name, Project.find_by_full_path(\"root/my-project\"))\n```\n\nExample:\n```ruby\nFeature.remove(:feature_flag_name)\n```\n\nExample:\n```ruby\nFeature.all.each(&:remove)\n```\n\nExample:\n```text\nflowchart LR\n FDOFF(Flag is currently<br>'default: off')\n FDON(Flag is currently<br>'default: on')\n CDO{Change to<br>'default: on'}\n ACF(added / changed / fixed / '...')\n RF{Remove flag}\n RF2{Remove flag}\n RC(removed / changed)\n OTHER(other)\n\n FDOFF -->CDO-->ACF\n FDOFF -->RF\n RF-->|Keep new code?| ACF\n RF-->|Keep old code?| OTHER\n\n FDON -->RF2\n RF2-->|Keep old code?| RC\n RF2-->|Keep new code?| OTHER\n```\n\nExample:\n```ruby\nstub_feature_flags(ci_live_trace: false)\n\nFeature.enabled?(:ci_live_trace) # => false\n```\n\nExample:\n```ruby\nit 'ci_live_trace works' do\n # tests assuming ci_live_trace is enabled in tests by default\n Feature.enabled?(:ci_live_trace) # => true\nend\n\ncontext 'when ci_live_trace is disabled' do\n before do\n stub_feature_flags(ci_live_trace: false)\n end\n\n it 'ci_live_trace does not work' do\n Feature.enabled?(:ci_live_trace) # => false\n end\nend\n```\n\nExample:\n```ruby\nproject1, project2 = build_list(:project, 2)\n\n# Feature will only be enabled for project1\nstub_feature_flags(ci_live_trace: project1)\n\nFeature.enabled?(:ci_live_trace) # => false\nFeature.enabled?(:ci_live_trace, project1) # => true\nFeature.enabled?(:ci_live_trace, project2) # => false\n```\n\nExample:\n```ruby\nFeature.enable(:my_feature)\nFeature.disable(:my_feature, project1)\nFeature.enabled?(:my_feature) # => true\nFeature.enabled?(:my_feature, project1) # => true\n\nFeature.disable(:my_feature2)\nFeature.enable(:my_feature2, project1)\nFeature.enabled?(:my_feature2) # => false\nFeature.enabled?(:my_feature2, project1) # => true\n```\n\nExample:\n```ruby\nstub_feature_flags(value_stream_analytics_path_navigation: false)\n\nvisit group_analytics_cycle_analytics_path(group)\n\nexpect(page).to have_pushed_frontend_feature_flags(valueStreamAnalyticsPathNavigation: false)\n```\n\nExample:\n```ruby\n# Good: disable the flag to test the disabled code path\nstub_feature_flags(my_feature: false)\n\n# Good: enable the flag only for specific actors, leaving it disabled elsewhere\nstub_feature_flags(my_feature: project)\nstub_feature_flags(my_feature: [project, project2])\n\n# Redundant: the flag is already enabled by default in tests, so this has no\n# effect unless the flag was disabled by default in spec/spec_helper.rb\nstub_feature_flags(my_feature: true)\n```\n\nExample:\n```ruby\n# Bad: prefer stub_feature_flags for simple enable/disable\nFeature.enable(:my_feature_2)\n\n# Good: enable my_feature for 50% of time\nFeature.enable_percentage_of_time(:my_feature_3, 50)\n\n# Good: enable my_feature for 50% of actors/gates/things\nFeature.enable_percentage_of_actors(:my_feature_4, 50)\n```\n\nExample:\n```ruby\nFeature.persisted_names.include?('my_feature') => true\nFeature.persisted_names.include?('my_feature_2') => true\nFeature.persisted_names.include?('my_feature_3') => true\nFeature.persisted_names.include?('my_feature_4') => true\n```\n\nExample:\n```ruby\ngate = stub_feature_flag_gate('CustomActor')\n\nstub_feature_flags(ci_live_trace: gate)\n\nFeature.enabled?(:ci_live_trace) # => false\nFeature.enabled?(:ci_live_trace, gate) # => true\n```\n\nExample:\n```shell\n# not running any jobs, deferring all 100% of the jobs\n/chatops gitlab run feature set run_sidekiq_jobs_SlowRunningWorker false\n\n# only running 10% of the jobs, deferring 90% of the jobs\n/chatops gitlab run feature set run_sidekiq_jobs_SlowRunningWorker 10\n\n# running 50% of the jobs, deferring 50% of the jobs\n/chatops gitlab run feature set run_sidekiq_jobs_SlowRunningWorker 50\n\n# back to running all jobs normally\n/chatops gitlab run feature delete run_sidekiq_jobs_SlowRunningWorker\n```\n\nExample:\n```shell\n# drop all the jobs\n/chatops gitlab run feature set drop_sidekiq_jobs_SlowRunningWorker true\n\n# process jobs normally\n/chatops gitlab run feature delete drop_sidekiq_jobs_SlowRunningWorker\n```\n\nExample:\n```ruby\nmodule MyFeature\n class MyFeatureFlagWorker\n include ApplicationWorker\n include Gitlab::EventStore::Subscriber\n\n data_consistency :always\n feature_category :your_category\n urgency :low\n\n idempotent!\n\n def handle_event(event)\n feature_key = event.data[:feature_key]\n operation = event.data[:operation]\n actor = event.data[:actor]\n\n case operation\n when Feature::OPERATION_ENABLED_ACTOR\n # Handle actor-specific enable\n when Feature::OPERATION_DISABLED_ACTOR\n # Handle actor-specific disable\n when Feature::OPERATION_ENABLED_GLOBALLY\n # Handle global enable\n when Feature::OPERATION_DISABLED_GLOBALLY\n # Handle global disable\n end\n end\n end\nend\n```\n\nExample:\n```ruby\ndef register\n # Subscribe to all changes for a specific feature flag\n store.subscribe ::MyFeature::MyFeatureFlagWorker,\n to: ::Gitlab::FeatureFlags::FeatureFlagModifiedEvent,\n if: ->(event) { event.data[:feature_key] == 'my_specific_flag' }\n\n # Subscribe to multiple feature flags\n store.subscribe ::MyFeature::MyFeatureFlagWorker,\n to: ::Gitlab::FeatureFlags::FeatureFlagModifiedEvent,\n if: ->(event) { %w[flag_one flag_two].include?(event.data[:feature_key]) }\n\n # Only trigger for actor-specific enables\n store.subscribe ::MyFeature::MyFeatureFlagWorker,\n to: ::Gitlab::FeatureFlags::FeatureFlagModifiedEvent,\n if: ->(event) do\n event.data[:feature_key] == 'my_specific_flag' &&\n event.data[:operation] == Feature::OPERATION_ENABLED_ACTOR\n end\n\n # Only trigger for global enables\n store.subscribe ::MyFeature::MyFeatureFlagWorker,\n to: ::Gitlab::FeatureFlags::FeatureFlagModifiedEvent,\n if: ->(event) do\n event.data[:feature_key] == 'my_specific_flag' &&\n event.data[:operation] == Feature::OPERATION_ENABLED_GLOBALLY\n end\nend\n```\n\nExample:\n```ruby\nactor = event.data[:actor]\n# => \"Group:456\"\n\nreturn if actor.nil? # Global operation\n\nactor_type, actor_id = actor.split(':', 2)\n\ncase actor_type\nwhen 'User'\n user = User.find(actor_id)\n # Process user\nwhen 'Group'\n group = Group.find(actor_id)\n # Process group\nwhen 'Project'\n project = Project.find(actor_id)\n # Process project\nend\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.740Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":44,"totalLines":532,"estimatedTokens":3041}}328{"id":"doc-branches_api_gitlab_docs-e1e12d03","source":"documentation","title":"Branches API | GitLab Docs","url":"https://docs.gitlab.com/api/branches/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint .gitlab-ci.ymlMarkdownMaven virtual registryMember rolesMerge request approvalsMerge request approval settingsMerge request context commitsMerge requestsMerge trainsMetadataModel registryNamespacesNotes (comments)Notification settingsOrbitOrganizationsPackage registryPages domainsPersonal access tokensPipeline schedulesPipeline trigger tokensPipelinesPlan limitsProjectsRepositoriesRepository filesRepository submodulesResource groupResource iteration eventsResource label eventsResource milestone eventsResource state eventsResource weight eventsRunnersRunner controllersRunner controller tokensSearchSearch migrationsSecrets Manager APISecure filesService accountsService PingSidekiq metricsSidekiq queuesSnippet repository storage movesSnippetsSuggestionsSystem hooksTagsTo-Do ListToken informationTopicsUsersUser applicationsVirtual registries cleanup policiesVulnerabilitiesVulnerability archive exportVulnerability exportVulnerability findingsWeb commitsAuthenticationThird-party clientsDeprecations and removalsOpenAPIAutomate storage managementTroubleshootingGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Editor and IDE extensionsGitLab Docs /Extend /REST API /Resources /BranchesHelp us learn about your current experience with the documentation. Take the survey.Branches , Premium, , GitLab Self-Managed, GitLab DedicatedUse this API to manage Git branches.To change the branch protections configured for a project, use the protected branches API.List all repository branchesLists all repository branches from a project, sorted by name alphabetically. Search by name, or use regular expressions to find specific branch patterns. Returns detailed information about the branch, including its protection status, merge status, and commit details.This endpoint can be accessed without authentication if the repository is publicly accessible.GET /projects/:id/repository/branchesSupported or stringYesID or URL-encoded path of the project.regexstringNoReturn list of branches with names matching a re2 regular expression. Cannot be used together with search.searchstringNoReturn list of branches containing the search string. You can use ^term to find branches that begin with term, and term$ to find branches that end with term.If successful, returns 200 OK and the following response true, the authenticated user can push to this branch.commitobjectDetails about the most recent commit on the branch.commit.author_emailstringEmail address of the user who authored the change.commit.author_namestringName of the user who authored the change.commit.authored_datedatetime (ISO 8601)When the commit was authored.commit.committed_datedatetime (ISO 8601)When the commit was committed.commit.committer_emailstringEmail address of the user who committed the change.commit.committer_namestringName of the user who committed the change.commit.created_atdatetime (ISO 8601)When the commit was created.commit.extended_trailersobjectExtended Git trailers parsed from the commit message.commit.idstringFull SHA of the commit.commit.messagestringFull commit message.commit.parent_idsarrayArray of parent commit SHAs.commit.short_idstringAbbreviated SHA of the commit.commit.titlestringTitle of the commit message.commit.trailersobjectGit trailers parsed from the commit message.commit.web_urlstringURL to view the commit in the GitLab UI.defaultbooleanIf true, the branch is the default branch for the project.developers_can_mergebooleanIf true, users with the Developer, Maintainer, or Owner role can merge to this branch.developers_can_pushbooleanIf true, users with the Developer, Maintainer, or Owner role can push to this branch.mergedbooleanIf true, the branch has been merged into the default branch.namestringName of the branch.protectedbooleanIf true, the branch is protected from force pushes and deletion.web_urlstringURL to view the branch in the GitLab UI.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches\"Example response:[ { \"name\": \"main\", \"merged\": false, \"protected\": true, \"default\": true, \"developers_can_push\": false, \"developers_can_merge\": false, \"can_push\": true, \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/tree/main\", \"commit\": { \"id\": \"7b5c3cc8be40ee161ae89a06bba6229da1032a0c\", \"short_id\": \"7b5c3cc\", \"created_at\": \"2024-06-28T03:44:20-07:00\", \"parent_ids\": [ \"4ad91d3c1144c406e50c7b33bae684bd6837faf8\" ], \"title\": \"add projects API\", \"message\": \"add projects API\", \"author_name\": \"John Smith\", \"author_email\": \"john@example.com\", \"authored_date\": \"2024-06-27T05:51:39-07:00\", \"committer_name\": \"John Smith\", \"committer_email\": \"john@example.com\", \"committed_date\": \"2024-06-28T03:44:20-07:00\", \"trailers\": {}, \"extended_trailers\": {}, \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/commit/7b5c3cc8be40ee161ae89a06bba6229da1032a0c\" } }, ... ]Retrieve a repository branchRetrieves a specified project repository branch.This endpoint can be accessed without authentication if the repository is publicly accessible.GET /projects/:id/repository/branches/:branchSupported or stringYesID or URL-encoded path of the project.branchstringYesURL-encoded name of the branch.If successful, returns 200 OK and the following response the authenticated user can push to this branch.commitobjectDetails about the latest commit on the branch.commit.author_emailstringEmail address of the commit author.commit.author_namestringName of the commit author.commit.authored_datestringDate and time when the commit was authored, in ISO 8601 format.commit.committer_emailstringEmail address of the user who committed the change.commit.committer_namestringName of the user who committed the change.commit.committed_datestringDate and time when the commit was committed, in ISO 8601 format.commit.created_atstringDate and time when the commit was created, in ISO 8601 format.commit.extended_trailersobjectExtended Git trailers parsed from the commit message.commit.idstringFull SHA of the commit.commit.messagestringFull commit message.commit.parent_idsarrayArray of parent commit SHAs.commit.short_idstringAbbreviated SHA of the commit.commit.titlestringTitle of the commit message.commit.trailersobjectGit trailers parsed from the commit message.commit.web_urlstringURL to view the commit in the GitLab UI.defaultbooleanWhether this is the default branch for the project.developers_can_mergebooleanWhether users with the Developer role can merge to this branch.developers_can_pushbooleanWhether users with the Developer role can push to this branch.mergedbooleanWhether the branch has been merged into the default branch.namestringName of the branch.protectedbooleanWhether the branch is protected from force pushes and deletion.web_urlstringURL to view the branch in the GitLab UI.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches/main\"Example response:{ \"name\": \"main\", \"merged\": false, \"protected\": true, \"default\": true, \"developers_can_push\": false, \"developers_can_merge\": false, \"can_push\": true, \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/tree/main\", \"commit\": { \"id\": \"7b5c3cc8be40ee161ae89a06bba6229da1032a0c\", \"short_id\": \"7b5c3cc\", \"created_at\": \"2012-06-28T03:44:20-07:00\", \"parent_ids\": [ \"4ad91d3c1144c406e50c7b33bae684bd6837faf8\" ], \"title\": \"add projects API\", \"message\": \"add projects API\", \"author_name\": \"John Smith\", \"author_email\": \"john@example.com\", \"authored_date\": \"2012-06-27T05:51:39-07:00\", \"committer_name\": \"John Smith\", \"committer_email\": \"john@example.com\", \"committed_date\": \"2012-06-28T03:44:20-07:00\", \"trailers\": {}, \"extended_trailers\": {}, \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/commit/7b5c3cc8be40ee161ae89a06bba6229da1032a0c\" } }Protect repository branchSee POST /projects/:id/protected_branches for information on protecting repository branches.Unprotect repository branchSee DELETE /projects/:id/protected_branches/:name for information on unprotecting repository branches.Create repository branchCreates a new branch in the repository.POST /projects/:id/repository/branchesSupported or stringYesID or URL-encoded path of the project.branchstringYesName of the branch. Cannot contain spaces or special characters except hyphens and underscores.refstringYesBranch name or commit SHA to create the branch from.If successful, returns 201 Created and the following response true, the authenticated user can push to this branch.commitobjectDetails about the latest commit on the branch.commit.author_emailstringEmail address of the commit author.commit.author_namestringName of the commit author.commit.authored_datestringDate and time when the commit was authored, in ISO 8601 format.commit.committed_datestringDate and time when the commit was committed, in ISO 8601 format.commit.committer_emailstringEmail address of the user who committed the change.commit.committer_namestringName of the user who committed the change.commit.created_atstringDate and time when the commit was created, in ISO 8601 format.commit.extended_trailersobjectExtended Git trailers parsed from the commit message.commit.idstringFull SHA of the commit.commit.messagestringFull commit message.commit.parent_idsarrayArray of parent commit SHAs.commit.short_idstringAbbreviated SHA of the commit.commit.titlestringTitle of the commit message.commit.trailersobjectGit trailers parsed from the commit message.commit.web_urlstringURL to view the commit in the GitLab UI.defaultbooleanIf true, sets this branch as the default branch for the project.developers_can_mergebooleanIf true, users with the Developer role can merge to this branch.developers_can_pushbooleanIf true, users with the Developer role can push to this branch.mergedbooleanIf true, the branch merged into the default branch.namestringName of the branch.protectedbooleanIf true, the branch is protected from force pushes and deletion.web_urlstringURL to view the branch in the GitLab UI.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches?branch=newbranch&ref=main\"Example response:{ \"commit\": { \"id\": \"7b5c3cc8be40ee161ae89a06bba6229da1032a0c\", \"short_id\": \"7b5c3cc\", \"created_at\": \"2012-06-28T03:44:20-07:00\", \"parent_ids\": [ \"4ad91d3c1144c406e50c7b33bae684bd6837faf8\" ], \"title\": \"add projects API\", \"message\": \"add projects API\", \"author_name\": \"John Smith\", \"author_email\": \"john@example.com\", \"authored_date\": \"2012-06-27T05:51:39-07:00\", \"committer_name\": \"John Smith\", \"committer_email\": \"john@example.com\", \"committed_date\": \"2012-06-28T03:44:20-07:00\", \"trailers\": {}, \"extended_trailers\": {}, \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/commit/7b5c3cc8be40ee161ae89a06bba6229da1032a0c\" }, \"name\": \"newbranch\", \"merged\": false, \"protected\": false, \"default\": false, \"developers_can_push\": false, \"developers_can_merge\": false, \"can_push\": true, \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/tree/newbranch\" }Delete repository branchDeletes a specified branch from the repository.In the case of an error, an explanation message is provided.DELETE /projects/:id/repository/branches/:branchSupported or stringYesID or URL-encoded path of the project.branchstringYesURL-encoded name of the branch. Cannot delete the default branch or protected branches.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches/newbranch\"Deleting a branch does not completely erase all related data. Some information persists to maintain project history and to support recovery processes. For more information, see handle sensitive information.Delete all merged branchesDeletes all branches that are merged into the project’s default branch.Protected branches are not deleted as part of this operation.DELETE /projects/:id/repository/merged_branchesSupported or stringYesID or URL-encoded path of the project.If successful, returns 202 Accepted.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/merged_branches\"Related topicsBranchesProtected branchesProtected branches APIList all repository branchesRetrieve a repository branchProtect repository branchUnprotect repository branchCreate repository branchDelete repository branchDelete all merged branchesRelated topics\n\nExample:\n```plaintext\nGET /projects/:id/repository/branches\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches\"\n```\n\nExample:\n```json\n[\n {\n \"name\": \"main\",\n \"merged\": false,\n \"protected\": true,\n \"default\": true,\n \"developers_can_push\": false,\n \"developers_can_merge\": false,\n \"can_push\": true,\n \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/tree/main\",\n \"commit\": {\n \"id\": \"7b5c3cc8be40ee161ae89a06bba6229da1032a0c\",\n \"short_id\": \"7b5c3cc\",\n \"created_at\": \"2024-06-28T03:44:20-07:00\",\n \"parent_ids\": [\n \"4ad91d3c1144c406e50c7b33bae684bd6837faf8\"\n ],\n \"title\": \"add projects API\",\n \"message\": \"add projects API\",\n \"author_name\": \"John Smith\",\n \"author_email\": \"john@example.com\",\n \"authored_date\": \"2024-06-27T05:51:39-07:00\",\n \"committer_name\": \"John Smith\",\n \"committer_email\": \"john@example.com\",\n \"committed_date\": \"2024-06-28T03:44:20-07:00\",\n \"trailers\": {},\n \"extended_trailers\": {},\n \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/commit/7b5c3cc8be40ee161ae89a06bba6229da1032a0c\"\n }\n },\n ...\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/repository/branches/:branch\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches/main\"\n```\n\nExample:\n```json\n{\n \"name\": \"main\",\n \"merged\": false,\n \"protected\": true,\n \"default\": true,\n \"developers_can_push\": false,\n \"developers_can_merge\": false,\n \"can_push\": true,\n \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/tree/main\",\n \"commit\": {\n \"id\": \"7b5c3cc8be40ee161ae89a06bba6229da1032a0c\",\n \"short_id\": \"7b5c3cc\",\n \"created_at\": \"2012-06-28T03:44:20-07:00\",\n \"parent_ids\": [\n \"4ad91d3c1144c406e50c7b33bae684bd6837faf8\"\n ],\n \"title\": \"add projects API\",\n \"message\": \"add projects API\",\n \"author_name\": \"John Smith\",\n \"author_email\": \"john@example.com\",\n \"authored_date\": \"2012-06-27T05:51:39-07:00\",\n \"committer_name\": \"John Smith\",\n \"committer_email\": \"john@example.com\",\n \"committed_date\": \"2012-06-28T03:44:20-07:00\",\n \"trailers\": {},\n \"extended_trailers\": {},\n \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/commit/7b5c3cc8be40ee161ae89a06bba6229da1032a0c\"\n }\n}\n```\n\nExample:\n```plaintext\nPOST /projects/:id/repository/branches\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches?branch=newbranch&ref=main\"\n```\n\nExample:\n```json\n{\n \"commit\": {\n \"id\": \"7b5c3cc8be40ee161ae89a06bba6229da1032a0c\",\n \"short_id\": \"7b5c3cc\",\n \"created_at\": \"2012-06-28T03:44:20-07:00\",\n \"parent_ids\": [\n \"4ad91d3c1144c406e50c7b33bae684bd6837faf8\"\n ],\n \"title\": \"add projects API\",\n \"message\": \"add projects API\",\n \"author_name\": \"John Smith\",\n \"author_email\": \"john@example.com\",\n \"authored_date\": \"2012-06-27T05:51:39-07:00\",\n \"committer_name\": \"John Smith\",\n \"committer_email\": \"john@example.com\",\n \"committed_date\": \"2012-06-28T03:44:20-07:00\",\n \"trailers\": {},\n \"extended_trailers\": {},\n \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/commit/7b5c3cc8be40ee161ae89a06bba6229da1032a0c\"\n },\n \"name\": \"newbranch\",\n \"merged\": false,\n \"protected\": false,\n \"default\": false,\n \"developers_can_push\": false,\n \"developers_can_merge\": false,\n \"can_push\": true,\n \"web_url\": \"https://gitlab.example.com/my-group/my-project/-/tree/newbranch\"\n}\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/repository/branches/:branch\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/branches/newbranch\"\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/repository/merged_branches\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/merged_branches\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.762Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":13,"totalLines":163,"estimatedTokens":4468}}329{"id":"doc-internal_executor_interface_gitlab_docs-c6144e77","source":"documentation","title":"Internal Executor Interface | GitLab Docs","url":"https://docs.gitlab.com/runner/development/internal/engineering/executor_interface/","text":"Contribute to GitLabContribute to GitLab RunnerReview GitLab RunnerAdd new Windows version support for Docker executorInternal executor interfacePackages iterationKubernetes integration testsContribute to GitLab PagesContribute to GitLab DistributionContribute to documentationGitLab Docs /Contribute /Contribute to GitLab Run… /Internal executor interfaceHelp us learn about your current experience with the documentation. Take the survey.Internal Executor InterfaceAs this is a documentation of the code internals, it’s easier to get it outdated than documentation of configuration, behaviors or features that we expose to the users. This page is accurate as for the date of Runner uses a concept of what we name executors to define a way of how a job may be executed.While the current philosophy behind GitLab CI/CD job execution is that everything is a shell script, this script may be executed in a different ways, for a shell directly on a host where GitLab Runner is working,in a shell on an external host available through SSH,in a shell in a virtual machine managed by VirtualBox or Parallels,in a shell in a container managed by Docker,and few others. There is also the Custom Executor, which allows the user to interact with a very simple externally exposed interface to implement their own way of job execution.All of these executors are orchestrated internally by GitLab Runner process. And for that Runner is using a set of Go interfaces that need to be implemented by the executor to work.The two main interfaces (part of the common package) that manage an executor’s lifetime and job execution Executor interface { // Shell returns data about the shell and scripts this executor is bound to. Shell() *ShellScriptInfo // Prepare prepares the environment for build execution. e.g. connects to SSH, creates containers. Prepare(options ExecutorPrepareOptions) error // Run executes a command on the prepared environment. Run(cmd ExecutorCommand) error // Finish marks the build execution as finished. Finish(err error) // Cleanup cleans any resources left by build execution. Cleanup() // GetCurrentStage returns current stage of build execution. GetCurrentStage() ExecutorStage // SetCurrentStage sets the current stage of build execution. SetCurrentStage(stage ExecutorStage) } type ExecutorProvider interface { // CanCreate returns whether the executor provider has the necessary data to create an executor. CanCreate() bool // Create creates a new executor. No resource allocation happens. Create() Executor // Acquire acquires the necessary resources for the executor to run, e.g. finds a virtual machine. Acquire(config *RunnerConfig) (ExecutorData, error) // Release releases any resources locked by Acquire. Release(config *RunnerConfig, data ExecutorData) // GetFeatures returns metadata about the features the executor supports, e.g. variables, services, shell. GetFeatures(features *FeaturesInfo) error // GetConfigInfo extracts metadata about the config the executor is using, e.g. GPUs. GetConfigInfo(input *RunnerConfig, output *ConfigInfo) // GetDefaultShell returns the name of the default shell for the executor. GetDefaultShell() string }All the existing executors are also extending the executors.AbstractExecutor struct (named AbstractExecutor further in this document), which implements a small, common set of features. While there is no protection in code that would ensure usage of AbstractExecutor (until the new code implements the interfaces - it will work), it’s expected that the new executors will extend it - to ensure consistent behavior of some features across executors.For convenience there is also the executors.DefaultExecutorProvider that implements the ExecutorProvider interface and is suitable for most cases. However, each executor may decide to implement its provider independently (which in fact is currently done only by the Docker Machine executor).What’s important, because both Executor and ExecutorProvider are interfaces, the implementation allows to “stack” different structs. The usage of this possibility will be shown with one of the examples.Executor interfaceThe Executor interface is responsible for the job execution management.The described methods are managing preparation of the job environment (Prepare()), job script executions (Run() and Finish(); job steps are executed with a separate Run() calls) and job environment cleanup (Cleanup()).It also provides integration for internal Prometheus metrics exporter to label some relevant metrics with information about the current executor usage stage (GetCurrentStage(), SetCurrentStage()).The Shell() method is currently used in one place, and it’s fully implemented in the mentioned AbstractExecutor struct. Given the existing implementation and evolution of different executors over time, it seems that this method should be pulled off the executor interface and handled in some different way. Hopefully - in a way that will enforce usage of AbstractExecutor.Usage of the interface, in very simplification, goes as instance of an executor was provided and assigned to a received job.Shell() is called to get the configuration of a shell. It’s used to prepare all the scripts that will be executed for the job.Prepare() is called to prepare the job environment (for example creating a Kubernetes Pod, a set of Docker containers or a VirtualBox VM). It’s also a place for the specific executor implementation to handle its own preparation. Through the usage of AbstractExecutor all the executors will also get access to some common features like for example job trace object.Run() is called several times, each time containing details about the script for a job execution step to be executed with the executor.Finish() is called after execution of all job stages is done and when job is being marked as finished. Some executors may take a usage of this moment. Most of them defers to AbstractExecutor.Cleanup() is called to cleanup the job environment. It’s the opposite of Prepare().Additionally SetCurrentStage() is called internally by the executors (however most of them defer to AbstractExecutor) to mark on what executor usage stage the system is now within this executor instance. And GetCurrentStage() is called externally in random moments by the metrics collector. The value is then used to summarize information about different jobs and label some of the metrics.ExecutorProvider interfaceThe ExecutorProvider interface is responsible for preparation of the executor itself. It builds an abstraction around the Executor concept. With this abstraction, what the user configures with the config.toml executor setting is in fact the executor provider. And then for every job executed by the runner a new, independent instance of the executor is prepared. The maintenance of the executor is done by the ExecutorProvider.The described methods are managing creation of the executor instance (CanCreate(), Create()), reservation of provider’s resources for a potential job (Acquire(), Release()). There is also support for gathering some information that should be reported to GitLab when requesting jobs (GetFeatures(), GetConfigInfo()). And finally a method that gives information about the shell that should be used with the provided executor (GetDefaultShell()).Usage of the interface, in very simplification, goes as (), GetFeatures() and GetDefaultShell() are executed at the provider registration to validate that the provider is able to work in general.Before requesting a new job for the specific [[runners]] worker the Acquire() is called to check and do a reservation of provider resources for the job. This is a place where the provider may control its capacity and return information about some preallocated resources.GetFeatures() is called several times to ensure that information about features supported by Runner can be sent back with different API requests to GitLab. One of the calls is made when preparing the initial request for a job.Same goes for the GetConfigInfo() which is called only once, when preparing the initial request for a job. It allows to send some information about used configuration to GitLab.Same goes for the GetDefaultShall() which is also called only once, when preparing the initial request for a job. It allows to send information about used shell to GitLab.If the job was received, it’s preparation is started and at some moment Create() is called to create a new instance of the executor.When the job execution is fully done, Release() is called. This is a place where the provider may handle releasing resources that were previously reserved for the job.List of features that can be reported to GitLab can be found in the FeaturesInfo struct in common/network.go.DefaultExecutorProviderAs DefaultExecutorProvider is currently one of two existing implementations of ExecutorProvider interface and is used by most of the executors, let’s describe how it’s built.type DefaultExecutorProvider struct { Creator func() common.Executor FeaturesUpdater func(features *common.FeaturesInfo) ConfigUpdater func(input *common.RunnerConfig, output *common.ConfigInfo) DefaultShellName string }The Creator is the most important part. It’s a function that returns a new instance of the given Executor interface implementation. It is being implemented by each of the executors. It’s required to be implemented.The interface’s CanCreate() method will fail if the Creator is left empty. Call to provider’s Create() is proxied to the Creator function.FeaturesUpdater and ConfigUpdater are functions that allow to request the feature and config information. All executors are using these functions to expose information about supported features or config details. The FeaturesUpdater is optional and every executor have to report which features from the list are supported. ConfigUpdater is optional and can be skipped. DefaultShellName must be set by every executor.Provider’s GetFeatures(), GetConfigInfo(), GetDefaultShell() calls will use the defined updaters and the shell name to expose needed data to the caller.Acquire() and Release() are a NOOP. DefaultExecutorProvider doesn’t use the concept of resources management and simply creates a new instance of the executor for every call.Usage examplesShellShell executor is the simplest executor that GitLab Runner provides. It executes the job script in a simple shell process, created directly on the host where GitLab Runner is running itself. There is no virtualization, no containers, no network communication here.ExecutorProviderShell executor uses the DefaultExecutorProvider. It reports usage of very limited number of features (two in all cases, two more if the platform is not windows). It doesn’t expose any configuration details.The shell depends on what’s the default value for the platform where the Runner is operating. It’s configured as a login shell.ExecutorPrepare() doesn’t have anything specific. As the shell executor executes everything directly in the system where Runner process exists, it just makes sure that the builds and cache paths are usable. After that it defers to AbstractExecutor steps of preparation.Run() uses the provided script details to construct os/exec.Cmd call. Shell executor ensures that STDIN/STDOUT/STDERR are passed properly between the script execution shell process started by that call and the job trace object. It also detects the exit code of the command and reports it back as expected by the interface.There is no custom implementation of Finish() nor Cleanup(). The executor defers to the common steps in AbstractExecutor.DockerDocker executor is probably the most powerful and mature of GitLab Runner executors. It supports most of the features available in .gitlab-ci.yml. It allows to run every job in an environment separated from other jobs. All jobs are however executed on one host and the capacity of the runner is limited by that host’s available resources.Docker executor comes with a special variant - the SSH one. To make this documentation easier to understand (as the executor descriptions are just examples to help understand how the executor interface works) we will describe just the “normal” variant of Docker executor.There is also the windows variant of the executor. We will not include its details in this description as well.In Docker executor the jobs are executed in Docker containers. Each job gets a set of connected containers sharing at least one volume with the working directory. The main container is created from the image specified by the user. It needs to expose a shell where Runner will execute the script. Additionally, Runner will create what we call predefined container from the helper image provided by Runner. This container will be used to execute scripts handling common tasks like updating the Git and Git LFS sources, operating with cache and operating with artifacts.Depending on the job configuration Runner may create more containers for the defined services. These will be linked by the networking to the main container, so that the job script can utilize network available services exposed by them.ExecutorProviderDocker executor also uses the DefaultExecutorProvider. It reports usage of few more executor-related features, and additionally it reports some configuration details.The shell is hardcoded and differs between the platforms. In case of the most popular linux variant of Docker executor, it’s configured as a non-login shell.ExecutorPrepare() is highly utilized in this executor. During that step Runner will prepare different internal tools (like volumes manager or network manager) and set up the basic configuration that will be next used by the containers for job execution. It’s also the step when all the images defined for the job are pulled. Creation of volumes, device binding and service containers also happens during that step.After Prepare() is done the environment should be fully ready to start creating predefined/job step execution containers, connecting them to the whole stack and execute scripts in them.Run() creates predefined or job step containers, attaches to them and executes the script in a shell that should be running as the main process of the container. It proxies the STDOUT and STDERR of the containers to the job trace object. It also uses the Docker Engine API to detect the script execution exit code.Finish() doesn’t have any custom behavior here, and it just defers to the AbstractExecutor.Cleanup() is the opposite of Prepare(), so it removes all the defined resources like containers, volumes (that were not configured as persistent), job specific network (if used).Docker Machine (autoscaling capabilities)Docker Machine executor is in fact an autoscaling provider built on top of the regular Docker executor.It takes advantage of the interface concept and encapsulates the Docker executor in itself. Responsibility of Docker Machine executor is mostly focused on the ExecutorProvider interface. With that it manages a pool of VMs with Docker Engine running on them. Management is done by using the Docker Machine tool by running an os/exec.Cmd calls to it.Management of the VMs may be done in “on-demand” or “autoscaled in background” modes. Chosen mode depends on configuration provided by the user. In the first mode the VMs will be created for each received job, until the limit of jobs is reached. In the second mode it will maintain a configurable set of Idle VMs that await for jobs. Jobs are then requested only when there is at least one Idle VM. When one Idle VM is taken for a received job, another is created to replace it. When the VM is returned to the pool (if configured to do so) and the number of Idle exceeds the defined limit, the provider starts to remove some of them. This loop that tries to maintain the desired number of Idle VMs and desired total number of managed VMs works all the time in the background.Docker Machine executor is currently implemented in a way that it allows execution of only one job at once on a single VM.For the execution of jobs Docker Machine executor uses the Docker executor and fact, that one can configure access credentials of the Docker Engine API. With that the Docker Machine provider manages the VMs, chooses a VM for a job and instantiates the Docker executor, automatically configuring it to use the credentials and API endpoint of the VM. With that jobs are executed like with the normal Docker executor (supporting all the different features available for it in .gitlab-ci.yml syntax), but does that on an external host, independent for each job.ExecutorProviderDocker Machine executor brings its own implementation of the ExecutorProvider interface!However, as it internally uses the Docker executor, it also instantiates the Docker executor provider (which itself is the specific configuration of DefaultExecutorProvider) and either proxies some calls to it directly or calls it internally for its own purpose.CanCreate() is proxied directly to Docker executor. Same goes for GetFeatures(), GetConfigInfo() and GetDefaultShell().Create() is very simple as its returns the machineExecutor (implementation of the Executor interface) with access to itself, so that steps like Prepare() or Cleanup() can use it to maintain the autoscaled VMs (more about that will be described below).This provider is also the one that finally takes the usage of Acquire() and Release() methods of the Executor Provider interface.Behavior of Acquire() depends on the configured mode.In the “on-demand” mode it’s used as a place to kick one of the old machines cleanup calls. It doesn’t do any real acquiring and even logs that with IdleCount is set to 0 so the machine will be created on demand in job context (this is not user facing and available in the Runner process logs). With that the provider will try to create the VM in context of the job. If there is anything that will cause a the defined limits in autoscaling configuration, wrong autoscaling configuration, cloud provider errors, Docker Engine availability problems - it will cause a failure of the job.In the “autoscaled in background” mode, it will check if there is any Idle VM that is available. If it is, it will reserve it and allow Runner to send a request for new job. If job is received, it will get information about the acquired VM. If there is no available Idle VMs, then the call to Acquire() will fail, which will prevent Runner from sending a request for a job (and in Runner logs will be logged as the no free machines that can process builds warning).Release() behaves in the same in both modes. It will check if the VM that was used for the job is applicable for removal and will trigger a remove in that case. In other cases, it will signal the internal autoscaling coordination mechanism that the VM was released and it’s back in the Idle pool, so that it can be used again.ExecutorThe Executor interface implementation is also a mix of a code specific for Docker Machine executor and encapsulation of Docker executor. Docker Machine executor injects all the work needed to maintain, chose and use the VMs and to configure the dedicated Docker executor instance, and then it depends on this executor to handle the rest.Shell() call defers to Docker executor, which itself defers to AbstractExecutor (as all the executors do).Prepare() prepares the VM to use. Depending on the configured mode it may mean using the preallocated VM or creating it on-demand. In the “on-demand” mode this is the place where eventual failure caused by VM creation may fail the job. Having the VM details it updates the configuration of Docker executor by pointing the host and credentials to access Docker Engine and instantiates the Docker executor provider. Finally, it calls Docker Executor’s Prepare() to handle all the job environment preparation as it was described in the previous example.Run() and Finish() have no specific behavior. They simply proxy the call to the internal Docker executor.GetCurrentStage() and SetCurrentStage() are also proxies to the Docker executor, which itself defers to the AbstractExecutor implementation.Finally, the Cleanup() call does two things. First, it internally calls Docker executor’s Cleanup() method to clean the job environment on the VM as it was described in the previous example. Then it calls providers Release() to signal that the job is done and that the VM can be released.InterfacesExecutor interfaceExecutorProvider interfaceDefaultExecutorProviderUsage examplesShellExecutorProviderExecutorDockerExecutorProviderExecutorDocker Machine (autoscaling capabilities)ExecutorProviderExecutor\n\nExample:\n```go\ntype Executor interface {\n // Shell returns data about the shell and scripts this executor is bound to.\n Shell() *ShellScriptInfo\n // Prepare prepares the environment for build execution. e.g. connects to SSH, creates containers.\n Prepare(options ExecutorPrepareOptions) error\n // Run executes a command on the prepared environment.\n Run(cmd ExecutorCommand) error\n // Finish marks the build execution as finished.\n Finish(err error)\n // Cleanup cleans any resources left by build execution.\n Cleanup()\n // GetCurrentStage returns current stage of build execution.\n GetCurrentStage() ExecutorStage\n // SetCurrentStage sets the current stage of build execution.\n SetCurrentStage(stage ExecutorStage)\n}\n\ntype ExecutorProvider interface {\n // CanCreate returns whether the executor provider has the necessary data to create an executor.\n CanCreate() bool\n // Create creates a new executor. No resource allocation happens.\n Create() Executor\n // Acquire acquires the necessary resources for the executor to run, e.g. finds a virtual machine.\n Acquire(config *RunnerConfig) (ExecutorData, error)\n // Release releases any resources locked by Acquire.\n Release(config *RunnerConfig, data ExecutorData)\n // GetFeatures returns metadata about the features the executor supports, e.g. variables, services, shell.\n GetFeatures(features *FeaturesInfo) error\n // GetConfigInfo extracts metadata about the config the executor is using, e.g. GPUs.\n GetConfigInfo(input *RunnerConfig, output *ConfigInfo)\n // GetDefaultShell returns the name of the default shell for the executor.\n GetDefaultShell() string\n}\n```\n\nExample:\n```go\ntype DefaultExecutorProvider struct {\n Creator func() common.Executor\n FeaturesUpdater func(features *common.FeaturesInfo)\n ConfigUpdater func(input *common.RunnerConfig, output *common.ConfigInfo)\n DefaultShellName string\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:09.814Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":50,"estimatedTokens":5653}}330{"id":"doc-speed_up_job_execution_gitlab_docs-c4c6cbbd","source":"documentation","title":"Speed up job execution | GitLab Docs","url":"https://docs.gitlab.com/runner/configuration/speed_up_job_execution/","text":"Example:\n```shell\ndocker run -d -p 6000:5000 \\\n -e REGISTRY_PROXY_REMOTEURL=https://registry-1.docker.io \\\n --restart always \\\n --name registry registry:2\n```\n\nExample:\n```shell\nhostname --ip-address\n```\n\nExample:\n```shell\ndocker run -d --restart always -p 9005:9000 \\\n -v /.minio:/root/.minio -v /export:/export \\\n -e \"MINIO_ROOT_USER=<minio_root_username>\" \\\n -e \"MINIO_ROOT_PASSWORD=<minio_root_password>\" \\\n --name minio \\\n minio/minio:latest server /export\n```\n\nExample:\n```shell\nsudo mkdir /export/runner\n```\n\nExample:\n```yaml\nvariables:\n CACHE_COMPRESSION_LEVEL: fastest\n CACHE_COMPRESSION_FORMAT: zip\n```\n\nExample:\n```yaml\nvariables:\n CACHE_TRANSFER_BUFFER_SIZE: \"8388608\"\n```\n\nExample:\n```yaml\nvariables:\n CACHE_CHUNK_SIZE: \"33554432\"\n CACHE_CONCURRENCY: \"32\"\n```\n\nExample:\n```yaml\nvariables:\n ARTIFACT_COMPRESSION_LEVEL: fastest\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:10.888Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":55,"estimatedTokens":227}}331{"id":"doc-update_your_app_kubernetes-1e261887","source":"documentation","title":"Update Your App | Kubernetes","url":"https://kubernetes.io/docs/tutorials/kubernetes-basics/update/","text":"KubernetesDocumentationKubernetes BlogTrainingCareersPartnersCommunityVersionsRelease Informationv1.36v1.35v1.34v1.33v1.32Englishবাংলা (Bengali)中文 (Chinese)Français (French)Deutsch (German)हिन्दी (Hindi)Bahasa Indonesia (Indonesian)日本語 (Japanese)한국어 (Korean)Polski (Polish)Русский (Russian)Español (Spanish)Українська (Ukrainian)Italiano (Italian) فارسی (Persian) Português (Portuguese) Tiếng Việt (Vietnamese) Light Dark AutoUpdate Your App\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:47.797Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":114}}332{"id":"doc-cards_stripe_api_reference-36f21ef0","source":"documentation","title":"Cards | Stripe API Reference","url":"https://docs.stripe.com/api/cards?api-version=2025-09-30.preview","text":"Example:\n```text\n{ \"id\": \"card_1MvoiELkdIwHu7ixOeFGbN9D\", \"object\": \"card\", \"address_city\": null, \"address_country\": null, \"address_line1\": null, \"address_line1_check\": null, \"address_line2\": null, \"address_state\": null, \"address_zip\": null, \"address_zip_check\": null, \"brand\": \"Visa\", \"country\": \"US\", \"customer\": \"cus_NhD8HD2bY8dP3V\", \"cvc_check\": null, \"dynamic_last4\": null, \"exp_month\": 4, \"exp_year\": 2024, \"fingerprint\": \"mToisGZ01V71BCos\", \"funding\": \"credit\", \"last4\": \"4242\", \"metadata\": {}, \"name\": null, \"tokenization_method\": null, \"wallet\": null}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/customers/{{CUSTOMER_ID}}/sources \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Version: 2025-09-30.preview\" \\ -d source=tok_visa\n```\n\nExample:\n```text\n{ \"id\": \"card_1NGTaT2eZvKYlo2CZWSctn5n\", \"object\": \"card\", \"address_city\": null, \"address_country\": null, \"address_line1\": null, \"address_line1_check\": null, \"address_line2\": null, \"address_state\": null, \"address_zip\": null, \"address_zip_check\": null, \"brand\": \"Visa\", \"country\": \"US\", \"customer\": \"cus_9s6XGDTHzA66Po\", \"cvc_check\": \"pass\", \"dynamic_last4\": null, \"exp_month\": 8, \"exp_year\": 2024, \"fingerprint\": \"Xt5EWLLDS7FJjR1c\", \"funding\": \"credit\", \"last4\": \"4242\", \"metadata\": {}, \"name\": null, \"redaction\": null, \"tokenization_method\": null, \"wallet\": null}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.101Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":16,"estimatedTokens":360}}333{"id":"doc-early_fraud_warnings_stripe_api_reference-b04b3cff","source":"documentation","title":"Early Fraud Warnings | Stripe API Reference","url":"https://docs.stripe.com/api/radar/early_fraud_warnings","text":"Example:\n```text\n{ \"id\": \"issfr_1NnrwHBw2dPENLoi9lnhV3RQ\", \"object\": \"radar.early_fraud_warning\", \"actionable\": true, \"charge\": \"ch_1234\", \"created\": 123456789, \"fraud_type\": \"misc\", \"livemode\": false}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/radar/early_fraud_warnings/{{EARLY_FRAUD_WARNING_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.180Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":102}}334{"id":"doc-use_the_registrations_api_to_manage_tax_registra-e981fa22","source":"documentation","title":"Use the Registrations API to manage tax registrations | Stripe Documentation","url":"https://docs.stripe.com/tax/registrations-api","text":"Example:\n```text\ncurl -G https://api.stripe.com/v1/tax/registrations \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d status=active \\\n -d limit=3\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/tax/registrations \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d country=IE \\\n -d \"country_options[ie][type]=oss_union\" \\\n -d active_from=now\n```\n\nExample:\n```text\n{\n \"object\": \"tax.registration\",\n \"active_from\": 1669249440,\n \"country\": \"IE\",\n \"country_options\": {\n \"ie\": {\n \"type\": \"oss_union\"\n }\n },\n \"livemode\": false,\n \"status\": \"active\",\n ...\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/tax/settings \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"head_office[address][country]=DE\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/tax/registrations/taxreg_NkyGPRPytKq66j \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d expires_at=now\n```\n\nExample:\n```text\n{\n \"object\": \"tax.registration\",\n \"active_from\": 1669248000,\n \"created\": 1669219200,\n \"expires_at\": 1669334400,\n \"livemode\": false,\n \"status\": \"active\",\n ...\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.201Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":66,"estimatedTokens":323}}335{"id":"doc-the_tax_calculation_object_stripe_api_reference-aafefb86","source":"documentation","title":"The Tax Calculation object | Stripe API Reference","url":"https://docs.stripe.com/api/tax/calculations/object","text":"Example:\n```text\n{ \"id\": \"taxcalc_1OduxkBUZ691iUZ4iWvpMApI\", \"object\": \"tax.calculation\", \"amount_total\": 1953, \"currency\": \"usd\", \"customer\": null, \"customer_details\": { \"address\": { \"city\": \"Seattle\", \"country\": \"US\", \"line1\": \"920 5th Ave\", \"line2\": null, \"postal_code\": \"98104\", \"state\": \"WA\" }, \"address_source\": \"shipping\", \"ip_address\": null, \"tax_ids\": [], \"taxability_override\": \"none\" }, \"expires_at\": 1706708005, \"line_items\": { \"object\": \"list\", \"data\": [ { \"id\": \"tax_li_PSqf3RMNZa23H4\", \"object\": \"tax.calculation_line_item\", \"amount\": 1499, \"amount_tax\": 154, \"livemode\": false, \"product\": null, \"quantity\": 1, \"reference\": \"Music Streaming Coupon\", \"tax_behavior\": \"exclusive\", \"tax_code\": \"txcd_10000000\" } ], \"has_more\": false, \"total_count\": 1, \"url\": \"/v1/tax/calculations/taxcalc_1OduxkBUZ691iUZ4iWvpMApI/line_items\" }, \"livemode\": false, \"ship_from_details\": null, \"shipping_cost\": { \"amount\": 300, \"amount_tax\": 0, \"tax_behavior\": \"exclusive\", \"tax_code\": \"txcd_92010001\" }, \"tax_amount_exclusive\": 154, \"tax_amount_inclusive\": 0, \"tax_breakdown\": [ { \"amount\": 154, \"inclusive\": false, \"tax_rate_details\": { \"country\": \"US\", \"percentage_decimal\": \"10.25\", \"state\": \"WA\", \"tax_type\": \"sales_tax\" }, \"taxability_reason\": \"standard_rated\", \"taxable_amount\": 1499 }, { \"amount\": 0, \"inclusive\": false, \"tax_rate_details\": { \"country\": \"DE\", \"percentage_decimal\": \"0.0\", \"state\": null, \"tax_type\": \"vat\" }, \"taxability_reason\": \"zero_rated\", \"taxable_amount\": 300 } ], \"tax_date\": 1706535204}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/tax/calculations \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d currency=usd \\ -d \"customer_details[address][line1]=920 5th Ave\" \\ -d \"customer_details[address][city]=Seattle\" \\ -d \"customer_details[address][state]=WA\" \\ -d \"customer_details[address][postal_code]=98104\" \\ -d \"customer_details[address][country]=US\" \\ -d \"customer_details[address_source]=shipping\" \\ -d \"line_items[0][amount]=1499\" \\ -d \"line_items[0][tax_code]=txcd_10000000\" \\ -d \"line_items[0][reference]=Music Streaming Coupon\" \\ -d \"shipping_cost[amount]=300\" \\ -d \"expand[0]=line_items\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/tax/calculations/{{CALCULATION_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.235Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":16,"estimatedTokens":664}}336{"id":"doc-the_balance_setting_object_stripe_api_reference-a03f4133","source":"documentation","title":"The Balance Setting object | Stripe API Reference","url":"https://docs.stripe.com/api/balance-settings/object","text":"Example:\n```text\n{ \"object\": \"balance_settings\", \"payments\": { \"debit_negative_balances\": true, \"payouts\": { \"automatic_transfer_rules_by_currency\": { \"usd\": [ { \"type\": \"transfer_all\", \"payout_method\": \"fa_1ABC\" } ] }, \"minimum_balance_by_currency\": { \"usd\": 1500, \"cad\": 8000 }, \"schedule\": { \"interval\": \"weekly\", \"weekly_payout_days\": [ \"monday\", \"wednesday\" ] }, \"statement_descriptor\": null, \"status\": \"enabled\" }, \"settlement_timing\": { \"delay_days_override\": 3, \"delay_days\": 3 } }}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/balance_settings \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\ -d \"payments[payouts][schedule][interval]=monthly\" \\ -d \"payments[payouts][schedule][monthly_payout_days][]=5\" \\ -d \"payments[payouts][schedule][monthly_payout_days][]=20\"\n```\n\nExample:\n```text\n{ \"object\": \"balance_settings\", \"payments\": { \"debit_negative_balances\": true, \"payouts\": { \"automatic_transfer_rules_by_currency\": { \"usd\": [ { \"type\": \"transfer_all\", \"payout_method\": \"fa_1ABC\" } ] }, \"minimum_balance_by_currency\": { \"usd\": 1500, \"cad\": 8000 }, \"schedule\": { \"interval\": \"monthly\", \"monthly_payout_days\": [ 5, 20 ] }, \"statement_descriptor\": null, \"status\": \"enabled\" }, \"settlement_timing\": { \"delay_days_override\": 3, \"delay_days\": 3 } }}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/balance_settings \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.276Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":21,"estimatedTokens":476}}337{"id":"doc-payment_method_domains_stripe_api_reference-4858f5ca","source":"documentation","title":"Payment Method Domains | Stripe API Reference","url":"https://docs.stripe.com/api/payment_method_domains?api-version=2026-06-24.preview","text":"Example:\n```text\n{ \"id\": \"pmd_1Nnrer2eZvKYlo2Cips79tWl\", \"object\": \"payment_method_domain\", \"apple_pay\": { \"status\": \"active\" }, \"created\": 1694129445, \"domain_name\": \"example.com\", \"enabled\": true, \"google_pay\": { \"status\": \"active\" }, \"link\": { \"status\": \"active\" }, \"livemode\": false, \"paypal\": { \"status\": \"active\" }}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/payment_method_domains \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Version: 2026-06-24.preview\" \\ -d \"domain_name=example.com\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.286Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":148}}338{"id":"doc-transfers_stripe_api_reference-c5b76e6a","source":"documentation","title":"Transfers | Stripe API Reference","url":"https://docs.stripe.com/api/transfers?api-version=2026-06-24.preview","text":"Example:\n```text\n{ \"id\": \"tr_1MiN3gLkdIwHu7ixNCZvFdgA\", \"object\": \"transfer\", \"amount\": 400, \"amount_reversed\": 0, \"balance_transaction\": \"txn_1MiN3gLkdIwHu7ixxapQrznl\", \"created\": 1678043844, \"currency\": \"usd\", \"description\": null, \"destination\": \"acct_1MTfjCQ9PRzxEwkZ\", \"destination_payment\": \"py_1MiN3gQ9PRzxEwkZWTPGNq9o\", \"livemode\": false, \"metadata\": {}, \"reversals\": { \"object\": \"list\", \"data\": [], \"has_more\": false, \"total_count\": 0, \"url\": \"/v1/transfers/tr_1MiN3gLkdIwHu7ixNCZvFdgA/reversals\" }, \"reversed\": false, \"source_transaction\": null, \"source_type\": \"card\", \"transfer_group\": \"ORDER_95\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/transfers \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -H \"Stripe-Version: 2026-06-24.preview\" \\ -d amount=400 \\ -d currency=usd \\ -d destination={{ACCOUNT_ID}} \\ -d transfer_group=ORDER_95\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.317Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":235}}339{"id":"doc-integrate_consumer_credit_issuing_stripe_documen-6db8476a","source":"documentation","title":"Integrate Consumer Credit Issuing | Stripe Documentation","url":"https://docs.stripe.com/issuing/consumer-issuing/integrate","text":"Example:\n```text\ncurl https://api.stripe.com/v1/issuing/programs \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_program_beta=v2\"\n```\n\nExample:\n```text\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"id\": \"iprg_1QubMYHc09eLP8enVnw6Aswz\",\n \"object\": \"issuing.program\",\n \"brand\": \"visa\",\n \"capability\": \"card_issuing_consumer_revolving_credit_card_celtic\",\n ...\n }\n ],\n \"has_more\": false,\n \"url\": \"/v1/issuing/programs\"\n}\n```\n\nExample:\n```text\ncurl https://files.stripe.com/v1/files \\\n -u \"{{SECRET_KEY}}:\" \\\n -F \"purpose\"=\"platform_terms_of_service\" \\\n -F \"file\"=\"@/path/to/a/file.pdf\"\n```\n\nExample:\n```text\n{\n \"id\": \"file_1SPXMDHc09eLP8enFkiWcPNS\",\n \"object\": \"file\",\n \"created\": 1762213217,\n \"expires_at\": null,\n \"filename\": \"tos.pdf\",\n ...\n \"purpose\": \"platform_terms_of_service\",\n ...\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/programs/iprg_12345 \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_program_beta=v2\" \\\n -d \"platform_terms_of_service={{FILE_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d country=US \\\n -d \"capabilities[transfers][requested]=true\" \\\n -d \"controller[stripe_dashboard][type]=none\" \\\n -d \"controller[fees][payer]=application\" \\\n -d \"controller[losses][payments]=application\" \\\n -d \"controller[requirement_collection]=application\" \\\n -d business_type=individual \\\n -d \"business_profile[mcc]=5999\" \\\n --data-urlencode \"business_profile[url]=https://www.example.com\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/programs \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_program_beta=v2\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"platform_program=iprg_12345\" \\\n -d is_default=true\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_program_beta=v2\" \\\n --data-urlencode \"email=jenny.rosen@example.com\" \\\n -d \"business_profile[name]=Jenny Rosen\" \\\n -d \"individual[first_name]=Jenny\" \\\n -d \"individual[last_name]=Rosen\" \\\n -d \"individual[dob][day]=1\" \\\n -d \"individual[dob][month]=11\" \\\n -d \"individual[dob][year]=1981\" \\\n -d \"individual[address][line1]=123 Main Street\" \\\n -d \"individual[address][city]=San Francisco\" \\\n -d \"individual[address][state]=CA\" \\\n -d \"individual[address][postal_code]=94111\" \\\n -d \"individual[address][country]=US\" \\\n --data-urlencode \"individual[email]=jenny.rosen@example.com\" \\\n -d \"individual[phone]=111-222-3333\" \\\n -d \"individual[ssn_last_4]=0000\" \\\n -d \"individual[self_reported_income][amount]=5000\" \\\n -d \"individual[self_reported_income][currency]=usd\" \\\n -d \"individual[self_reported_monthly_housing_payment][amount]=1000\" \\\n -d \"individual[self_reported_monthly_housing_payment][currency]=usd\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_application \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"application[purpose]=credit_line_opening\" \\\n -d \"application[submitted_at]=1687656783\" \\\n -d \"credit_user[name]=Jenny Rosen\" \\\n --data-urlencode \"credit_user[email]=jenny.rosen@example.com\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/cur_1NiHAD2eZvKYlo2CmWGpt5OX/report_decision \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d decided_at=1687742400 \\\n -d \"decision[type]=credit_limit_approved\" \\\n -d \"decision[credit_limit_approved][amount]=100000\" \\\n -d \"decision[credit_limit_approved][currency]=usd\" \\\n -d \"decision[credit_limit_approved][consumer_revolving_credit][annual_percentage_rates][0][type]=purchase\" \\\n -d \"decision[credit_limit_approved][consumer_revolving_credit][annual_percentage_rates][0][apr_type]=margin_on_us_prime_rate\" \\\n -d \"decision[credit_limit_approved][consumer_revolving_credit][annual_percentage_rates][0][margin_percentage]=2.5\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_application \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"application[purpose]=credit_line_opening\" \\\n -d \"application[submitted_at]=1687656783\" \\\n -d \"credit_user[name]=Jenny Rosen\" \\\n --data-urlencode \"credit_user[email]=jenny.rosen@example.com\" \\\n -d underwriting_policy={{UNDERWRITING_POLICY_ID}}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_program_beta=v2\" \\\n -d \"tos_acceptance[date]=1768908001\" \\\n -d \"tos_acceptance[ip]=192.168.123.132\" \\\n -d \"settings[card_issuing][tos_acceptances][account_holder][date]=1768908001\" \\\n -d \"settings[card_issuing][tos_acceptances][account_holder][ip]=192.168.123.132\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic][date]=1761769098\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic][ip]=192.168.123.132\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic_platform][date]=1761769098\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic_platform][ip]=192.168.123.132\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic_privacy_notice][date]=1761769098\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic_privacy_notice][ip]=192.168.123.132\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic_privacy_notice_platform][date]=1761769098\" \\\n -d \"settings[card_issuing][tos_acceptances][consumer_revolving_credit_card_celtic_privacy_notice_platform][ip]=192.168.123.132\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_policies \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_policies/{{CREDIT_POLICY_ID}} \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d credit_limit_amount=100000 \\\n -d credit_limit_currency=usd \\\n -d credit_period_interval=month \\\n -d credit_period_interval_count=1 \\\n -d \"credit_period_ends_on_days[]=15\" \\\n -d days_until_due=25 \\\n -d status=active\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/{{CONNECTED_ACCOUNT_ID}} \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Version: 2025-01-27.acacia; issuing_program_beta=v2\" \\\n -d \"email\"=\"jenny.rosen@example.com\" \\\n -d \"individual[first_name]\"=\"{{HOSTED_UNDERWRITING_MAGIC_STRING}}\" \\\n -d \"individual[last_name]\"=\"Rosen\" \\\n -d \"individual[dob][day]\"=1 \\\n -d \"individual[dob][month]\"=11 \\\n -d \"individual[dob][year]\"=1981 \\\n -d \"individual[address][line1]\"=\"123 Main Street\" \\\n -d \"individual[address][city]\"=\"San Francisco\" \\\n -d \"individual[address][state]\"=\"CA\" \\\n -d \"individual[address][postal_code]\"=\"94111\" \\\n -d \"individual[address][country]\"=\"US\" \\\n -d \"individual[email]\"=\"jenny.rosen@example.com\" \\\n -d \"individual[phone]\"=\"111-222-3333\" \\\n -d \"individual[ssn_last_4]\"=\"0000\" \\\n -d \"individual[self_reported_income][amount]\"=\"0000\" \\\n -d \"individual[self_reported_income][currency]\"=\"usd\" \\\n -d \"individual[self_reported_monthly_housing_payment][amount]\"=\"000\" \\\n -d \"individual[self_reported_monthly_housing_payment][currency]\"=\"usd\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_application \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"application[purpose]\"=credit_line_opening \\\n -d \"application[submitted_at]\"=1687656783 \\\n -d \"credit_user[name]\"=\"Jenny Rosen\" \\\n --data-urlencode \"credit_user[email]\"=\"jenny.rosen@example.com\" \\\n -d \"underwriting_policy\"=mock_policy_id\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_proactive_review \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"credit_user[name]=Jenny Rosen\" \\\n --data-urlencode \"credit_user[email]=jenny.rosen@example.com\" \\\n -d decided_at=1759332619 \\\n -d \"decision[type]=credit_line_suspended\" \\\n -d \"decision[credit_line_suspended][reasons][]=suspected_fraud_pending_investigation\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_policies/{{CREDIT_POLICY_ID}} \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -H \"Stripe-Version: issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -d status=suspended \\\n -d \"status_reasons[platform_controlled][][type]=suspected_fraud_pending_investigation\" \\\n -d \"status_reasons[platform_controlled][][from_credit_underwriting_record]={{CREDIT_UNDERWRITING_RECORD_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_proactive_review \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"credit_user[name]=Jenny Rosen\" \\\n --data-urlencode \"credit_user[email]=jenny.rosen@example.com\" \\\n -d decided_at=1759332619 \\\n -d \"decision[type]=suspension_reasons_lifted\" \\\n -d \"decision[suspension_reasons_lifted][reasons][]=suspected_fraud_pending_investigation\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_policies/{{CREDIT_POLICY_ID}} \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -H \"Stripe-Version: issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -d status=active \\\n -d \"status_reasons[platform_controlled]=\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_proactive_review \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"credit_user[name]=Jenny Rosen\" \\\n --data-urlencode \"credit_user[email]=jenny.rosen@example.com\" \\\n -d decided_at=1759332619 \\\n -d \"decision[type]=credit_line_closed\" \\\n -d \"decision[credit_line_closed][reasons][]=suspected_fraud\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_policies/{{CREDIT_POLICY_ID}} \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -H \"Stripe-Version: issuing_credit_beta=v3; issuing_underwritten_credit_beta=v1\" \\\n -d status=permanently_closed \\\n -d \"status_reasons[platform_controlled][][type]=suspected_fraud\" \\\n -d \"status_reasons[platform_controlled][][from_credit_underwriting_record]={{CREDIT_UNDERWRITING_RECORD_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/customers \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"name=Jenny Rosen\" \\\n -d \"metadata[user_id]=acct_123\" \\\n --data-urlencode \"email=jenny.rosen@example.com\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/accounts/acct_123 \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"metadata[customer_id]={{CUSTOMER_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/setup_intents \\\n -u \"{{SECRET_KEY}}:\" \\\n -d \"payment_method_types[]\"=us_bank_account \\\n -d customer={{CUSTOMER_ID}} \\\n -d \"payment_method_data[type]\"=us_bank_account \\\n -d \"payment_method_data[us_bank_account][token]\"={{stripe_bank_account_token}} \\\n -d \"payment_method_data[billing_details][name]\"={{CUSTOMER_NAME}} \\\n -d metadata[user_id]={{CUSTOMER_ID.metadata.user_id}}\n```\n\nExample:\n```text\ncurl -X POST https://api.stripe.com/v1/setup_intents/{{SETUP_INTENT_ID}}/confirm \\\n -u \"{{SECRET_KEY}}:\" \\\n -d \"payment_method\"=\"{{PAYMENT_METHOD_ID_FROM_ABOVE}}\" \\\n -d \"mandate_data[customer_acceptance][type]\"=\"online\" \\\n -d \"mandate_data[customer_acceptance][online][ip_address]\"=\"<consumer IP address>\" \\\n -d \"mandate_data[customer_acceptance][online][user_agent]\"=\"<consumer user agent such as browser info>\"\n```\n\nExample:\n```text\ncurl -G https://api.stripe.com/v1/issuing/funding_obligations \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3\" \\\n -d limit=3\n```\n\nExample:\n```text\n{\n \"object\": \"list\",\n \"url\": \"/v1/issuing/funding_obligations\",\n \"has_more\": false,\n \"data\": [\n {\n \"id\": \"ifo_123\",\n \"object\": \"issuing.funding_obligation\",\n \"amount_outstanding\": 9000,\n \"amount_paid\": 1000,\n \"amount_total\": 10000,\n \"created\": 1695774374,\n \"credit_period_ends_at\": 1695859199,\n \"credit_period_starts_at\": 1695772800,\n \"currency\": \"usd\",\n \"due_at\": 1695859199,\n \"owed_to\": \"stripe\",\n \"status\": \"pending\",\n \"transaction_period_ends_at\": 1695823200,\n \"transaction_period_starts_at\": 1695736860,\n ...\n }\n ]\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/funding_instructions \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"bank_transfer[type]=us_bank_transfer\" \\\n -d currency=usd \\\n -d funding_type=bank_transfer\n```\n\nExample:\n```text\ncurl -G https://api.stripe.com/v1/issuing/funding_obligations \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d status=pending\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_ledger_adjustments \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d amount_type=credit \\\n -d amount=5000 \\\n -d currency=usd \\\n -d reason=platform_issued_credit_memo \\\n -d \"reason_description=Customer loyalty reward credited to account\" \\\n -d \"funding_obligation=fo_12345\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_ledger \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\n{\n \"credit_limit\": 100000,\n \"amount_pending\": 10000,\n \"obligations\": {\n \"accruing\": 5000,\n \"unpaid\": 15000\n },\n \"credit_available\": 70000,\n \"currency\": \"usd\",\n \"statement_balance\": 15150,\n \"minimum_payment_amount\": 5000,\n \"due_at\": 12345678,\n \"remaining_minimum_payment\": 100,\n \"remaining_statement_balance\": 10250,\n \"payment_status\": \"good_standing\"\n}\n```\n\nExample:\n```text\ncurl -G https://api.stripe.com/v1/issuing/credit_ledger_entries \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v3\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d credit_statement=cs_123\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_statements \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_statements/current \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\ncurl -X POST https://api.stripe.com/v1/test_helpers/issuing/transactions/create_force_capture \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -H \"Stripe-Version: 2025-03-31.basil; issuing_credit_beta=v3\" \\\n -d card={{CARD_ID}} \\\n -d currency=usd \\\n -d amount=1500 \\\n -d effective_date=2025-10-01\n```\n\nExample:\n```text\ncurl -X POST https://api.stripe.com/v1/test_helpers/issuing/credit_policies/{{CREDIT_POLICY_ID}}/enable_statement_generation \\\n -u \"{{SECRET_KEY}}:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -H \"Stripe-Version: 2025-03-31.basil; issuing_credit_beta=v3\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_ledger_finance_charges \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; issuing_credit_beta=v4\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\"\n```\n\nExample:\n```text\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"id\": \"iflfc_123\",\n \"object\": \"issuing.credit_ledger_finance_charge\",\n \"amount\": 100,\n \"applied_to_ledger_at\": 1773532800,\n \"currency\": \"usd\",\n \"description\": \"Interest charge\",\n \"type\": \"interest\"\n }\n ]\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_repayments \\\n -u \"sk_test_...:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"customer={{CUSTOMER_ID}}\" \\\n -d \"instructed_by[type]=credit_repayments_api\" \\\n -d \"instructed_by[credit_repayments_api][payment_method]={{PAYMENT_METHOD_ID}}\" \\\n -d \"amount[value]=1000\" \\\n -d \"amount[currency]=usd\" \\\n -d \"credit_statement_descriptor=Payment received\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/payment_records/{{PAYMENT_RECORD_ID}} \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -H \"Stripe-Version: 2026-07-29.dahlia; payment_records_beta=v2;\"\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/issuing/credit_repayment_schedules \\\n -u \"sk_test_...:\" \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n -d \"customer={{CUSTOMER_ID}}\" \\\n -d \"payment_method={{PAYMENT_METHOD_ID}}\" \\\n -d \"amount_details[type]=fixed_amount\" \\\n -d \"amount_details[fixed_amount][amount][value]=1000\" \\\n -d \"amount_details[fixed_amount][amount][currency]=usd\" \\\n -d \"frequency[type]=monthly\" \\\n -d \"frequency[monthly][day_of_month]=15\" \\\n -d \"credit_statement_descriptor=Payment received\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.333Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":43,"totalLines":532,"estimatedTokens":4533}}340{"id":"doc-create_a_source_stripe_api_reference-d9e764df","source":"documentation","title":"Create a source | Stripe API Reference","url":"https://docs.stripe.com/api/sources/create","text":"Example:\n```text\ncurl https://api.stripe.com/v1/sources \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d type=ach_credit_transfer \\ -d currency=usd \\ --data-urlencode \"owner[email]=jenny.rosen@example.com\"\n```\n\nExample:\n```text\n{ \"id\": \"src_1N3lxdLkdIwHu7ixPHXy8UcI\", \"object\": \"source\", \"ach_credit_transfer\": { \"account_number\": \"test_eb829353ed79\", \"bank_name\": \"TEST BANK\", \"fingerprint\": \"kBQsBk9KtfCgjEYK\", \"refund_account_holder_name\": null, \"refund_account_holder_type\": null, \"refund_routing_number\": null, \"routing_number\": \"110000000\", \"swift_code\": \"TSTEZ122\" }, \"amount\": null, \"client_secret\": \"src_client_secret_ZaOIRUD8a9uGmQobLxGvqKSr\", \"created\": 1683144457, \"currency\": \"usd\", \"flow\": \"receiver\", \"livemode\": false, \"metadata\": {}, \"owner\": { \"address\": null, \"email\": \"jenny.rosen@example.com\", \"name\": null, \"phone\": null, \"verified_address\": null, \"verified_email\": null, \"verified_name\": null, \"verified_phone\": null }, \"receiver\": { \"address\": \"110000000-test_eb829353ed79\", \"amount_charged\": 0, \"amount_received\": 0, \"amount_returned\": 0, \"refund_attributes_method\": \"email\", \"refund_attributes_status\": \"missing\" }, \"statement_descriptor\": null, \"status\": \"pending\", \"type\": \"ach_credit_transfer\", \"usage\": \"reusable\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/sources/{{SOURCE_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\ -d \"metadata[order_id]=6735\"\n```\n\nExample:\n```text\n{ \"id\": \"src_1N3lxdLkdIwHu7ixPHXy8UcI\", \"object\": \"source\", \"ach_credit_transfer\": { \"account_number\": \"test_eb829353ed79\", \"bank_name\": \"TEST BANK\", \"fingerprint\": \"kBQsBk9KtfCgjEYK\", \"refund_account_holder_name\": null, \"refund_account_holder_type\": null, \"refund_routing_number\": null, \"routing_number\": \"110000000\", \"swift_code\": \"TSTEZ122\" }, \"amount\": null, \"client_secret\": \"src_client_secret_ZaOIRUD8a9uGmQobLxGvqKSr\", \"created\": 1683144457, \"currency\": \"usd\", \"flow\": \"receiver\", \"livemode\": false, \"metadata\": { \"order_id\": \"6735\" }, \"owner\": { \"address\": null, \"email\": \"jenny.rosen@example.com\", \"name\": null, \"phone\": null, \"verified_address\": null, \"verified_email\": null, \"verified_name\": null, \"verified_phone\": null }, \"receiver\": { \"address\": \"110000000-test_eb829353ed79\", \"amount_charged\": 0, \"amount_received\": 0, \"amount_returned\": 0, \"refund_attributes_method\": \"email\", \"refund_attributes_status\": \"missing\" }, \"statement_descriptor\": null, \"status\": \"pending\", \"type\": \"ach_credit_transfer\", \"usage\": \"reusable\"}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/sources/{{SOURCE_ID}} \\ -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.350Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":26,"estimatedTokens":715}}341{"id":"doc-build_a_custom_capital_program_stripe_documentat-62c2c7ef","source":"documentation","title":"Build a custom Capital program | Stripe Documentation","url":"https://docs.stripe.com/capital/api-integration","text":"Example:\n```text\ncurl https://api.stripe.com/v1/capital/financing_offers \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2:\n```\n\nExample:\n```text\n{\n \"object\": \"list\",\n \"url\": \"/v1/capital/financing_offers\",\n \"has_more\": false,\n \"data\": [\n {\n \"id\": \"financingoffer_abc123\",\n \"object\": \"capital.financing_offer\"\n ...\n },\n {...}\n ]\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/capital/financing_offers/financingoffer_abc123 \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2:\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/account_links \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \\\n -d account=acct_123 \\\n # The URL the connected account will be redirected to if the account link is expired, has been previously-visited, or is otherwise invalid.\n -d refresh_url=\"https://example.com/reauth\" \\\n # The URL the connected account will be redirected to after completing the linked flow.\n -d return_url=\"https://example.com/thanks\" \\\n -d type=capital_financing_offer\n```\n\nExample:\n```text\n{\n \"object\": \"account_link\",\n \"created\": 1611264596,\n \"expires_at\": 1611264896,\n \"url\": \"https://connect.stripe.com/capital/offer/SrjgLUfa0O7K\"\n}\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/capital/financing_offers/financingoffer_abc123/mark_delivered \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2:\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/account_links \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \\\n -d account=acct_123 \\\n # When the connected account refreshes the page, where should we redirect them\n -d refresh_url=\"https://example.com/reauth\" \\\n # When the connected account completes the application, where should they return\n -d return_url=\"https://example.com/thanks\" \\\n -d type=capital_financing_reporting\n```\n\nExample:\n```text\ncurl https://api.stripe.com/v1/capital/financing_summary \\\n -u sk_test_BQokikJOvBiI2HlWgH4olfQ2: \\\n -H \"Stripe-Account: {{CONNECTED_ACCOUNT_ID}}\" \\\n```\n\nExample:\n```text\n{\n \"object\": \"capital.financing_summary\",\n \"details\": {\n \"currency\": \"usd\",\n \"advance_amount\": 1000000,\n \"fee_amount\": 100000,\n \"withhold_rate\": 0.2,\n \"remaining_amount\": 999950,\n \"paid_amount\": 50,\n \"current_repayment_interval\": {\n \"due_at\": 123456789,\n \"remaining_amount\": 50,\n \"paid_amount\": 50\n },\n \"repayments_begin_at\": 123456789,\n \"advance_paid_out_at\": 123456789\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.360Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":99,"estimatedTokens":595}}342{"id":"doc-collect_customer_phone_numbers_stripe_documentat-815f38dd","source":"documentation","title":"Collect customer phone numbers | Stripe Documentation","url":"https://docs.stripe.com/payments/checkout/phone-numbers","text":"Example:\n```text\ncurl https://api.stripe.com/v1/checkout/sessions \\\n -u \"sk_test_BQokikJOvBiI2HlWgH4olfQ2:\" \\\n -d \"line_items[0][price_data][unit_amount]=1000\" \\\n -d \"line_items[0][price_data][product_data][name]=T-shirt\" \\\n -d \"line_items[0][price_data][currency]=eur\" \\\n -d \"line_items[0][quantity]=2\" \\\n -d \"phone_number_collection[enabled]=true\" \\\n -d mode=payment \\\n --data-urlencode \"success_url=https://example.com/success\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:29.361Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":14,"estimatedTokens":114}}343{"id":"doc-coolslot_hardhat_3-c285698b","source":"documentation","title":"coolSlot | Hardhat 3","url":"https://hardhat.org/docs/reference/cheatcodes/environment/cool-slot","text":"Example:\n```text\nfunction coolSlot(address target, bytes32 slot) external;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.260Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":23}}344{"id":"doc-lastcallgas_hardhat_3-d358b6b9","source":"documentation","title":"lastCallGas | Hardhat 3","url":"https://hardhat.org/docs/reference/cheatcodes/environment/last-call-gas","text":"Example:\n```text\nstruct Gas { /// The gas limit of the call. uint64 gasLimit; /// The total gas used. uint64 gasTotalUsed; /// DEPRECATED: The amount of gas used for memory expansion. uint64 gasMemoryUsed; /// The amount of gas refunded. int64 gasRefunded; /// The amount of gas remaining. uint64 gasRemaining;}function lastCallGas() external view returns (Gas memory gas);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.262Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":101}}345{"id":"doc-envor_hardhat_3-6275964e","source":"documentation","title":"envOr | Hardhat 3","url":"https://hardhat.org/docs/reference/cheatcodes/external/env-or","text":"Example:\n```text\nfunction envOr( string calldata key, bool defaultValue) external returns (bool value);function envOr( string calldata key, uint256 defaultValue) external returns (uint256 value);function envOr( string calldata key, int256 defaultValue) external returns (int256 value);function envOr( string calldata key, address defaultValue) external returns (address value);function envOr( string calldata key, bytes32 defaultValue) external returns (bytes32 value);function envOr( string calldata key, string calldata defaultValue) external returns (string memory value);function envOr( string calldata key, bytes calldata defaultValue) external returns (bytes memory value);\n```\n\nExample:\n```text\nfunction envOr( string calldata key, string calldata delimiter, bool[] calldata defaultValue) external returns (bool[] memory value);function envOr( string calldata key, string calldata delimiter, uint256[] calldata defaultValue) external returns (uint256[] memory value);function envOr( string calldata key, string calldata delimiter, int256[] calldata defaultValue) external returns (int256[] memory value);function envOr( string calldata key, string calldata delimiter, address[] calldata defaultValue) external returns (address[] memory value);function envOr( string calldata key, string calldata delimiter, bytes32[] calldata defaultValue) external returns (bytes32[] memory value);function envOr( string calldata key, string calldata delimiter, string[] calldata defaultValue) external returns (string[] memory value);function envOr( string calldata key, string calldata delimiter, bytes[] calldata defaultValue) external returns (bytes[] memory value);\n```\n\nExample:\n```text\nbool fork = vm.envOr(\"FORK\", false);\n```\n\nExample:\n```text\naddress owner;\nfunction setUp() { owner = vm.envOr(\"OWNER\", address(this));}\n```\n\nExample:\n```text\naddress[] badTokens;\nfunction envBadTokens() public { badTokens = vm.envOr(\"BAD_TOKENS\", \",\", badTokens);}\n```\n\nExample:\n```text\nfunction envBadTokens() public { address[] memory defaultBadTokens = new address[](0); address[] memory badTokens = vm.envOr(\"BAD_TOKENS\", \",\", defaultBadTokens);}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.275Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":33,"estimatedTokens":548}}346{"id":"doc-parsetomltype_hardhat_3-dcad13d0","source":"documentation","title":"parseTomlType | Hardhat 3","url":"https://hardhat.org/docs/reference/cheatcodes/external/parse-toml-type","text":"Example:\n```text\nfunction parseTomlType( string calldata toml, string calldata key, string calldata typeDescription) external pure returns (bytes memory);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.282Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":44}}347{"id":"doc-prompt_hardhat_3-5bfa914c","source":"documentation","title":"prompt | Hardhat 3","url":"https://hardhat.org/docs/reference/cheatcodes/external/prompt","text":"Example:\n```text\nfunction prompt( string calldata promptText) external returns (string memory input);function promptSecret( string calldata promptText) external returns (string memory input);function promptSecretUint( string calldata promptText) external returns (uint256);\n```\n\nExample:\n```text\ncontract Script { function run() public { uint256 myUint = vm.parseUint(vm.prompt(\"enter uint\")); run(myUint); }\n function run(uint256 myUint) public { // actual logic }}\n```\n\nExample:\n```text\nstring memory input;\ntry vm.prompt(\"Username\") returns (string memory res) { input = res;}catch (bytes memory) { input = \"Anonymous\";}\n```\n\nExample:\n```text\nforking: { rpcEndpoints: { mainnet: \"https://eth.llamarpc.com\", polygon: \"https://polygon.llamarpc.com\", }}\n```\n\nExample:\n```text\nstring memory rpcEndpoint = vm.prompt(\"RPC endpoint\");vm.createSelectFork(rpcEndpoint);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.288Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":28,"estimatedTokens":231}}348{"id":"doc-hooks_and_hook_handlers_hardhat_3-a29111da","source":"documentation","title":"Hooks and Hook Handlers | Hardhat 3","url":"https://hardhat.org/docs/plugin-development/explanations/hooks","text":"Example:\n```text\ntype MyChainedHook = ( context: HookContext, ...hookHandlerArguments, next: ( nextContext: HookContext, ...nextArguments ) => Promise<ReturnType>) => Promise<ReturnType>;\n```\n\nExample:\n```text\nasync onRequest(context, networkConnection, jsonRpcRequest, next) { console.log(`Request from connection ${networkConnection.id} is being processed — Method: ${jsonRpcRequest.method}`);\n return next(context, networkConnection, jsonRpcRequest);}\n```\n\nExample:\n```text\ntype MyParallelHook = ( context: HookContext, ...hookHandlerArguments) => Promise<ReturnType>;\n```\n\nExample:\n```text\ntype MySequentialHook = ( context: HookContext, ...hookHandlerArguments) => Promise<ReturnType>;\n```\n\nExample:\n```text\nexport default async function ( taskArguments: MyTaskTaskArguments, hre: HardhatRuntimeEnvironment,) { const networkHandlers: Partial<NetworkHooks> = { async newConnection(context, next) { const conn = await next(context);\n console.log(\"New connection created with ID\", conn.id);\n return conn; }, };\n try { hre.hooks.registerHandlers(\"network\", networkHandlers);\n // Logic that may use the network } finally { hre.hooks.unregisterHandlers(\"network\", networkHandlers); }}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.302Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":31,"estimatedTokens":314}}349{"id":"doc-https_hardhat_org_docs_guides_writing_contracts_-9b0d676d","source":"documentation","title":"https://hardhat.org/docs/guides/writing-contracts/remappings.md","url":"https://hardhat.org/docs/guides/writing-contracts/remappings.md","text":": Displays file/folder structure from an unordered list. Supports `**bold**` for highlighting, `...` for placeholders, and comments after filenames. import { FileTree } from \"@astrojs/starlight/components\"; Hardhat 3 comes with built-in support for user-defined [Solidity remappings](https://docs.soliditylang.org/en/latest/path-resolution.html#import-remapping). They allow you to customize how absolute imports in Solidity files are resolved. For example, making an import from `\"foo/Example.sol\"` resolve to `\"lib/foo/src/Example.sol\"`. ## Remappings loading Hardhat loads the remappings from every `remappings.txt` it finds. They can be In your example, at the root of your project, in your `test/` folder, or within a git submodule. The only exceptions are `node_modules` folders. - In an npm an npm package is imported for the first time, all of its `remappings.txt` files are loaded. ## `remappings.txt` format The `remappings.txt` files have one remapping per line. Each of them looks like this: ```txt \"context/:\" ins=\"prefix/=\" \"target/\" // remappings.txt context/:prefix/=target/ ``` ### Prefix The `prefix/=` section of a remapping defines a string (i.e. `prefix/`) that an import must start with to be affected by a remapping. For example, an import to `\"prefix/Foo.sol\"` is affected by the example remapping above, but imports to `\"prefix\"` and `\"Foo.sol\"` aren't. This part of the remapping is required, and must end in `/`. If it doesn't, Hardhat will append an `/` automatically. ### Target The `target/` section defines a string which will replace the prefix in the imports affected by a remapping during the import resolution. This doesn't mean that your source code will be modified, but rather that `solc` will look for the replaced string when evaluating an import. For example, an import to `prefix/Foo.sol` will resolve to `target/Foo.sol`, using the example remapping above. This part of the remapping is optional. If absent, it will be resolved to `\"/\"`. If present, it must end in `/`. If it doesn't, Hardhat will append an `/` automatically. ### Context The `context/:` section controls which files get affected by a remapping. The source name of a file must start with `context/` for a remapping to work. For example, using the example remapping above, an import to `\"prefix/Foo.sol\"` in the file `context/A.sol` is affected by this remapping, but the same import in `contracts/A.sol` isn't. This part of the remapping is optional, and we recommend not using it unless strictly required, as Hardhat automatically generates it for you, based on where your `remappings.txt` is located. Continue reading to learn more about this. ## Scope of each `remappings.txt` file Each `remapping.txt` file in Hardhat 3 only affects the files in the directory where it is, and all of its subdirectories. This means that you don't need to worry about remappings clashing with each other, as Hardhat will fix their `context` for you. For example, in this project: {/* prettier-ignore */} - my-project/ - package.json - hardhat.config.ts - **remappings.txt** - contracts/ - Foo.sol - test/ - **remappings.txt** - Foo.t.sol - lib/ - submodule/ - **remappings.txt** - src/ - `Bar.sol` - `Bar.t.sol` The remappings in `my-project/remappings.txt` can `contracts/Foo.sol` - `test/Foo.t.sol` - `lib/submodule/src/Bar.sol` - `lib/submodule/src/Bar.t.sol` The remappings in `my-project/test/remappings.txt` can only affect `my-project/test/Foo.t.sol`. The remappings in `lib/submodule/remappings.txt` can `lib/submodule/src/Bar.sol` - `lib/submodule/src/Bar.t.sol` If two remappings seemingly clash, Hardhat will choose the more specific one (i.e. the one defined closest to the file using the import that's being remapped). ## Remappings to git submodules If you installed a dependency (e.g. `foo`) using a git submodule, as explained in the [dependencies guide](/docs/guides/writing-contracts/dependencies#using-git-submodules), you may want to add a remapping for it. We recommend you install your git submodules in `lib/` and use the top-level `remappings.txt` to add one of these remappings: ``` // remappings.txt foo/=lib/foo/ ``` ``` // remappings.txt foo/=lib/foo/src/ ``` ## Remappings to npm modules You can also create remappings whose targets are npm modules. To do it, make sure that their `target` starts with `node_modules/`. For example, this remapping: ``` // remappings.txt ozc/=node_modules/@openzeppelin/contracts/ ``` will allow you to import Open Zeppelin Contracts using `ozc/`. For example, by writing `\"ozc/token/ERC20/ERC20.sol\"` instead of `\"@openzeppelin/contracts/token/ERC20/ERC20.sol\"`. Adding a remapping to an npm module doesn't prevent you from importing it using its full package name. For example, this works with the above remapping: ```solidity // pragma solidity ^0.8.20; import { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\"; import { IERC20 } from \"ozc/token/ERC20/IERC20.sol\"; contract ExampleToken is IERC20, ERC20 { constructor() ERC20(\"ExampleToken\", \"ETK\") {} } ``` ### Resolution of a `node_modules/` remapping When you write a remapping with a target starting with `node_modules/`, you're letting Hardhat know that it has to follow the Node.js resolution rules. It's not a normal file-system-based remapping. Instead, it will work with all the features of npm, pnpm, and other package managers. For example, supporting hoisting, monorepos, multiple versions of the same dependency. The only exception is that `node_modules/` remappings don't support [`package.json#exports`](https://nodejs.org/api/packages.html#subpath-exports), so you may have to resolve them in your remapping.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.312Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1416}}350{"id":"doc-https_hardhat_org_docs_guides_forking_md-16ae8c42","source":"documentation","title":"https://hardhat.org/docs/guides/forking.md","url":"https://hardhat.org/docs/guides/forking.md","text":": Runs a command in the terminal with npm/pnpm/yarn. - :::tip: A helpful tip callout block. Supports custom title `:::tip[Title]` and icon `:::tip{icon=\"name\"}` syntax. import Run from \"@hh/Run.astro\"; Hardhat tests run by default in a locally simulated environment that starts with an empty state. Sometimes though, you'll want to test your code using the state of an actual network. This is called **forking**. This guide will walk you through using forking in both your TypeScript and Solidity tests. ## Forking in TypeScript tests To run your tests against the state of a real network (like Ethereum Mainnet), configure a forked network in your Hardhat config: ```ts {9-14} // hardhat.config.ts import hardhatToolboxViemPlugin from \"@nomicfoundation/hardhat-toolbox-viem\"; import { defineConfig } from \"hardhat/config\"; export default defineConfig({ plugins: [hardhatToolboxViemPlugin], solidity: \"0.8.28\", networks: { mainnetFork: { type: \"edr-simulated\", forking: { url: \"\", }, }, }, }); ``` Replace `` with an RPC endpoint for Ethereum Mainnet. :::tip Instead of hardcoding the RPC URL, consider using [Configuration Variables](/docs/guides/configuration-variables). ::: Then run your TypeScript tests using the forked tests will now run against the forked Mainnet state, letting you use on-chain data in your local environment. ### Forking only in some tests Passing a forked network with `--network` means all your tests will use that network by default. If you only want to use the forked network in specific tests, connect to it explicitly within your test code: ```ts {7} // test/Example.ts import { describe, it } from \"node:test\"; import { network } from \"hardhat\"; describe(\"Example\", function () { it(\"should use the forked network\", async function () { const { viem } = await network.create(\"mainnetFork\"); // This test uses the forked Mainnet network }); it(\"should use the default network\", async function () { const { viem } = await network.create(); // This test uses the default local network }); }); ``` If you run your TypeScript tests without passing any `--network`, the default network will be used for all tests except those that explicitly connect to `mainnetFork`. ## Forking in Solidity tests Like TypeScript tests, Solidity tests also run by default in a locally simulated environment, but they can be configured to use forking. To do this, set the `test.solidity.forking.url` option in your Hardhat config: ```ts {8-14} // hardhat.config.ts import hardhatToolboxViemPlugin from \"@nomicfoundation/hardhat-toolbox-viem\"; import { defineConfig } from \"hardhat/config\"; export default defineConfig({ plugins: [hardhatToolboxViemPlugin], solidity: \"0.8.28\", test: { solidity: { forking: { url: \"\", }, }, }, }); ``` With this configuration, your Solidity tests will now run against the forked Mainnet state: ### Using forking cheatcodes You can also use cheatcodes to fork a network in a more selective way. First, configure a mapping of network names to RPC endpoints in your Hardhat config: ```ts {11-14} // hardhat.config.ts import hardhatToolboxViemPlugin from \"@nomicfoundation/hardhat-toolbox-viem\"; import { defineConfig } from \"hardhat/config\"; export default defineConfig({ plugins: [hardhatToolboxViemPlugin], solidity: \"0.8.28\", test: { solidity: { forking: { rpcEndpoints: { mainnet: \"\", sepolia: \"\", }, }, }, }, }); ``` Then, in your Solidity tests, use a cheatcode like `vm.createSelectFork` to select one of those configured endpoints: ```solidity // Example.t.sol contract ExampleTest is Test { function testInForkedMainnet() public { vm.createSelectFork(\"mainnet\"); // The rest of the test runs against the forked Mainnet } } ``` Use this approach to switch between different forked networks within your tests. ## Forking from a specific block number Forking configurations in both networks and Solidity tests accept an optional `blockNumber` to make your tests more deterministic and faster. If you don't set one, Hardhat will use a recent block. This has two Tests are less deterministic, because remote state can change from run to run. - You don't benefit from caching state between runs, which can significantly improve performance. To specify a block number, update your Hardhat config like this: ```ts {13,21} // hardhat.config.ts import hardhatToolboxViemPlugin from \"@nomicfoundation/hardhat-toolbox-viem\"; import { defineConfig } from \"hardhat/config\"; export default defineConfig({ plugins: [hardhatToolboxViemPlugin], solidity: \"0.8.28\", networks: { mainnetFork: { type: \"edr-simulated\", forking: { url: \"\", , }, }, }, test: { solidity: { forking: { url: \"\", , }, }, }, }); ``` For forking cheatcodes, the block number can be passed as an optional second parameter: ```solidity // Example.t.sol contract ExampleTest is Test { function testInForkedMainnet() public { vm.createSelectFork(\"mainnet\", 23819000); // The rest of the test runs against the forked Mainnet at block 23,819,000 } } ``` ## Learn more Read [the forking section](/docs/reference/edr-simulated-networks#forking-mode) in our explanation about simulated networks to learn more about forking.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.323Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1282}}351{"id":"doc-multichain_support_hardhat_3-a7c506b1","source":"documentation","title":"Multichain support | Hardhat 3","url":"https://hardhat.org/docs/explanations/multichain-support","text":"Example:\n```text\nimport { network } from \"hardhat\";\nconst { viem } = await network.create({ network: \"hardhatOp\", chainType: \"op\",});\nconst publicClient = await viem.getPublicClient();const l1Gas = await publicClient.estimateL1Gas({ account: \"0x1111111111111111111111111111111111111111\", to: \"0x2222222222222222222222222222222222222222\", value: 1n,});\n```\n\nExample:\n```text\nnpx hardhat test --chain-type op\n```\n\nExample:\n```text\npnpm hardhat test --chain-type op\n```\n\nExample:\n```text\nyarn hardhat test --chain-type op\n```\n\nExample:\n```text\nnpx hardhat test solidity --chain-type op\n```\n\nExample:\n```text\npnpm hardhat test solidity --chain-type op\n```\n\nExample:\n```text\nyarn hardhat test solidity --chain-type op\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.340Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":38,"estimatedTokens":184}}352{"id":"doc-https_hardhat_org_docs_explanations_hardhat_proj-efe81618","source":"documentation","title":"https://hardhat.org/docs/explanations/hardhat-projects.md","url":"https://hardhat.org/docs/explanations/hardhat-projects.md","text":": Displays file/folder structure from an unordered list. Supports `**bold**` for highlighting, `...` for placeholders, and comments after filenames. import { FileTree } from \"@astrojs/starlight/components\"; A Hardhat Project is an npm package that uses Hardhat. In other words, it's a directory with a `package.json` file, and a Hardhat config file either in the same directory or one of its subdirectories. ## Hardhat project root The Hardhat project root directory is the directory containing the `package.json` file, matching the behavior of npm. For example, in this case: {/* prettier-ignore */} - **directory** - package.json - config/ - hardhat.config.ts `directory` is the project root, not `config`. ### Recommended structure We recommend keeping both the `package.json` and the `hardhat.config.ts` in the root of the project, and installing `hardhat` there. {/* prettier-ignore */} - root - package.json Has `hardhat` installed - hardhat.config.ts ## Nested projects and Hardhat installation The `package.json` of the Hardhat project doesn't need to install Hardhat directly. The only requirement is that your config needs to be able to import it. This can be helpful for [integration tests of plugins](/docs/plugin-development/guides/integration-tests#testing-with-fixture-projects) and custom setups. For example, in this case: {/* prettier-ignore */} - **directory** - package.json Has `hardhat` installed - hardhat.config.ts - tests - **example-project** - package.json Doesn't have `hardhat` installed - hardhat.config.ts Both `directory` and `example-project` will be Hardhat projects, despite `hardhat` only being installed in `directory`. ## Usage with monorepos If you're using a monorepo, each package can have multiple projects, as explained above. However, we recommend using the [Recommended structure](#recommended-structure) in each of your packages.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.367Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":473}}353{"id":"doc-https_hardhat_org_docs_plugin_development_explan-cf66f90e","source":"documentation","title":"https://hardhat.org/docs/plugin-development/explanations/hooks.md","url":"https://hardhat.org/docs/plugin-development/explanations/hooks.md","text":") => Promise; ``` When a Chained Hook is run, its Hook Handlers receive a `next` function as their last parameter. The `next` function forms a chain of responsibility, where each Hook Handler of a Hook is connected to the next one. The order of this chain is defined as [Dynamic Hook Handlers](#dynamic-hook-handlers) are first, in reverse order of their registration. - The Hook Handlers defined in the plugins' `hookHandlers` properties come next. They are in the reverse order of the resolved list of plugins, which means that the Hook Handlers defined by the plugins you depend on always come after your own. Read [this section](/docs/plugin-development/explanations/lifecycle#plugin-list-resolution) to understand how this order is determined. - The default behavior comes last and doesn't have a `next` function. The first Hook Handler to be executed will receive the parameters passed to the Hook run as `hookHandlerArguments`. Using the `next` function, each Hook Handler decides when and if it wants to pass control to the next Hook Handler in the chain. Running `next` returns the result of executing the next Hook Handler. This lets you choose if your Hook Handler should customize the behavior you are hooking into before or after the next Hook Handlers. A Hook Handler can also decide not to call `next` at all and return a value directly, but it should never call it more than once. When calling `next`, it should pass the same `context`, but can decide to pass a different set of arguments as `nextArguments`. To learn more about the `context`, read the [Hook Context](#hook-context) section. For example, the Hook Handler for `NetworkHooks#onRequest` of the [Hardhat 3 plugin template](https://github.com/NomicFoundation/hardhat3-plugin-template/) looks like this: ```ts async onRequest(context, networkConnection, jsonRpcRequest, next) { console.log(`Request from connection ${networkConnection.id} is being processed — Method: ${jsonRpcRequest.method}`); return next(context, networkConnection, jsonRpcRequest); } ``` It prints a message when a request is received and passes control to the next Hook Handler in the chain. ### Parallel Hooks Parallel Hooks are Hooks that run in an unknown order. They don't have access to a `next` function, and Hardhat doesn't guarantee any execution order. ```ts type MyParallelHook = ( , ...hookHandlerArguments ) => Promise; ``` All the Hook Handlers of a Parallel Hook are always executed and receive the same parameters that are passed to the Hook run. ### Sequential Hooks Sequential Hooks are the least common type of Hook. If you are thinking about defining one, consider using a [Parallel Hook](#parallel-hooks) instead. When a Sequential Hook is run, its Hook Handlers are always executed in the same order. They don't have access to a `next` function, and Hardhat guarantees that all of them are executed in order. A Sequential Hook looks like this: ```ts type MySequentialHook = ( , ...hookHandlerArguments ) => Promise; ``` All the Hook Handlers of a Sequential Hook are always executed and receive the same parameters that are passed to the Hook run. The order in which they are executed is exactly the opposite of the [Chained Hooks](#chained-hooks)'s order. ## Hook Context The `context` is an object that gives access to most of the functionality of Hardhat to Hook Handlers. You can think of it as a trimmed-down version of the Hardhat Runtime Environment. The only thing that the Hook Handlers can't access is the `tasks` property, as mixing Hook Handlers and Hardhat Tasks is not allowed. ## Dynamic Hook Handlers You can also define Hook Handlers dynamically using the Hardhat Runtime Environment. This is useful when you want to customize the behavior of Hardhat during the execution of a task, instead of everywhere. For example, this task action registers a Hook Handler for the `NetworkHooks#newConnection` Hook before executing the rest of the logic: ```ts export default async function ( , , ) { const = { async newConnection(context, next) { const conn = await next(context); console.log(\"New connection created with ID\", conn.id); return conn; }, }; try { hre.hooks.registerHandlers(\"network\", networkHandlers); // Logic that may use the network } finally { hre.hooks.unregisterHandlers(\"network\", networkHandlers); } } ``` This allows you to connect the Hardhat Tasks to the Hooks system and create Hook Handlers with state that depends on the execution of a task. ## Config Hooks The Hooks in the `config` category are a special case, as they are run before the Hardhat Runtime Environment initialization is complete. They are defined in the same way as the rest of the Hooks, but their Hook Handlers don't receive the `context` parameter.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.368Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1185}}354{"id":"doc-istio_upgrade_with_helm-edf5f42f","source":"documentation","title":"Istio / Upgrade with Helm","url":"https://istio.io/latest/docs/ambient/upgrade/helm/","text":"Example:\n```bash\n$ istioctl x precheck\n✔ No issues found when checking the cluster. Istio is safe to install or upgrade!\n To get started, check out <https://istio.io/latest/docs/setup/getting-started/>\n```\n\nExample:\n```bash\n$ helm repo update istio\n```\n\nExample:\n```bash\n$ kubectl get mutatingwebhookconfigurations -l 'istio.io/rev,!istio.io/tag' -L istio\\.io/rev\n$ # Store your revision and new revision in variables:\n$ export REVISION=istio-1-22-1\n$ export OLD_REVISION=istio-1-21-2\n```\n\nExample:\n```bash\n$ for crd in $(kubectl get crds -l chart=istio -o name && kubectl get crds -l app.kubernetes.io/part-of=istio -o name)\n$ do\n$ kubectl label \"$crd\" \"app.kubernetes.io/managed-by=Helm\"\n$ kubectl annotate \"$crd\" \"meta.helm.sh/release-name=istio-base\" # replace with actual Helm release name, if different from the documentation default\n$ kubectl annotate \"$crd\" \"meta.helm.sh/release-namespace=istio-system\" # replace with actual istio namespace\n$ done\n```\n\nExample:\n```bash\n$ helm upgrade istio-base istio/base -n istio-system\n```\n\nExample:\n```bash\n$ helm upgrade istiod istio/istiod -n istio-system --wait\n```\n\nExample:\n```bash\n$ helm install istiod-\"$REVISION\" istio/istiod -n istio-system --set revision=\"$REVISION\" --set profile=ambient --wait\n```\n\nExample:\n```bash\n$ helm upgrade istio-cni istio/cni -n istio-system --set profile=ambient --wait\n```\n\nExample:\n```bash\n$ helm upgrade ztunnel istio/ztunnel -n istio-system --wait\n```\n\nExample:\n```bash\n$ helm upgrade ztunnel istio/ztunnel -n istio-system --set revision=\"$REVISION\" --wait\n```\n\nExample:\n```bash\n$ helm upgrade istio-ingress istio/gateway -n istio-ingress\n```\n\nExample:\n```bash\n$ kubectl get mutatingwebhookconfigurations -l 'istio.io/tag' -L istio\\.io/tag,istio\\.io/rev\n```\n\nExample:\n```bash\n$ helm template istiod istio/istiod -s templates/revision-tags-mwc.yaml --set revisionTags=\"{$MYTAG}\" --set revision=\"$REVISION\" -n istio-system | kubectl apply -f -\n```\n\nExample:\n```bash\n$ helm template istiod istio/istiod -s templates/revision-tags-mwc.yaml --set revisionTags=\"{$MYTAG}\" --set revision=\"$OLD_REVISION\" -n istio-system | kubectl apply -f -\n```\n\nExample:\n```bash\n$ helm delete istiod-\"$OLD_REVISION\" -n istio-system\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.926Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":15,"totalLines":86,"estimatedTokens":557}}355{"id":"doc-istio_portnameisnotundernamingconvention-11884d43","source":"documentation","title":"Istio / PortNameIsNotUnderNamingConvention","url":"https://istio.io/latest/docs/reference/config/analysis/ist0118/","text":"Example:\n```plain\nInfo [IST0118] (Service httpbin.default) Port name foo-http (port: 80, targetPort: 80) doesn't follow the naming convention of Istio port.\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\n name: httpbin\n labels:\n app: httpbin\nspec:\n ports:\n - name: foo-http\n port: 8000\n targetPort: 80\n selector:\n app: httpbin\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:46.936Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":23,"estimatedTokens":94}}356{"id":"doc-git_git_name_rev_documentation-6464c5e6","source":"documentation","title":"Git - git-name-rev Documentation","url":"http://git-scm.com/docs/git-name-rev","text":"Example:\n```text\ngit name-rev [--tags] [--refs=<pattern>]\n\t ( --all | --annotate-stdin | <commit-ish>… )\n```\n\nExample:\n```text\n$ cat sample.txt\n\nAn abbreviated revision 2ae0a9cb82 will not be substituted.\nThe full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907,\nwhile its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad\n\n$ git name-rev --annotate-stdin <sample.txt\n\nAn abbreviated revision 2ae0a9cb82 will not be substituted.\nThe full name after substitution is 2ae0a9cb8298185a94e5998086f380a355dd8907 (master),\nwhile its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad\n\n$ git name-rev --name-only --annotate-stdin <sample.txt\n\nAn abbreviated revision 2ae0a9cb82 will not be substituted.\nThe full name after substitution is master,\nwhile its tree object is 70d105cc79e63b81cfdcb08a15297c23e60b07ad\n```\n\nExample:\n```text\n% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a\n33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940\n```\n\nExample:\n```text\n% git log | git name-rev --annotate-stdin\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.745Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":39,"estimatedTokens":265}}357{"id":"doc-git_git_upload_pack_documentation-012b2b77","source":"documentation","title":"Git - git-upload-pack Documentation","url":"http://git-scm.com/docs/git-upload-pack","text":"Example:\n```text\ngit-upload-pack [--[no-]strict] [--timeout=<n>] [--stateless-rpc]\n\t\t [--advertise-refs] <directory>\n```\n\nExample:\n```text\ngit clone --no-local --upload-pack='sudo -u nobody git-upload-pack' ...\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:37.758Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":12,"estimatedTokens":58}}358{"id":"doc-git_git_verify_commit_documentation-803d3d22","source":"documentation","title":"Git - git-verify-commit Documentation","url":"http://git-scm.com/docs/git-verify-commit","text":"Example:\n```text\ngitverify-commit-v--verbose--raw\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:38.088Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":17}}359{"id":"doc-git_git_sparse_checkout_documentation-9da122ce","source":"documentation","title":"Git - git-sparse-checkout Documentation","url":"http://git-scm.com/docs/git-sparse-checkout","text":"Example:\n```text\ngit sparse-checkout (init | list | set | add | reapply | disable | check-rules | clean) [<options>]\n```\n\nExample:\n```text\ngit sparse-checkout set '/toplevel-dir/*.c'\n```\n\nExample:\n```text\ngit sparse-checkout set relative-dir\n```\n\nExample:\n```text\ncurrent/subdirectory/toplevel-dir/*.c\n```\n\nExample:\n```text\ncurrent/subdirectory/relative-dir\n```\n\nExample:\n```text\ngit sparse-checkout set --no-cone '/*' '!unwanted'\n```\n\nExample:\n```text\n/*\n!unwanted\n```\n\nExample:\n```text\n/*\n!/*/\n```\n\nExample:\n```text\n/*\n!/*/\n/A/\n!/A/*/\n/A/B/\n!/A/B/*/\n/A/B/C/\n```\n\nExample:\n```text\n$ git sparse-checkout list\nA/B/C\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:38.121Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":60,"estimatedTokens":158}}360{"id":"doc-git_git_merge_tree_documentation-315aa17c","source":"documentation","title":"Git - git-merge-tree Documentation","url":"http://git-scm.com/docs/git-merge-tree","text":"Example:\n```text\ngit merge-tree [--write-tree] [<options>] <branch1> <branch2>\ngit merge-tree [--trivial-merge] <base-tree> <branch1> <branch2> (deprecated)\n```\n\nExample:\n```text\n<OID of toplevel tree>\n```\n\nExample:\n```text\n<OID of toplevel tree>\n<Conflicted file info>\n<Informational messages>\n```\n\nExample:\n```text\n<Merge status>\n<OID of toplevel tree>\n<Conflicted file info>\n<Informational messages>\nNUL\n<Merge status>\n<OID of toplevel tree>\nNUL\n```\n\nExample:\n```text\n0: merge had conflicts\n1: merge was clean\n```\n\nExample:\n```text\n<mode> <object> <stage> <filename>\n```\n\nExample:\n```text\n<list-of-paths><conflict-type>NUL<conflict-message>NUL\n```\n\nExample:\n```text\n<number-of-paths>NUL<path1>NUL<path2>NUL...<pathN>NUL\n```\n\nExample:\n```text\nvi message.txt\nBRANCH1=refs/heads/test\nBRANCH2=main\nNEWTREE=$(git merge-tree --write-tree $BRANCH1 $BRANCH2) || {\n echo \"There were conflicts...\" 1>&2\n exit 1\n}\nNEWCOMMIT=$(git commit-tree $NEWTREE -F message.txt \\\n -p $BRANCH1 -p $BRANCH2)\ngit update-ref $BRANCH1 $NEWCOMMIT\n```\n\nExample:\n```text\n[<base-commit> -- ]<branch1> <branch2>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:38.728Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":71,"estimatedTokens":277}}361{"id":"doc-epic_links_api_deprecated_gitlab_docs-6e42490a","source":"documentation","title":"Epic Links API (deprecated) | GitLab Docs","url":"https://docs.gitlab.com/api/epic_links/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint ]Assign a child epicCreates an association between two epics, designating one as the parent epic and the other as the child epic. A parent epic can have multiple child epics. If the new child epic already belonged to another epic, it is unassigned from that previous parent.POST /groups/:id/epics/:epic_iid/epics/:child_epic_idAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the groupepic_iidintegeryesThe internal ID of the epic.child_epic_idintegeryesThe global ID of the child epic. Internal ID can’t be used because it can conflict with epics from other groups.curl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/1/epics/5/epics/6\"Example response:{ \"id\": 6, \"iid\": 38, \"group_id\": 1, \"parent_id\": 5, \"title\": \"Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.\", \"description\": \"Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.\", \"author\": { \"id\": 10, \"name\": \"Lu Mayer\", \"username\": \"kam\", \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon\", \"web_url\": \"http://localhost:3001/kam\" }, \"start_date\": null, \"start_date_is_fixed\": false, \"start_date_fixed\": null, \"start_date_from_milestones\": null, //deprecated in favor of start_date_from_inherited_source \"start_date_from_inherited_source\": null, \"end_date\": \"2018-07-31\", //deprecated in favor of due_date \"due_date\": \"2018-07-31\", \"due_date_is_fixed\": false, \"due_date_fixed\": null, \"due_date_from_milestones\": \"2018-07-31\", //deprecated in favor of start_date_from_inherited_source \"due_date_from_inherited_source\": \"2018-07-31\", \"created_at\": \"2018-07-17T13:36:22.770Z\", \"updated_at\": \"2018-07-18T12:22:05.239Z\", \"labels\": [] }Create and assign a child epicCreate a new epic and associate it with provided parent epic. The response is a LinkedEpic object.POST /groups/:id/epics/:epic_iid/epicsAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the groupepic_iidintegeryesThe internal ID of the (future parent) epic.titlestringyesThe title of a newly created epic.confidentialbooleannoWhether the epic should be confidential. Parameter is ignored if confidential_epics feature flag is disabled. Defaults to the confidentiality state of the parent epic.curl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic\"Example response:{ \"id\": 24, \"iid\": 2, \"title\": \"child epic\", \"group_id\": 49, \"parent_id\": 23, \"has_children\": false, \"has_issues\": false, \"reference\": \"&2\", \"url\": \"http://localhost/groups/group16/-/epics/2\", \"relation_url\": \"http://localhost/groups/group16/-/epics/1/links/24\" }Re-order a child epicPUT /groups/:id/epics/:epic_iid/epics/:child_epic_idAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the group.epic_iidintegeryesThe internal ID of the epic.child_epic_idintegeryesThe global ID of the child epic. Internal ID can’t be used because it can conflict with epics from other groups.move_before_idintegernoThe global ID of a sibling epic that should be placed before the child epic.move_after_idintegernoThe global ID of a sibling epic that should be placed after the child epic.curl --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5\"Example response:[ { \"id\": 29, \"iid\": 6, \"group_id\": 1, \"parent_id\": 5, \"title\": \"Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.\", \"description\": \"Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.\", \"author\": { \"id\": 10, \"name\": \"Lu Mayer\", \"username\": \"kam\", \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon\", \"web_url\": \"http://localhost:3001/kam\" }, \"start_date\": null, \"start_date_is_fixed\": false, \"start_date_fixed\": null, \"start_date_from_milestones\": null, //deprecated in favor of start_date_from_inherited_source \"start_date_from_inherited_source\": null, \"end_date\": \"2018-07-31\", //deprecated in favor of due_date \"due_date\": \"2018-07-31\", \"due_date_is_fixed\": false, \"due_date_fixed\": null, \"due_date_from_milestones\": \"2018-07-31\", //deprecated in favor of start_date_from_inherited_source \"due_date_from_inherited_source\": \"2018-07-31\", \"created_at\": \"2018-07-17T13:36:22.770Z\", \"updated_at\": \"2018-07-18T12:22:05.239Z\", \"labels\": [] } ]Unassign a child epicUnassign a child epic from a parent epic.DELETE /groups/:id/epics/:epic_iid/epics/:child_epic_idAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the group.epic_iidintegeryesThe internal ID of the epic.child_epic_idintegeryesThe global ID of the child epic. Internal ID can’t be used because it can conflict with epics from other groups.curl --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5\"Example response:{ \"id\": 5, \"iid\": 38, \"group_id\": 1, \"parent_id\": null, \"title\": \"Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.\", \"description\": \"Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.\", \"author\": { \"id\": 10, \"name\": \"Lu Mayer\", \"username\": \"kam\", \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon\", \"web_url\": \"http://localhost:3001/kam\" }, \"start_date\": null, \"start_date_is_fixed\": false, \"start_date_fixed\": null, \"start_date_from_milestones\": null, //deprecated in favor of start_date_from_inherited_source \"start_date_from_inherited_source\": null, \"end_date\": \"2018-07-31\", //deprecated in favor of due_date \"due_date\": \"2018-07-31\", \"due_date_is_fixed\": false, \"due_date_fixed\": null, \"due_date_from_milestones\": \"2018-07-31\", //deprecated in favor of start_date_from_inherited_source \"due_date_from_inherited_source\": \"2018-07-31\", \"created_at\": \"2018-07-17T13:36:22.770Z\", \"updated_at\": \"2018-07-18T12:22:05.239Z\", \"labels\": [] }List all child epics of an epicAssign a child epicCreate and assign a child epicRe-order a child epicUnassign a child epic\n\nExample:\n```plaintext\nGET /groups/:id/epics/:epic_iid/epics\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/1/epics/5/epics\"\n```\n\nExample:\n```json\n[\n {\n \"id\": 29,\n \"iid\": 6,\n \"group_id\": 1,\n \"parent_id\": 5,\n \"title\": \"Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.\",\n \"description\": \"Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.\",\n \"author\": {\n \"id\": 10,\n \"name\": \"Lu Mayer\",\n \"username\": \"kam\",\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3001/kam\"\n },\n \"start_date\": null,\n \"start_date_is_fixed\": false,\n \"start_date_fixed\": null,\n \"start_date_from_milestones\": null, //deprecated in favor of start_date_from_inherited_source\n \"start_date_from_inherited_source\": null,\n \"end_date\": \"2018-07-31\", //deprecated in favor of due_date\n \"due_date\": \"2018-07-31\",\n \"due_date_is_fixed\": false,\n \"due_date_fixed\": null,\n \"due_date_from_milestones\": \"2018-07-31\", //deprecated in favor of start_date_from_inherited_source\n \"due_date_from_inherited_source\": \"2018-07-31\",\n \"created_at\": \"2018-07-17T13:36:22.770Z\",\n \"updated_at\": \"2018-07-18T12:22:05.239Z\",\n \"labels\": []\n }\n]\n```\n\nExample:\n```plaintext\nPOST /groups/:id/epics/:epic_iid/epics/:child_epic_id\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/1/epics/5/epics/6\"\n```\n\nExample:\n```json\n{\n \"id\": 6,\n \"iid\": 38,\n \"group_id\": 1,\n \"parent_id\": 5,\n \"title\": \"Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.\",\n \"description\": \"Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.\",\n \"author\": {\n \"id\": 10,\n \"name\": \"Lu Mayer\",\n \"username\": \"kam\",\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3001/kam\"\n },\n \"start_date\": null,\n \"start_date_is_fixed\": false,\n \"start_date_fixed\": null,\n \"start_date_from_milestones\": null, //deprecated in favor of start_date_from_inherited_source\n \"start_date_from_inherited_source\": null,\n \"end_date\": \"2018-07-31\", //deprecated in favor of due_date\n \"due_date\": \"2018-07-31\",\n \"due_date_is_fixed\": false,\n \"due_date_fixed\": null,\n \"due_date_from_milestones\": \"2018-07-31\", //deprecated in favor of start_date_from_inherited_source\n \"due_date_from_inherited_source\": \"2018-07-31\",\n \"created_at\": \"2018-07-17T13:36:22.770Z\",\n \"updated_at\": \"2018-07-18T12:22:05.239Z\",\n \"labels\": []\n}\n```\n\nExample:\n```plaintext\nPOST /groups/:id/epics/:epic_iid/epics\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/1/epics/5/epics?title=Newpic\"\n```\n\nExample:\n```json\n{\n \"id\": 24,\n \"iid\": 2,\n \"title\": \"child epic\",\n \"group_id\": 49,\n \"parent_id\": 23,\n \"has_children\": false,\n \"has_issues\": false,\n \"reference\": \"&2\",\n \"url\": \"http://localhost/groups/group16/-/epics/2\",\n \"relation_url\": \"http://localhost/groups/group16/-/epics/1/links/24\"\n}\n```\n\nExample:\n```plaintext\nPUT /groups/:id/epics/:epic_iid/epics/:child_epic_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5\"\n```\n\nExample:\n```plaintext\nDELETE /groups/:id/epics/:epic_iid/epics/:child_epic_id\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/1/epics/4/epics/5\"\n```\n\nExample:\n```json\n{\n \"id\": 5,\n \"iid\": 38,\n \"group_id\": 1,\n \"parent_id\": null,\n \"title\": \"Accusamus iste et ullam ratione voluptatem omnis debitis dolor est.\",\n \"description\": \"Molestias dolorem eos vitae expedita impedit necessitatibus quo voluptatum.\",\n \"author\": {\n \"id\": 10,\n \"name\": \"Lu Mayer\",\n \"username\": \"kam\",\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/018729e129a6f31c80a6327a30196823?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3001/kam\"\n },\n \"start_date\": null,\n \"start_date_is_fixed\": false,\n \"start_date_fixed\": null,\n \"start_date_from_milestones\": null, //deprecated in favor of start_date_from_inherited_source\n \"start_date_from_inherited_source\": null,\n \"end_date\": \"2018-07-31\", //deprecated in favor of due_date\n \"due_date\": \"2018-07-31\",\n \"due_date_is_fixed\": false,\n \"due_date_fixed\": null,\n \"due_date_from_milestones\": \"2018-07-31\", //deprecated in favor of start_date_from_inherited_source\n \"due_date_from_inherited_source\": \"2018-07-31\",\n \"created_at\": \"2018-07-17T13:36:22.770Z\",\n \"updated_at\": \"2018-07-18T12:22:05.239Z\",\n \"labels\": []\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:10.937Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":14,"totalLines":182,"estimatedTokens":3096}}362{"id":"doc-discussions_api_gitlab_docs-ec1e96b2","source":"documentation","title":"Discussions API | GitLab Docs","url":"https://docs.gitlab.com/api/discussions/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint .gitlab-ci.ymlMarkdownMaven virtual registryMember rolesMerge request approvalsMerge request approval settingsMerge request context commitsMerge requestsMerge trainsMetadataModel registryNamespacesNotes (comments)Notification settingsOrbitOrganizationsPackage registryPages domainsPersonal access tokensPipeline schedulesPipeline trigger tokensPipelinesPlan limitsProjectsRepositoriesRepository filesRepository submodulesResource groupResource iteration eventsResource label eventsResource milestone eventsResource state eventsResource weight eventsRunnersRunner controllersRunner controller tokensSearchSearch migrationsSecrets Manager APISecure filesService accountsService PingSidekiq metricsSidekiq queuesSnippet repository storage movesSnippetsSuggestionsSystem hooksTagsTo-Do ListToken informationTopicsUsersUser applicationsVirtual registries cleanup policiesVulnerabilitiesVulnerability archive exportVulnerability exportVulnerability findingsWeb commitsAuthenticationThird-party clientsDeprecations and removalsOpenAPIAutomate storage managementTroubleshootingGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Editor and IDE extensionsGitLab Docs /Extend /REST API /Resources /DiscussionsHelp us learn about your current experience with the documentation. Take the survey.Discussions , Premium, , GitLab Self-Managed, GitLab DedicatedUse this API to manage discussions. This includes comments, threads, and system notes about changes to an object (for example, when a milestone changes).To manage label notes, use the resource label events API.Understand note types in the APINot all discussion types are equally available in the : A comment left on the root of an issue, merge request, commit, or snippet.Discussion: A collection, often called a thread, of DiscussionNotes in an issue, merge request, commit, or snippet.DiscussionNote: An individual item in a discussion on an issue, merge request, commit, or snippet. Items of type DiscussionNote are not returned as part of the Note API. Not available in the Events API.Discussions paginationBy default, GET requests return 20 results at a time because the API results are paginated.Read more on pagination.IssuesList all issue discussion itemsLists all discussion items for a specified issue in a project.GET /projects/:id/issues/:issue_iid/discussionsSupported or stringYesThe ID or URL-encoded path of the project.issue_iidintegerYesThe IID of an issue.If successful, returns 200 OK and the following response ID of the discussion.individual_notebooleanIf true, an individual note or part of a discussion.notesarrayArray of note objects in the discussion.notes[].idintegerThe ID of the note.notes[].typestringThe type of note (DiscussionNote or null).notes[].bodystringThe content of the note.notes[].authorobjectThe author of the note.notes[].created_atstringWhen the note was created (ISO 8601 format).notes[].updated_atstringWhen the note was last updated (ISO 8601 format).notes[].systembooleanIf true, a system note.notes[].noteable_idintegerThe ID of the noteable object.notes[].noteable_typestringThe type of the noteable object.notes[].project_idintegerThe ID of the project.notes[].resolvablebooleanIf true, the note can be resolved.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions\"Example response:[ { \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\", \"individual_note\": false, \"notes\": [ { \"id\": 1126, \"type\": \"DiscussionNote\", \"body\": \"discussion text\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-03T21:54:39.668Z\", \"updated_at\": \"2018-03-03T21:54:39.668Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Issue\", \"project_id\": 5, \"noteable_iid\": null }, { \"id\": 1129, \"type\": \"DiscussionNote\", \"body\": \"reply to the discussion\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T13:38:02.127Z\", \"updated_at\": \"2018-03-04T13:38:02.127Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Issue\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] }, { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": true, \"notes\": [ { \"id\": 1128, \"type\": null, \"body\": \"a single comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Issue\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] } ]Retrieve an issue discussion itemRetrieves a specified discussion item for a project issue.GET /projects/:id/issues/:issue_iid/discussions/:discussion_idSupported ID of a discussion item.idinteger or stringYesThe ID or URL-encoded path of the project.issue_iidintegerYesThe IID of an issue.If successful, returns 200 OK and the same response attributes as List issue discussion items.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>\"Create an issue threadCreates a new thread to a single project issue. Similar to creating a note, but other comments (replies) can be added to it later.POST /projects/:id/issues/:issue_iid/discussionsSupported content of the thread.idinteger or stringYesThe ID or URL-encoded path of the project.issue_iidintegerYesThe IID of an issue.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the same response attributes as List issue discussion items.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions?body=comment\"Add a note to an issue threadAdds a new note to the thread. This can also create a thread from a single comment.Notes cannot be added to system notes. Attempting to do so returns a 400 Bad Request error.POST /projects/:id/issues/:issue_iid/discussions/:discussion_id/notesSupported content of the note or reply.discussion_idintegerYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.issue_iidintegerYesThe IID of an issue.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created note object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>/notes?body=comment\"Update an issue thread noteUpdates an existing thread note of an issue.PUT /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_idSupported content of the note or reply.discussion_idintegerYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.issue_iidintegerYesThe IID of an issue.note_idintegerYesThe ID of a thread note.If successful, returns 200 OK and the updated note object.Example --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"Delete an issue thread noteDeletes an existing thread note of an issue.DELETE /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_idSupported ID of a discussion.idinteger or stringYesThe ID or URL-encoded path of the project.issue_iidintegerYesThe IID of an issue.note_idintegerYesThe ID of a discussion note.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>/notes/<note_id>\"SnippetsList all snippet discussion itemsLists all discussion items for a specified snippet in a project.GET /projects/:id/snippets/:snippet_id/discussionsSupported or stringYesThe ID or URL-encoded path of the project.snippet_idintegerYesThe ID of a snippet.If successful, returns 200 OK and the same response attributes as List issue discussion items, with noteable_type set to Snippet.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions\"Example response:[ { \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\", \"individual_note\": false, \"notes\": [ { \"id\": 1126, \"type\": \"DiscussionNote\", \"body\": \"discussion text\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-03T21:54:39.668Z\", \"updated_at\": \"2018-03-03T21:54:39.668Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Snippet\", \"project_id\": 5, \"noteable_iid\": null }, { \"id\": 1129, \"type\": \"DiscussionNote\", \"body\": \"reply to the discussion\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T13:38:02.127Z\", \"updated_at\": \"2018-03-04T13:38:02.127Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Snippet\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] }, { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": true, \"notes\": [ { \"id\": 1128, \"type\": null, \"body\": \"a single comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Snippet\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] } ]Retrieve a snippet discussion itemRetrieves a specified discussion item for a project snippet.GET /projects/:id/snippets/:snippet_id/discussions/:discussion_idSupported ID of a discussion item.idinteger or stringYesThe ID or URL-encoded path of the project.snippet_idintegerYesThe ID of a snippet.If successful, returns 200 OK and the same response attributes as List snippet discussion items.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>\"Create a snippet threadCreates a new thread to a single project snippet. Similar to creating a note, but other comments (replies) can be added to it later.POST /projects/:id/snippets/:snippet_id/discussionsSupported content of a discussion.idinteger or stringYesThe ID or URL-encoded path of the project.snippet_idintegerYesThe ID of a snippet.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created discussion object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions?body=comment\"Add a note to a snippet threadAdds a new note to the thread.POST /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notesSupported content of the note or reply.discussion_idintegerYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.snippet_idintegerYesThe ID of a snippet.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created note object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>/notes?body=comment\"Update a snippet thread noteUpdates an existing thread note of a snippet.PUT /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_idSupported content of the note or reply.discussion_idintegerYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.note_idintegerYesThe ID of a thread note.snippet_idintegerYesThe ID of a snippet.If successful, returns 200 OK and the updated note object.Example --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"Delete a snippet thread noteDeletes an existing thread note of a snippet.DELETE /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_idSupported ID of a discussion.idinteger or stringYesThe ID or URL-encoded path of the project.note_idintegerYesThe ID of a discussion note.snippet_idintegerYesThe ID of a snippet.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>/notes/<note_id>\"EpicsTier: , GitLab Self-Managed, GitLab DedicatedThe Epics REST API was deprecated in GitLab 17.0 and is planned for removal in v5 of the API. This change is a breaking change.Use the Work Items API 17.4 to 18.0: Required when the new look for epics is enabled.GitLab 18.1 and for all installations.For more information, see the API migration guide.List all epic discussion itemsLists all discussion items for a single epic.GET /groups/:id/epics/:epic_id/discussionsSupported ID of an epic.idinteger or stringYesThe ID or URL-encoded path of the group.If successful, returns 200 OK and the same response attributes as List issue discussion items, with noteable_type set to Epic.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions\"Example response:[ { \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\", \"individual_note\": false, \"notes\": [ { \"id\": 1126, \"type\": \"DiscussionNote\", \"body\": \"discussion text\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-03T21:54:39.668Z\", \"updated_at\": \"2018-03-03T21:54:39.668Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Epic\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false }, { \"id\": 1129, \"type\": \"DiscussionNote\", \"body\": \"reply to the discussion\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T13:38:02.127Z\", \"updated_at\": \"2018-03-04T13:38:02.127Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Epic\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] }, { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": true, \"notes\": [ { \"id\": 1128, \"type\": null, \"body\": \"a single comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Epic\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] } ]Retrieve an epic discussion itemRetrieves a specified discussion item for a group epic.GET /groups/:id/epics/:epic_id/discussions/:discussion_idSupported ID of a discussion item.epic_idintegerYesThe ID of an epic.idinteger or stringYesThe ID or URL-encoded path of the group.If successful, returns 200 OK and the same response attributes as List epic discussion items.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>\"Create an epic threadCreates a new thread to a single group epic. Similar to creating a note, but other comments (replies) can be added to it later.POST /groups/:id/epics/:epic_id/discussionsSupported content of the thread.epic_idintegerYesThe ID of an epic.idinteger or stringYesThe ID or URL-encoded path of the group.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created discussion object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions?body=comment\"Add a note to an epic threadAdds a new note to the thread. This can also create a thread from a single comment.POST /groups/:id/epics/:epic_id/discussions/:discussion_id/notesSupported content of the note or reply.discussion_idintegerYesThe ID of a thread.epic_idintegerYesThe ID of an epic.idinteger or stringYesThe ID or URL-encoded path of the group.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created note object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>/notes?body=comment\"Update an epic thread noteUpdates an existing thread note of an epic.PUT /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_idSupported content of a note or reply.discussion_idintegerYesThe ID of a thread.epic_idintegerYesThe ID of an epic.idinteger or stringYesThe ID or URL-encoded path of the group.note_idintegerYesThe ID of a thread note.If successful, returns 200 OK and the updated note object.Example --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"Delete an epic thread noteDeletes an existing thread note of an epic.DELETE /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_idSupported ID of a thread.epic_idintegerYesThe ID of an epic.idinteger or stringYesThe ID or URL-encoded path of the group.note_idintegerYesThe ID of a thread note.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>/notes/<note_id>\"Merge requestsList all merge request discussion itemsLists all discussion items for a specified merge request.GET /projects/:id/merge_requests/:merge_request_iid/discussionsSupported or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.If successful, returns 200 OK and the following response ID of the discussion.individual_notebooleanIf true, an individual note or part of a discussion.notesarrayArray of note objects in the discussion.notes[].idintegerThe ID of the note.notes[].typestringThe type of note (DiscussionNote, DiffNote, or null).notes[].bodystringThe content of the note.notes[].authorobjectThe author of the note.notes[].created_atstringWhen the note was created (ISO 8601 format).notes[].updated_atstringWhen the note was last updated (ISO 8601 format).notes[].systembooleanIf true, a system note.notes[].noteable_idintegerThe ID of the noteable object.notes[].noteable_typestringThe type of the noteable object.notes[].project_idintegerThe ID of the project.notes[].resolvedbooleanIf true, the note is resolved (merge requests only).notes[].resolvablebooleanIf true, the note can be resolved.notes[].resolved_byobjectThe user who resolved the note.notes[].resolved_atstringWhen the note was resolved (ISO 8601 format).notes[].positionobjectPosition information for diff notes.notes[].suggestionsarrayArray of suggestion objects for the note.Diff comments also contain position --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions\"Example response:[ { \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\", \"individual_note\": false, \"notes\": [ { \"id\": 1126, \"type\": \"DiscussionNote\", \"body\": \"discussion text\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-03T21:54:39.668Z\", \"updated_at\": \"2018-03-03T21:54:39.668Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"MergeRequest\", \"project_id\": 5, \"noteable_iid\": null, \"resolved\": false, \"resolvable\": true, \"resolved_by\": null, \"resolved_at\": null }, { \"id\": 1129, \"type\": \"DiscussionNote\", \"body\": \"reply to the discussion\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T13:38:02.127Z\", \"updated_at\": \"2018-03-04T13:38:02.127Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"MergeRequest\", \"project_id\": 5, \"noteable_iid\": null, \"resolved\": false, \"resolvable\": true, \"resolved_by\": null } ] }, { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": true, \"notes\": [ { \"id\": 1128, \"type\": null, \"body\": \"a single comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"MergeRequest\", \"project_id\": 5, \"noteable_iid\": null, \"resolved\": false, \"resolvable\": true, \"resolved_by\": null } ] } ]Diff comments also contain position:[ { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": false, \"notes\": [ { \"id\": 1128, \"type\": \"DiffNote\", \"body\": \"diff comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"MergeRequest\", \"project_id\": 5, \"noteable_iid\": null, \"commit_id\": \"4803c71e6b1833ca72b8b26ef2ecd5adc8a38031\", \"position\": { \"base_sha\": \"b5d6e7b1613fca24d250fa8e5bc7bcc3dd6002ef\", \"start_sha\": \"7c9c2ead8a320fb7ba0b4e234bd9529a2614e306\", \"head_sha\": \"4803c71e6b1833ca72b8b26ef2ecd5adc8a38031\", \"old_path\": \"package.json\", \"new_path\": \"package.json\", \"position_type\": \"text\", \"old_line\": 27, \"new_line\": 27, \"line_range\": { \"start\": { \"line_code\": \"588440f66559714280628a4f9799f0c4eb880a4a_10_10\", \"type\": \"new\", \"old_line\": null, \"new_line\": 10 }, \"end\": { \"line_code\": \"588440f66559714280628a4f9799f0c4eb880a4a_11_11\", \"type\": \"old\", \"old_line\": 11, \"new_line\": 11 } } }, \"resolved\": false, \"resolvable\": true, \"resolved_by\": null, \"suggestions\": [ { \"id\": 1, \"from_line\": 27, \"to_line\": 27, \"appliable\": true, \"applied\": false, \"from_content\": \"x\", \"to_content\": \"b\" } ] } ] } ]Retrieve a merge request discussion itemRetrieves a specified discussion item for a project merge request.GET /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_idSupported ID of a discussion item.idinteger or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.If successful, returns 200 OK and the same response attributes as List merge request discussion items.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>\"Create a merge request threadCreates a new thread to a single project merge request. Similar to creating a note but other comments (replies) can be added to it later. For other approaches, see Post comment to commit in the Commits API, and Create a merge request note in the Notes API.POST /projects/:id/merge_requests/:merge_request_iid/discussionsSupported attributes for all content of the thread.idinteger or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.commit_idstringNoSHA referencing commit to start this discussion on.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.positionhashNoPosition when creating a diff note.position[base_sha]stringYes (if position* is supplied)Base commit SHA in the source branch.position[head_sha]stringYes (if position* is supplied)SHA referencing HEAD of this merge request.position[start_sha]stringYes (if position* is supplied)SHA referencing commit in target branch.position[position_type]stringYes (if position* is supplied)Type of the position reference. Allowed , image, or file.position[new_path]stringYes (if the position type is text)File path after change.position[old_path]stringYes (if the position type is text)File path before change.position[new_line]integerNoFor text diff notes, the line number after change.position[old_line]integerNoFor text diff notes, the line number before change.position[line_range]hashNoLine range for a multi-line diff note.position[width]integerNoFor image diff notes, width of the image.position[height]integerNoFor image diff notes, height of the image.position[x]floatNoFor image diff notes, X coordinate.position[y]floatNoFor image diff notes, Y coordinate.If successful, returns 201 Created and the created discussion object.Create a new thread on the overview pagecurl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions?body=comment\"Create a new thread in the merge request diffBoth position[old_path] and position[new_path] are required and must refer to the file path before and after the change.To create a thread on an added line (highlighted in green in the merge request diff), use position[new_line] and don’t include position[old_line].To create a thread on a removed line (highlighted in red in the merge request diff), use position[old_line] and don’t include position[new_line].To create a thread on an unchanged line, include both position[new_line] and position[old_line] for the line. These positions might not be the same if earlier changes in the file changed the line number. For the discussion about a fix, see issue 32516.If you specify incorrect base, head, start, or SHA parameters, you might run into the bug described in issue , \"previous versions are here\" ]Create a new diff thread. This example creates a thread on an added --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --form 'position[position_type]=text' \\ --form 'position[base_sha]=<use base_commit_sha from the versions response>' \\ --form 'position[head_sha]=<use head_commit_sha from the versions response>' \\ --form 'position[start_sha]=<use start_commit_sha from the versions response>' \\ --form 'position[new_path]=file.js' \\ --form 'position[old_path]=file.js' \\ --form 'position[new_line]=18' \\ --form 'body=test comment body' \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions\"Parameters for multiline commentsSupported attributes for multiline comments [line_range][end][line_code]stringYesLine code for the end line.position[line_range][end][type]stringYesUse new for lines added by this commit, otherwise old.position[line_range][end][old_line]integerNoOld line number of the end line.position[line_range][end][new_line]integerNoNew line number of the end line.position[line_range][start][line_code]stringYesLine code for the start line.position[line_range][start][type]stringYesUse new for lines added by this commit, otherwise old.position[line_range][start][old_line]integerNoOld line number of the start line.position[line_range][start][new_line]integerNoNew line number of the start line.position[line_range][end]hashNoMultiline note ending line.position[line_range][start]hashNoMultiline note starting line.The old_line and new_line parameters inside the line_range attribute display the range for multi-line comments. For example, “Comment on lines +296 to +297”.Line codeA line code is of the form <SHA>_<old>_<new>, like <SHA> is the SHA1 hash of the filename.<old> is the line number before the change.<new> is the line number after the change.For example, if a commit (<COMMIT_ID>) deletes line 463 in the README, you can comment on the deletion by referencing line 463 in the old --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --form \"note=Very clever to remove this unnecessary line!\" \\ --form \"path=README\" \\ --form \"line=463\" \\ --form \"line_type=old\" \\ --url \"https://gitlab.com/api/v4/projects/47/repository/commits/<COMMIT_ID>/comments\"If a commit (<COMMIT_ID>) adds line 157 to hello.rb, you can comment on the addition by referencing line 157 in the new --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --form \"note=This is brilliant!\" \\ --form \"path=hello.rb\" \\ --form \"line=157\" \\ --form \"line_type=new\" \\ --url \"https://gitlab.com/api/v4/projects/47/repository/commits/<COMMIT_ID>/comments\"Resolve a merge request threadResolve or reopen a thread of discussion in a merge request.Prerequisites:You must have the Developer, Maintainer, or Owner role, or be the author of the change being reviewed.PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_idSupported ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.resolvedbooleanYesIf true, resolve or reopen the discussion.If successful, returns 200 OK and the updated discussion object.Example --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>?resolved=true\"Add note to a merge request threadAdds a new note to the thread. This can also create a thread from a single comment.POST /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notesSupported content of the note or reply.discussion_idstringYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created note object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes?body=comment\"Update a merge request thread noteUpdates or resolves a specified thread note for a merge request.PUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_idSupported ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.note_idintegerYesThe ID of a thread note.bodystringNoThe content of the note or reply. Exactly one of body or resolved must be set.resolvedbooleanNoResolve or reopen the note. Exactly one of body or resolved must be set.If successful, returns 200 OK and the updated note object.Example --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"Resolving a --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes/<note_id>?resolved=true\"Delete a merge request thread noteDeletes an existing thread note of a merge request.DELETE /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_idSupported ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.merge_request_iidintegerYesThe IID of a merge request.note_idintegerYesThe ID of a thread note.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes/<note_id>\"CommitsList all commit discussion itemsLists all discussion items for a specified commit.GET /projects/:id/repository/commits/:commit_id/discussionsSupported SHA of a commit.idinteger or stringYesThe ID or URL-encoded path of the project.If successful, returns 200 OK and the same response attributes as List issue discussion items, with noteable_type set to Commit.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions\"Example response:[ { \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\", \"individual_note\": false, \"notes\": [ { \"id\": 1126, \"type\": \"DiscussionNote\", \"body\": \"discussion text\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-03T21:54:39.668Z\", \"updated_at\": \"2018-03-03T21:54:39.668Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Commit\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false }, { \"id\": 1129, \"type\": \"DiscussionNote\", \"body\": \"reply to the discussion\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T13:38:02.127Z\", \"updated_at\": \"2018-03-04T13:38:02.127Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Commit\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] }, { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": true, \"notes\": [ { \"id\": 1128, \"type\": null, \"body\": \"a single comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Commit\", \"project_id\": 5, \"noteable_iid\": null, \"resolvable\": false } ] } ]Diff comments also contain position:[ { \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\", \"individual_note\": false, \"notes\": [ { \"id\": 1128, \"type\": \"DiffNote\", \"body\": \"diff comment\", \"attachment\": null, \"author\": { \"id\": 1, \"name\": \"root\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"created_at\": \"2018-03-04T09:17:22.520Z\", \"updated_at\": \"2018-03-04T09:17:22.520Z\", \"system\": false, \"noteable_id\": 3, \"noteable_type\": \"Commit\", \"project_id\": 5, \"noteable_iid\": null, \"position\": { \"base_sha\": \"b5d6e7b1613fca24d250fa8e5bc7bcc3dd6002ef\", \"start_sha\": \"7c9c2ead8a320fb7ba0b4e234bd9529a2614e306\", \"head_sha\": \"4803c71e6b1833ca72b8b26ef2ecd5adc8a38031\", \"old_path\": \"package.json\", \"new_path\": \"package.json\", \"position_type\": \"text\", \"old_line\": 27, \"new_line\": 27 }, \"resolvable\": false } ] } ]Retrieve a commit discussion itemRetrieves a specified discussion item for a project commit.GET /projects/:id/repository/commits/:commit_id/discussions/:discussion_idSupported SHA of a commit.discussion_idstringYesThe ID of a discussion item.idinteger or stringYesThe ID or URL-encoded path of the project.If successful, returns 200 OK and the same response attributes as List commit discussion items.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>\"Create a commit threadCreates a new thread to a single project commit. Similar to creating a note but other comments (replies) can be added to it later.POST /projects/:id/repository/commits/:commit_id/discussionsSupported content of the thread.commit_idstringYesThe SHA of a commit.idinteger or stringYesThe ID or URL-encoded path of the project.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.positionhashNoPosition when creating a diff note.position[base_sha]stringYes (if position* is supplied)SHA of the parent commit.position[head_sha]stringYes (if position* is supplied)The SHA of this commit. Same as commit_id.position[start_sha]stringYes (if position* is supplied)SHA of the parent commit.position[position_type]stringYes (if position* is supplied)Type of the position reference. Allowed , image, or file.position[new_path]stringNoFile path after change.position[new_line]integerNoLine number after change.position[old_path]stringNoFile path before change.position[old_line]integerNoLine number before change.position[height]integerNoFor image diff notes, image height.position[width]integerNoFor image diff notes, image width.position[x]integerNoFor image diff notes, X coordinate.position[y]integerNoFor image diff notes, Y coordinate.If successful, returns 201 Created and the created discussion object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions?body=comment\"The rules for creating the API request are the same as when creating a new thread in the merge request diff. The note to a commit threadAdds a new note to the thread.POST /projects/:id/repository/commits/:commit_id/discussions/:discussion_id/notesSupported content of the note or reply.commit_idstringYesThe SHA of a commit.discussion_idstringYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.created_atstringNoDate time string, ISO 8601 formatted, such as :40Z. Requires administrator or project/group owner rights.If successful, returns 201 Created and the created note object.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes?body=comment\"Update a commit thread noteUpdates or resolves a specified thread note for a commit.PUT /projects/:id/repository/commits/:commit_id/discussions/:discussion_id/notes/:note_idSupported content of a note.commit_idstringYesThe SHA of a commit.discussion_idstringYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.note_idintegerYesThe ID of a thread note.If successful, returns 200 OK and the updated note object.Example --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes/<note_id>?body=comment\"Resolving a --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes/<note_id>?resolved=true\"Delete a commit discussion noteDeletes an existing discussion note of a commit.DELETE /projects/:id/repository/commits/:commit_id/discussions/:discussion_id/notes/:note_idSupported SHA of a commit.discussion_idstringYesThe ID of a thread.idinteger or stringYesThe ID or URL-encoded path of the project.note_idintegerYesThe ID of a thread note.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes/<note_id>\"Understand note types in the APIDiscussions paginationIssuesList all issue discussion itemsRetrieve an issue discussion itemCreate an issue threadAdd a note to an issue threadUpdate an issue thread noteDelete an issue thread noteSnippetsList all snippet discussion itemsRetrieve a snippet discussion itemCreate a snippet threadAdd a note to a snippet threadUpdate a snippet thread noteDelete a snippet thread noteEpicsList all epic discussion itemsRetrieve an epic discussion itemCreate an epic threadAdd a note to an epic threadUpdate an epic thread noteDelete an epic thread noteMerge requestsList all merge request discussion itemsRetrieve a merge request discussion itemCreate a merge request threadCreate a new thread on the overview pageCreate a new thread in the merge request diffParameters for multiline commentsLine codeResolve a merge request threadAdd note to a merge request threadUpdate a merge request thread noteDelete a merge request thread noteCommitsList all commit discussion itemsRetrieve a commit discussion itemCreate a commit threadAdd note to a commit threadUpdate a commit thread noteDelete a commit discussion note\n\nExample:\n```plaintext\nGET /projects/:id/issues/:issue_iid/discussions\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions\"\n```\n\nExample:\n```json\n[\n {\n \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1126,\n \"type\": \"DiscussionNote\",\n \"body\": \"discussion text\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-03T21:54:39.668Z\",\n \"updated_at\": \"2018-03-03T21:54:39.668Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Issue\",\n \"project_id\": 5,\n \"noteable_iid\": null\n },\n {\n \"id\": 1129,\n \"type\": \"DiscussionNote\",\n \"body\": \"reply to the discussion\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T13:38:02.127Z\",\n \"updated_at\": \"2018-03-04T13:38:02.127Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Issue\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n },\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": true,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": null,\n \"body\": \"a single comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Issue\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/issues/:issue_iid/discussions/:discussion_id\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/issues/:issue_iid/discussions\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions?body=comment\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>/notes?body=comment\"\n```\n\nExample:\n```plaintext\nPUT /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/issues/:issue_iid/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/issues/11/discussions/<discussion_id>/notes/<note_id>\"\n```\n\nExample:\n```plaintext\nGET /projects/:id/snippets/:snippet_id/discussions\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions\"\n```\n\nExample:\n```json\n[\n {\n \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1126,\n \"type\": \"DiscussionNote\",\n \"body\": \"discussion text\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-03T21:54:39.668Z\",\n \"updated_at\": \"2018-03-03T21:54:39.668Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Snippet\",\n \"project_id\": 5,\n \"noteable_iid\": null\n },\n {\n \"id\": 1129,\n \"type\": \"DiscussionNote\",\n \"body\": \"reply to the discussion\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T13:38:02.127Z\",\n \"updated_at\": \"2018-03-04T13:38:02.127Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Snippet\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n },\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": true,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": null,\n \"body\": \"a single comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Snippet\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/snippets/:snippet_id/discussions/:discussion_id\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/snippets/:snippet_id/discussions\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions?body=comment\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>/notes?body=comment\"\n```\n\nExample:\n```plaintext\nPUT /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/snippets/:snippet_id/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/snippets/11/discussions/<discussion_id>/notes/<note_id>\"\n```\n\nExample:\n```plaintext\nGET /groups/:id/epics/:epic_id/discussions\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions\"\n```\n\nExample:\n```json\n[\n {\n \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1126,\n \"type\": \"DiscussionNote\",\n \"body\": \"discussion text\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-03T21:54:39.668Z\",\n \"updated_at\": \"2018-03-03T21:54:39.668Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Epic\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n },\n {\n \"id\": 1129,\n \"type\": \"DiscussionNote\",\n \"body\": \"reply to the discussion\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T13:38:02.127Z\",\n \"updated_at\": \"2018-03-04T13:38:02.127Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Epic\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n },\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": true,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": null,\n \"body\": \"a single comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Epic\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n }\n]\n```\n\nExample:\n```plaintext\nGET /groups/:id/epics/:epic_id/discussions/:discussion_id\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>\"\n```\n\nExample:\n```plaintext\nPOST /groups/:id/epics/:epic_id/discussions\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions?body=comment\"\n```\n\nExample:\n```plaintext\nPOST /groups/:id/epics/:epic_id/discussions/:discussion_id/notes\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>/notes?body=comment\"\n```\n\nExample:\n```plaintext\nPUT /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"\n```\n\nExample:\n```plaintext\nDELETE /groups/:id/epics/:epic_id/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/groups/5/epics/11/discussions/<discussion_id>/notes/<note_id>\"\n```\n\nExample:\n```plaintext\nGET /projects/:id/merge_requests/:merge_request_iid/discussions\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions\"\n```\n\nExample:\n```json\n[\n {\n \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1126,\n \"type\": \"DiscussionNote\",\n \"body\": \"discussion text\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-03T21:54:39.668Z\",\n \"updated_at\": \"2018-03-03T21:54:39.668Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"MergeRequest\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolved\": false,\n \"resolvable\": true,\n \"resolved_by\": null,\n \"resolved_at\": null\n },\n {\n \"id\": 1129,\n \"type\": \"DiscussionNote\",\n \"body\": \"reply to the discussion\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T13:38:02.127Z\",\n \"updated_at\": \"2018-03-04T13:38:02.127Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"MergeRequest\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolved\": false,\n \"resolvable\": true,\n \"resolved_by\": null\n }\n ]\n },\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": true,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": null,\n \"body\": \"a single comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"MergeRequest\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolved\": false,\n \"resolvable\": true,\n \"resolved_by\": null\n }\n ]\n }\n]\n```\n\nExample:\n```json\n[\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": \"DiffNote\",\n \"body\": \"diff comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"MergeRequest\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"commit_id\": \"4803c71e6b1833ca72b8b26ef2ecd5adc8a38031\",\n \"position\": {\n \"base_sha\": \"b5d6e7b1613fca24d250fa8e5bc7bcc3dd6002ef\",\n \"start_sha\": \"7c9c2ead8a320fb7ba0b4e234bd9529a2614e306\",\n \"head_sha\": \"4803c71e6b1833ca72b8b26ef2ecd5adc8a38031\",\n \"old_path\": \"package.json\",\n \"new_path\": \"package.json\",\n \"position_type\": \"text\",\n \"old_line\": 27,\n \"new_line\": 27,\n \"line_range\": {\n \"start\": {\n \"line_code\": \"588440f66559714280628a4f9799f0c4eb880a4a_10_10\",\n \"type\": \"new\",\n \"old_line\": null,\n \"new_line\": 10\n },\n \"end\": {\n \"line_code\": \"588440f66559714280628a4f9799f0c4eb880a4a_11_11\",\n \"type\": \"old\",\n \"old_line\": 11,\n \"new_line\": 11\n }\n }\n },\n \"resolved\": false,\n \"resolvable\": true,\n \"resolved_by\": null,\n \"suggestions\": [\n {\n \"id\": 1,\n \"from_line\": 27,\n \"to_line\": 27,\n \"appliable\": true,\n \"applied\": false,\n \"from_content\": \"x\",\n \"to_content\": \"b\"\n }\n ]\n }\n ]\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/merge_requests/:merge_request_iid/discussions\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions?body=comment\"\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/versions\"\n```\n\nExample:\n```json\n[\n {\n \"id\": 164560414,\n \"head_commit_sha\": \"f9ce7e16e56c162edbc9e480108041cf6b0291fe\",\n \"base_commit_sha\": \"5e6dffa282c5129aa67cd227a0429be21bfdaf80\",\n \"start_commit_sha\": \"5e6dffa282c5129aa67cd227a0429be21bfdaf80\",\n \"created_at\": \"2021-03-30T09:18:27.351Z\",\n \"merge_request_id\": 93958054,\n \"state\": \"collected\",\n \"real_size\": \"2\"\n },\n \"previous versions are here\"\n]\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --form 'position[position_type]=text' \\\n --form 'position[base_sha]=<use base_commit_sha from the versions response>' \\\n --form 'position[head_sha]=<use head_commit_sha from the versions response>' \\\n --form 'position[start_sha]=<use start_commit_sha from the versions response>' \\\n --form 'position[new_path]=file.js' \\\n --form 'position[old_path]=file.js' \\\n --form 'position[new_line]=18' \\\n --form 'body=test comment body' \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions\"\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --form \"note=Very clever to remove this unnecessary line!\" \\\n --form \"path=README\" \\\n --form \"line=463\" \\\n --form \"line_type=old\" \\\n --url \"https://gitlab.com/api/v4/projects/47/repository/commits/<COMMIT_ID>/comments\"\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --form \"note=This is brilliant!\" \\\n --form \"path=hello.rb\" \\\n --form \"line=157\" \\\n --form \"line_type=new\" \\\n --url \"https://gitlab.com/api/v4/projects/47/repository/commits/<COMMIT_ID>/comments\"\n```\n\nExample:\n```plaintext\nPUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>?resolved=true\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes?body=comment\"\n```\n\nExample:\n```plaintext\nPUT /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes/<note_id>?body=comment\"\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes/<note_id>?resolved=true\"\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/merge_requests/:merge_request_iid/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/merge_requests/11/discussions/<discussion_id>/notes/<note_id>\"\n```\n\nExample:\n```plaintext\nGET /projects/:id/repository/commits/:commit_id/discussions\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions\"\n```\n\nExample:\n```json\n[\n {\n \"id\": \"6a9c1750b37d513a43987b574953fceb50b03ce7\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1126,\n \"type\": \"DiscussionNote\",\n \"body\": \"discussion text\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-03T21:54:39.668Z\",\n \"updated_at\": \"2018-03-03T21:54:39.668Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Commit\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n },\n {\n \"id\": 1129,\n \"type\": \"DiscussionNote\",\n \"body\": \"reply to the discussion\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T13:38:02.127Z\",\n \"updated_at\": \"2018-03-04T13:38:02.127Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Commit\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n },\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": true,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": null,\n \"body\": \"a single comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Commit\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"resolvable\": false\n }\n ]\n }\n]\n```\n\nExample:\n```json\n[\n {\n \"id\": \"87805b7c09016a7058e91bdbe7b29d1f284a39e6\",\n \"individual_note\": false,\n \"notes\": [\n {\n \"id\": 1128,\n \"type\": \"DiffNote\",\n \"body\": \"diff comment\",\n \"attachment\": null,\n \"author\": {\n \"id\": 1,\n \"name\": \"root\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/00afb8fb6ab07c3ee3e9c1f38777e2f4?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"created_at\": \"2018-03-04T09:17:22.520Z\",\n \"updated_at\": \"2018-03-04T09:17:22.520Z\",\n \"system\": false,\n \"noteable_id\": 3,\n \"noteable_type\": \"Commit\",\n \"project_id\": 5,\n \"noteable_iid\": null,\n \"position\": {\n \"base_sha\": \"b5d6e7b1613fca24d250fa8e5bc7bcc3dd6002ef\",\n \"start_sha\": \"7c9c2ead8a320fb7ba0b4e234bd9529a2614e306\",\n \"head_sha\": \"4803c71e6b1833ca72b8b26ef2ecd5adc8a38031\",\n \"old_path\": \"package.json\",\n \"new_path\": \"package.json\",\n \"position_type\": \"text\",\n \"old_line\": 27,\n \"new_line\": 27\n },\n \"resolvable\": false\n }\n ]\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/repository/commits/:commit_id/discussions/:discussion_id\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/repository/commits/:commit_id/discussions\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions?body=comment\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/repository/commits/:commit_id/discussions/:discussion_id/notes\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes?body=comment\"\n```\n\nExample:\n```plaintext\nPUT /projects/:id/repository/commits/:commit_id/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes/<note_id>?body=comment\"\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes/<note_id>?resolved=true\"\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/repository/commits/:commit_id/discussions/:discussion_id/notes/:note_id\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/repository/commits/<commit_id>/discussions/<discussion_id>/notes/<note_id>\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:10.955Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":76,"totalLines":980,"estimatedTokens":17426}}363{"id":"doc-ai_catalog_admin_api_gitlab_docs-9e3a9b1f","source":"documentation","title":"AI Catalog admin API | GitLab Docs","url":"https://docs.gitlab.com/api/admin/ai_catalog/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint Example error response (HTTP 422):{ \"message\": \"Error: External agents already seeded\" }Error response - user is not an admin (HTTP 403):{ \"message\": \"403 Forbidden\" }Seed GitLab-managed external agents\n\nExample:\n```plaintext\nPOST /api/v4/admin/ai_catalog/seed_external_agents\n```\n\nExample:\n```plaintext\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://primary.example.com/api/v4/admin/ai_catalog/seed_external_agents\"\n```\n\nExample:\n```json\n{\n \"message\": \"External agents seeded successfully\"\n}\n```\n\nExample:\n```json\n{\n \"message\": \"Error: External agents already seeded\"\n}\n```\n\nExample:\n```json\n{\n \"message\": \"403 Forbidden\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:10.997Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":36,"estimatedTokens":450}}364{"id":"doc-deployments_api_gitlab_docs-070de194","source":"documentation","title":"Deployments API | GitLab Docs","url":"https://docs.gitlab.com/api/deployments/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint .gitlab-ci.ymlMarkdownMaven virtual registryMember rolesMerge request approvalsMerge request approval settingsMerge request context commitsMerge requestsMerge trainsMetadataModel registryNamespacesNotes (comments)Notification settingsOrbitOrganizationsPackage registryPages domainsPersonal access tokensPipeline schedulesPipeline trigger tokensPipelinesPlan limitsProjectsRepositoriesRepository filesRepository submodulesResource groupResource iteration eventsResource label eventsResource milestone eventsResource state eventsResource weight eventsRunnersRunner controllersRunner controller tokensSearchSearch migrationsSecrets Manager APISecure filesService accountsService PingSidekiq metricsSidekiq queuesSnippet repository storage movesSnippetsSuggestionsSystem hooksTagsTo-Do ListToken informationTopicsUsersUser applicationsVirtual registries cleanup policiesVulnerabilitiesVulnerability archive exportVulnerability exportVulnerability findingsWeb commitsAuthenticationThird-party clientsDeprecations and removalsOpenAPIAutomate storage managementTroubleshootingGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Editor and IDE extensionsGitLab Docs /Extend /REST API /Resources /DeploymentsHelp us learn about your current experience with the documentation. Take the survey.Deployments , Premium, , GitLab Self-Managed, GitLab DedicatedUse this API to interact with code deployments to GitLab environments.List all project deploymentsLists all deployments in a project.GET /projects/:id/deploymentsAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the project.order_bystringnoReturn deployments ordered by either one of id, iid, created_at, updated_at, finished_at or ref fields. Default is id.sortstringnoReturn deployments sorted in asc or desc order. Default is asc.updated_afterdatetimenoReturn deployments updated after the specified date. Expected in ISO 8601 format (2019-03-15T08:00:00Z).updated_beforedatetimenoReturn deployments updated before the specified date. Expected in ISO 8601 format (2019-03-15T08:00:00Z).finished_afterdatetimenoReturn deployments finished after the specified date. Expected in ISO 8601 format (2019-03-15T08:00:00Z).finished_beforedatetimenoReturn deployments finished before the specified date. Expected in ISO 8601 format (2019-03-15T08:00:00Z).environmentstringnoThe name of the environment to filter deployments by.statusstringnoThe status to filter deployments by. One of created, running, success, failed, canceled, or blocked.curl --request \"GET\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments\"When using finished_before or finished_after, you should specify the order_by to be finished_at and status should be success.Example response:[ { \"created_at\": \"2016-08-11T07:36:40.222Z\", \"updated_at\": \"2016-08-11T07:38:12.414Z\", \"status\": \"created\", \"deployable\": { \"commit\": { \"author_email\": \"admin@example.com\", \"author_name\": \"Administrator\", \"created_at\": \"2016-08-11T09:36:01.000+02:00\", \"id\": \"99d03678b90d914dbb1b109132516d71a4a03ea8\", \"message\": \"Merge branch 'new-title' into 'main'\\r\\n\\r\\nUpdate README\\r\\n\\r\\n\\r\\n\\r\\nSee merge request !1\", \"short_id\": \"99d03678\", \"title\": \"Merge branch 'new-title' into 'main'\\r\" }, \"coverage\": null, \"created_at\": \"2016-08-11T07:36:27.357Z\", \"finished_at\": \"2016-08-11T07:36:39.851Z\", \"id\": 657, \"name\": \"deploy\", \"ref\": \"main\", \"runner\": null, \"stage\": \"deploy\", \"started_at\": null, \"status\": \"success\", \"tag\": false, \"project\": { \"ci_job_token_scope_enabled\": false }, \"user\": { \"id\": 1, \"name\": \"Administrator\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"web_url\": \"http://gitlab.dev/root\", \"created_at\": \"2015-12-21T13:14:24.077Z\", \"bio\": null, \"location\": null, \"public_email\": \"\", \"linkedin\": \"\", \"twitter\": \"\", \"website_url\": \"\", \"organization\": \"\" }, \"pipeline\": { \"created_at\": \"2016-08-11T02:12:10.222Z\", \"id\": 36, \"ref\": \"main\", \"sha\": \"99d03678b90d914dbb1b109132516d71a4a03ea8\", \"status\": \"success\", \"updated_at\": \"2016-08-11T02:12:10.222Z\", \"web_url\": \"http://gitlab.dev/root/project/pipelines/12\" } }, \"environment\": { \"external_url\": \"https://about.gitlab.com\", \"id\": 9, \"name\": \"production\" }, \"id\": 41, \"iid\": 1, \"ref\": \"main\", \"sha\": \"99d03678b90d914dbb1b109132516d71a4a03ea8\", \"user\": { \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"id\": 1, \"name\": \"Administrator\", \"state\": \"active\", \"username\": \"root\", \"web_url\": \"http://localhost:3000/root\" } }, { \"created_at\": \"2016-08-11T11:32:35.444Z\", \"updated_at\": \"2016-08-11T11:34:01.123Z\", \"status\": \"created\", \"deployable\": { \"commit\": { \"author_email\": \"admin@example.com\", \"author_name\": \"Administrator\", \"created_at\": \"2016-08-11T13:28:26.000+02:00\", \"id\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"message\": \"Merge branch 'rename-readme' into 'main'\\r\\n\\r\\nRename README\\r\\n\\r\\n\\r\\n\\r\\nSee merge request !2\", \"short_id\": \"a91957a8\", \"title\": \"Merge branch 'rename-readme' into 'main'\\r\" }, \"coverage\": null, \"created_at\": \"2016-08-11T11:32:24.456Z\", \"finished_at\": \"2016-08-11T11:32:35.145Z\", \"id\": 664, \"name\": \"deploy\", \"ref\": \"main\", \"runner\": null, \"stage\": \"deploy\", \"started_at\": null, \"status\": \"success\", \"tag\": false, \"project\": { \"ci_job_token_scope_enabled\": false }, \"user\": { \"id\": 1, \"name\": \"Administrator\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"web_url\": \"http://gitlab.dev/root\", \"created_at\": \"2015-12-21T13:14:24.077Z\", \"bio\": null, \"location\": null, \"public_email\": \"\", \"linkedin\": \"\", \"twitter\": \"\", \"website_url\": \"\", \"organization\": \"\" }, \"pipeline\": { \"created_at\": \"2016-08-11T07:43:52.143Z\", \"id\": 37, \"ref\": \"main\", \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"status\": \"success\", \"updated_at\": \"2016-08-11T07:43:52.143Z\", \"web_url\": \"http://gitlab.dev/root/project/pipelines/13\" } }, \"environment\": { \"external_url\": \"https://about.gitlab.com\", \"id\": 9, \"name\": \"production\" }, \"id\": 42, \"iid\": 2, \"ref\": \"main\", \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"user\": { \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"id\": 1, \"name\": \"Administrator\", \"state\": \"active\", \"username\": \"root\", \"web_url\": \"http://localhost:3000/root\" } } ]Retrieve a deploymentRetrieves a single deployment.GET /projects/:id/deployments/:deployment_idAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the projectdeployment_idintegeryesThe ID of the deploymentcurl --request \"GET\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments/1\"Example response:{ \"id\": 42, \"iid\": 2, \"ref\": \"main\", \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"created_at\": \"2016-08-11T11:32:35.444Z\", \"updated_at\": \"2016-08-11T11:34:01.123Z\", \"status\": \"success\", \"user\": { \"name\": \"Administrator\", \"username\": \"root\", \"id\": 1, \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"environment\": { \"id\": 9, \"name\": \"production\", \"external_url\": \"https://about.gitlab.com\" }, \"deployable\": { \"id\": 664, \"status\": \"success\", \"stage\": \"deploy\", \"name\": \"deploy\", \"ref\": \"main\", \"tag\": false, \"coverage\": null, \"created_at\": \"2016-08-11T11:32:24.456Z\", \"started_at\": null, \"finished_at\": \"2016-08-11T11:32:35.145Z\", \"project\": { \"ci_job_token_scope_enabled\": false }, \"user\": { \"id\": 1, \"name\": \"Administrator\", \"username\": \"root\", \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"web_url\": \"http://gitlab.dev/root\", \"created_at\": \"2015-12-21T13:14:24.077Z\", \"bio\": null, \"location\": null, \"linkedin\": \"\", \"twitter\": \"\", \"website_url\": \"\", \"organization\": \"\" }, \"commit\": { \"id\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"short_id\": \"a91957a8\", \"title\": \"Merge branch 'rename-readme' into 'main'\\r\", \"author_name\": \"Administrator\", \"author_email\": \"admin@example.com\", \"created_at\": \"2016-08-11T13:28:26.000+02:00\", \"message\": \"Merge branch 'rename-readme' into 'main'\\r\\n\\r\\nRename README\\r\\n\\r\\n\\r\\n\\r\\nSee merge request !2\" }, \"pipeline\": { \"created_at\": \"2016-08-11T07:43:52.143Z\", \"id\": 42, \"ref\": \"main\", \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"status\": \"success\", \"updated_at\": \"2016-08-11T07:43:52.143Z\", \"web_url\": \"http://gitlab.dev/root/project/pipelines/5\" }, \"runner\": null } }When multiple approval rules are configured, deployments created by users on GitLab Premium or Ultimate include the approval_summary property:{ \"approval_summary\": { \"rules\": [ { \"user_id\": null, \"group_id\": 134, \"access_level\": null, \"access_level_description\": \"qa-group\", \"required_approvals\": 1, \"deployment_approvals\": [] }, { \"user_id\": null, \"group_id\": 135, \"access_level\": null, \"access_level_description\": \"security-group\", \"required_approvals\": 2, \"deployment_approvals\": [ { \"user\": { \"id\": 100, \"username\": \"security-user-1\", \"name\": \"security user-1\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/e130fcd3a1681f41a3de69d10841afa9?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/security-user-1\" }, \"status\": \"approved\", \"created_at\": \"2022-04-11T03:37:03.058Z\", \"comment\": null } ] } ] } ... }Create a deploymentCreates a deployment.POST /projects/:id/deploymentsAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the project.environmentstringyesThe name of the environment to create the deployment for.shastringyesThe SHA of the commit that is deployed.refstringyesThe name of the branch or tag that is deployed.tagbooleanyesA boolean that indicates if the deployed ref is a tag (true) or not (false).statusstringyesThe status of the deployment that is created. One of running, success, failed, or canceledcurl --request \"POST\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --data \"environment=production&sha=a91957a858320c0e17f3a0eca7cfacbff50ea29a&ref=main&tag=false&status=success\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments\"Example response:{ \"id\": 42, \"iid\": 2, \"ref\": \"main\", \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"created_at\": \"2016-08-11T11:32:35.444Z\", \"status\": \"success\", \"user\": { \"name\": \"Administrator\", \"username\": \"root\", \"id\": 1, \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"environment\": { \"id\": 9, \"name\": \"production\", \"external_url\": \"https://about.gitlab.com\" }, \"deployable\": null }Deployments created by users on GitLab Premium or Ultimate include the approvals and pending_approval_count properties:{ \"status\": \"created\", \"pending_approval_count\": 0, \"approvals\": [], ... }Update a deploymentUpdates a deployment.PUT /projects/:id/deployments/:deployment_idAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the project.deployment_idintegeryesThe ID of the deployment to update.statusstringyesThe new status of the deployment. One of running, success, failed, or canceled.curl --request \"PUT\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --data \"status=success\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments/42\"Example response:{ \"id\": 42, \"iid\": 2, \"ref\": \"main\", \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\", \"created_at\": \"2016-08-11T11:32:35.444Z\", \"status\": \"success\", \"user\": { \"name\": \"Administrator\", \"username\": \"root\", \"id\": 1, \"state\": \"active\", \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/root\" }, \"environment\": { \"id\": 9, \"name\": \"production\", \"external_url\": \"https://about.gitlab.com\" }, \"deployable\": null }Deployments created by users on GitLab Premium or Ultimate include the approvals and pending_approval_count properties:{ \"status\": \"created\", \"pending_approval_count\": 0, \"approvals\": [ { \"user\": { \"id\": 49, \"username\": \"project_6_bot\", \"name\": \"****\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/e83ac685f68ea07553ad3054c738c709?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/project_6_bot\" }, \"status\": \"approved\", \"created_at\": \"2022-02-24T20:22:30.097Z\", \"comment\": \"Looks good to me\" } ], ... }Delete a deploymentDeletes a specified deployment that is not currently the last deployment for an environment or in a running state.DELETE /projects/:id/deployments/:deployment_idAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the projectdeployment_idintegeryesThe ID of the deploymentcurl --request \"DELETE\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments/1\"Example responses:{ \"message\": \"204 Deployment destroyed\" }{ \"message\": \"403 Forbidden\" }{ \"message\": \"400 Cannot destroy running deployment\" }{ \"message\": \"400 Deployment currently deployed to environment\" }List all merge requests associated with a deploymentNot all deployments can be associated with merge requests. See Track what merge requests were deployed to an environment for more information.Lists all merge requests shipped with a given deployment.GET /projects/:id/deployments/:deployment_id/merge_requestsIt supports the same parameters as the Merge requests API and returns a response using the same --request \"GET\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments/42/merge_requests\"Approve or reject a deploymentApproves or rejects a deployment.Tier: Premium, , GitLab Self-Managed, GitLab DedicatedSee Deployment Approvals for more information about this feature.POST /projects/:id/deployments/:deployment_id/approvalAttributeTypeRequiredDescriptionidinteger or stringyesThe ID or URL-encoded path of the project.deployment_idintegeryesThe ID of the deployment.statusstringyesThe status of the approval (either approved or rejected).commentstringnoA comment to go with the approvalrepresented_asstringnoThe name of the User/Group/Role to use for the approval, when the user belongs to multiple approval rules.curl --request \"POST\" \\ --data \"status=approved&comment=Looks good to me&represented_as=security\" \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/1/deployments/1/approval\"Example response:{ \"user\": { \"id\": 100, \"username\": \"security-user-1\", \"name\": \"security user-1\", \"state\": \"active\", \"avatar_url\": \"https://www.gravatar.com/avatar/e130fcd3a1681f41a3de69d10841afa9?s=80&d=identicon\", \"web_url\": \"http://localhost:3000/security-user-1\" }, \"status\": \"approved\", \"created_at\": \"2022-02-24T20:22:30.097Z\", \"comment\":\"Looks good to me\" }List all project deploymentsRetrieve a deploymentCreate a deploymentUpdate a deploymentDelete a deploymentList all merge requests associated with a deploymentApprove or reject a deployment\n\nExample:\n```plaintext\nGET /projects/:id/deployments\n```\n\nExample:\n```shell\ncurl --request \"GET\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments\"\n```\n\nExample:\n```json\n[\n {\n \"created_at\": \"2016-08-11T07:36:40.222Z\",\n \"updated_at\": \"2016-08-11T07:38:12.414Z\",\n \"status\": \"created\",\n \"deployable\": {\n \"commit\": {\n \"author_email\": \"admin@example.com\",\n \"author_name\": \"Administrator\",\n \"created_at\": \"2016-08-11T09:36:01.000+02:00\",\n \"id\": \"99d03678b90d914dbb1b109132516d71a4a03ea8\",\n \"message\": \"Merge branch 'new-title' into 'main'\\r\\n\\r\\nUpdate README\\r\\n\\r\\n\\r\\n\\r\\nSee merge request !1\",\n \"short_id\": \"99d03678\",\n \"title\": \"Merge branch 'new-title' into 'main'\\r\"\n },\n \"coverage\": null,\n \"created_at\": \"2016-08-11T07:36:27.357Z\",\n \"finished_at\": \"2016-08-11T07:36:39.851Z\",\n \"id\": 657,\n \"name\": \"deploy\",\n \"ref\": \"main\",\n \"runner\": null,\n \"stage\": \"deploy\",\n \"started_at\": null,\n \"status\": \"success\",\n \"tag\": false,\n \"project\": {\n \"ci_job_token_scope_enabled\": false\n },\n \"user\": {\n \"id\": 1,\n \"name\": \"Administrator\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"web_url\": \"http://gitlab.dev/root\",\n \"created_at\": \"2015-12-21T13:14:24.077Z\",\n \"bio\": null,\n \"location\": null,\n \"public_email\": \"\",\n \"linkedin\": \"\",\n \"twitter\": \"\",\n \"website_url\": \"\",\n \"organization\": \"\"\n },\n \"pipeline\": {\n \"created_at\": \"2016-08-11T02:12:10.222Z\",\n \"id\": 36,\n \"ref\": \"main\",\n \"sha\": \"99d03678b90d914dbb1b109132516d71a4a03ea8\",\n \"status\": \"success\",\n \"updated_at\": \"2016-08-11T02:12:10.222Z\",\n \"web_url\": \"http://gitlab.dev/root/project/pipelines/12\"\n }\n },\n \"environment\": {\n \"external_url\": \"https://about.gitlab.com\",\n \"id\": 9,\n \"name\": \"production\"\n },\n \"id\": 41,\n \"iid\": 1,\n \"ref\": \"main\",\n \"sha\": \"99d03678b90d914dbb1b109132516d71a4a03ea8\",\n \"user\": {\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"id\": 1,\n \"name\": \"Administrator\",\n \"state\": \"active\",\n \"username\": \"root\",\n \"web_url\": \"http://localhost:3000/root\"\n }\n },\n {\n \"created_at\": \"2016-08-11T11:32:35.444Z\",\n \"updated_at\": \"2016-08-11T11:34:01.123Z\",\n \"status\": \"created\",\n \"deployable\": {\n \"commit\": {\n \"author_email\": \"admin@example.com\",\n \"author_name\": \"Administrator\",\n \"created_at\": \"2016-08-11T13:28:26.000+02:00\",\n \"id\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"message\": \"Merge branch 'rename-readme' into 'main'\\r\\n\\r\\nRename README\\r\\n\\r\\n\\r\\n\\r\\nSee merge request !2\",\n \"short_id\": \"a91957a8\",\n \"title\": \"Merge branch 'rename-readme' into 'main'\\r\"\n },\n \"coverage\": null,\n \"created_at\": \"2016-08-11T11:32:24.456Z\",\n \"finished_at\": \"2016-08-11T11:32:35.145Z\",\n \"id\": 664,\n \"name\": \"deploy\",\n \"ref\": \"main\",\n \"runner\": null,\n \"stage\": \"deploy\",\n \"started_at\": null,\n \"status\": \"success\",\n \"tag\": false,\n \"project\": {\n \"ci_job_token_scope_enabled\": false\n },\n \"user\": {\n \"id\": 1,\n \"name\": \"Administrator\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"web_url\": \"http://gitlab.dev/root\",\n \"created_at\": \"2015-12-21T13:14:24.077Z\",\n \"bio\": null,\n \"location\": null,\n \"public_email\": \"\",\n \"linkedin\": \"\",\n \"twitter\": \"\",\n \"website_url\": \"\",\n \"organization\": \"\"\n },\n \"pipeline\": {\n \"created_at\": \"2016-08-11T07:43:52.143Z\",\n \"id\": 37,\n \"ref\": \"main\",\n \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"status\": \"success\",\n \"updated_at\": \"2016-08-11T07:43:52.143Z\",\n \"web_url\": \"http://gitlab.dev/root/project/pipelines/13\"\n }\n },\n \"environment\": {\n \"external_url\": \"https://about.gitlab.com\",\n \"id\": 9,\n \"name\": \"production\"\n },\n \"id\": 42,\n \"iid\": 2,\n \"ref\": \"main\",\n \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"user\": {\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"id\": 1,\n \"name\": \"Administrator\",\n \"state\": \"active\",\n \"username\": \"root\",\n \"web_url\": \"http://localhost:3000/root\"\n }\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/deployments/:deployment_id\n```\n\nExample:\n```shell\ncurl --request \"GET\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments/1\"\n```\n\nExample:\n```json\n{\n \"id\": 42,\n \"iid\": 2,\n \"ref\": \"main\",\n \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"created_at\": \"2016-08-11T11:32:35.444Z\",\n \"updated_at\": \"2016-08-11T11:34:01.123Z\",\n \"status\": \"success\",\n \"user\": {\n \"name\": \"Administrator\",\n \"username\": \"root\",\n \"id\": 1,\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"environment\": {\n \"id\": 9,\n \"name\": \"production\",\n \"external_url\": \"https://about.gitlab.com\"\n },\n \"deployable\": {\n \"id\": 664,\n \"status\": \"success\",\n \"stage\": \"deploy\",\n \"name\": \"deploy\",\n \"ref\": \"main\",\n \"tag\": false,\n \"coverage\": null,\n \"created_at\": \"2016-08-11T11:32:24.456Z\",\n \"started_at\": null,\n \"finished_at\": \"2016-08-11T11:32:35.145Z\",\n \"project\": {\n \"ci_job_token_scope_enabled\": false\n },\n \"user\": {\n \"id\": 1,\n \"name\": \"Administrator\",\n \"username\": \"root\",\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"web_url\": \"http://gitlab.dev/root\",\n \"created_at\": \"2015-12-21T13:14:24.077Z\",\n \"bio\": null,\n \"location\": null,\n \"linkedin\": \"\",\n \"twitter\": \"\",\n \"website_url\": \"\",\n \"organization\": \"\"\n },\n \"commit\": {\n \"id\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"short_id\": \"a91957a8\",\n \"title\": \"Merge branch 'rename-readme' into 'main'\\r\",\n \"author_name\": \"Administrator\",\n \"author_email\": \"admin@example.com\",\n \"created_at\": \"2016-08-11T13:28:26.000+02:00\",\n \"message\": \"Merge branch 'rename-readme' into 'main'\\r\\n\\r\\nRename README\\r\\n\\r\\n\\r\\n\\r\\nSee merge request !2\"\n },\n \"pipeline\": {\n \"created_at\": \"2016-08-11T07:43:52.143Z\",\n \"id\": 42,\n \"ref\": \"main\",\n \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"status\": \"success\",\n \"updated_at\": \"2016-08-11T07:43:52.143Z\",\n \"web_url\": \"http://gitlab.dev/root/project/pipelines/5\"\n },\n \"runner\": null\n }\n}\n```\n\nExample:\n```json\n{\n \"approval_summary\": {\n \"rules\": [\n {\n \"user_id\": null,\n \"group_id\": 134,\n \"access_level\": null,\n \"access_level_description\": \"qa-group\",\n \"required_approvals\": 1,\n \"deployment_approvals\": []\n },\n {\n \"user_id\": null,\n \"group_id\": 135,\n \"access_level\": null,\n \"access_level_description\": \"security-group\",\n \"required_approvals\": 2,\n \"deployment_approvals\": [\n {\n \"user\": {\n \"id\": 100,\n \"username\": \"security-user-1\",\n \"name\": \"security user-1\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/e130fcd3a1681f41a3de69d10841afa9?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/security-user-1\"\n },\n \"status\": \"approved\",\n \"created_at\": \"2022-04-11T03:37:03.058Z\",\n \"comment\": null\n }\n ]\n }\n ]\n }\n ...\n}\n```\n\nExample:\n```plaintext\nPOST /projects/:id/deployments\n```\n\nExample:\n```shell\ncurl --request \"POST\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --data \"environment=production&sha=a91957a858320c0e17f3a0eca7cfacbff50ea29a&ref=main&tag=false&status=success\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments\"\n```\n\nExample:\n```json\n{\n \"id\": 42,\n \"iid\": 2,\n \"ref\": \"main\",\n \"sha\": \"a91957a858320c0e17f3a0eca7cfacbff50ea29a\",\n \"created_at\": \"2016-08-11T11:32:35.444Z\",\n \"status\": \"success\",\n \"user\": {\n \"name\": \"Administrator\",\n \"username\": \"root\",\n \"id\": 1,\n \"state\": \"active\",\n \"avatar_url\": \"http://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/root\"\n },\n \"environment\": {\n \"id\": 9,\n \"name\": \"production\",\n \"external_url\": \"https://about.gitlab.com\"\n },\n \"deployable\": null\n}\n```\n\nExample:\n```json\n{\n \"status\": \"created\",\n \"pending_approval_count\": 0,\n \"approvals\": [],\n ...\n}\n```\n\nExample:\n```plaintext\nPUT /projects/:id/deployments/:deployment_id\n```\n\nExample:\n```shell\ncurl --request \"PUT\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --data \"status=success\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments/42\"\n```\n\nExample:\n```json\n{\n \"status\": \"created\",\n \"pending_approval_count\": 0,\n \"approvals\": [\n {\n \"user\": {\n \"id\": 49,\n \"username\": \"project_6_bot\",\n \"name\": \"****\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/e83ac685f68ea07553ad3054c738c709?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/project_6_bot\"\n },\n \"status\": \"approved\",\n \"created_at\": \"2022-02-24T20:22:30.097Z\",\n \"comment\": \"Looks good to me\"\n }\n ],\n ...\n}\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/deployments/:deployment_id\n```\n\nExample:\n```shell\ncurl --request \"DELETE\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments/1\"\n```\n\nExample:\n```json\n{ \"message\": \"204 Deployment destroyed\" }\n```\n\nExample:\n```json\n{ \"message\": \"403 Forbidden\" }\n```\n\nExample:\n```json\n{ \"message\": \"400 Cannot destroy running deployment\" }\n```\n\nExample:\n```json\n{ \"message\": \"400 Deployment currently deployed to environment\" }\n```\n\nExample:\n```plaintext\nGET /projects/:id/deployments/:deployment_id/merge_requests\n```\n\nExample:\n```shell\ncurl --request \"GET\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments/42/merge_requests\"\n```\n\nExample:\n```plaintext\nPOST /projects/:id/deployments/:deployment_id/approval\n```\n\nExample:\n```shell\ncurl --request \"POST\" \\\n --data \"status=approved&comment=Looks good to me&represented_as=security\" \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/1/deployments/1/approval\"\n```\n\nExample:\n```json\n{\n \"user\": {\n \"id\": 100,\n \"username\": \"security-user-1\",\n \"name\": \"security user-1\",\n \"state\": \"active\",\n \"avatar_url\": \"https://www.gravatar.com/avatar/e130fcd3a1681f41a3de69d10841afa9?s=80&d=identicon\",\n \"web_url\": \"http://localhost:3000/security-user-1\"\n },\n \"status\": \"approved\",\n \"created_at\": \"2022-02-24T20:22:30.097Z\",\n \"comment\":\"Looks good to me\"\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.022Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":25,"totalLines":453,"estimatedTokens":6955}}365{"id":"doc-deploy_a_node_js_mongodb_app_to_azure_azure_app_-b3145b22","source":"documentation","title":"Deploy a Node.js + MongoDB app to Azure - Azure App Service | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/app-service/tutorial-nodejs-mongodb-app","text":"Example:\n```bash\nmkdir msdocs-nodejs-mongodb-azure-sample-app\ncd msdocs-nodejs-mongodb-azure-sample-app\nazd init --template msdocs-nodejs-mongodb-azure-sample-app .\nazd up\n```\n\nExample:\n```javascript\nrouter.get('/', function(req, res, next) {\n Task.find()\n .then((tasks) => { \n const currentTasks = tasks.filter(task => !task.completed);\n const completedTasks = tasks.filter(task => task.completed === true);\n\n console.log(`Total tasks: ${tasks.length} Current tasks: ${currentTasks.length} Completed tasks: ${completedTasks.length}`)\n res.render('index', { currentTasks: currentTasks, completedTasks: completedTasks });\n })\n .catch((err) => {\n console.log(err);\n res.send('Sorry! Something went wrong.');\n });\n});\n```\n\nExample:\n```bash\nazd init --template nodejs-app-service-cosmos-redis-infra .\n```\n\nExample:\n```bash\nazd auth login\n```\n\nExample:\n```bash\nazd up\n```\n\nExample:\n```bash\nApp Service app has the following app settings:\n - AZURE_COSMOS_CONNECTIONSTRING\n - AZURE_REDIS_CONNECTIONSTRING\n - AZURE_KEYVAULT_RESOURCEENDPOINT\n - AZURE_KEYVAULT_SCOPE\n```\n\nExample:\n```bash\nazd deploy\n```\n\nExample:\n```bash\nDeploying services (azd deploy)\n\n (✓) Done: Deploying service web\n - Endpoint: <URL>\n```\n\nExample:\n```bash\nStream App Service logs at: <URL>\n```\n\nExample:\n```bash\nazd down\n```\n\nExample:\n```bash\ngit add .\ngit commit -m \"<some-message>\"\ngit push origin main\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.531Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":81,"estimatedTokens":368}}366{"id":"doc-tutorial_for_using_azure_app_configuration_key_v-fb414966","source":"documentation","title":"Tutorial for using Azure App Configuration Key Vault references in a Java Spring Boot app | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-app-configuration/use-key-vault-references-spring-boot","text":"Example:\n```azurecli\naz role assignment create --role \"Key Vault Secrets User\" --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.KeyVault/vaults/<KeyVaultName> --assignee <AzureAdUserOrManagedIdentity>\n```\n\nExample:\n```azurecli\naz role assignment create --role \"App Configuration Data Reader\" --scope /subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroupName>/providers/Microsoft.AppConfiguration/configurationStores/<AppConfigurationStoreName> --assignee <AzureAdUserOrManagedIdentity>\n```\n\nExample:\n```yaml\nspring:\n config:\n import: azureAppConfiguration\n cloud:\n azure:\n appconfiguration:\n stores:\n - endpoint: ${APP_CONFIGURATION_ENDPOINT}\n```\n\nExample:\n```properties\nspring.config.import=azureAppConfiguration\nspring.cloud.azure.appconfiguration.stores[0].endpoint=${APP_CONFIGURATION_ENDPOINT}\n```\n\nExample:\n```java\nprivate String keyVaultMessage;\n\npublic String getKeyVaultMessage() {\n return keyVaultMessage;\n}\n\npublic void setKeyVaultMessage(String keyVaultMessage) {\n this.keyVaultMessage = keyVaultMessage;\n}\n```\n\nExample:\n```java\n@GetMapping\npublic String getMessage() {\n return \"Message: \" + properties.getMessage() + \"\\nKey Vault message: \" + properties.getKeyVaultMessage();\n}\n```\n\nExample:\n```shell\nmvn clean package\nmvn spring-boot:run\n```\n\nExample:\n```shell\ncurl -X GET http://localhost:8080/\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.558Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":61,"estimatedTokens":364}}367{"id":"doc-import_an_openapi_specification_to_azure_api_man-1d35b6ec","source":"documentation","title":"Import an OpenAPI specification to Azure API Management | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/api-management/import-api-from-oas","text":"Example:\n```azurecli\n# API Management service-specific details\nAPIMServiceName=\"apim-hello-world\"\nResourceGroupName=\"myResourceGroup\"\n\n# API-specific details\nAPIId=\"swagger-petstore\"\nAPIPath=\"store\"\nSpecificationFormat=\"OpenAPI\"\nSpecificationURL=\"https://petstore3.swagger.io/api/v3/openapi.json\"\n\n# Import API\naz apim api import --path $APIPath --resource-group $ResourceGroupName \\\n --service-name $APIMServiceName --api-id $APIId \\\n --specification-format $SpecificationFormat --specification-url $SpecificationURL\n```\n\nExample:\n```powershell\n# API Management service-specific details\n$apimServiceName = \"apim-hello-world\"\n$resourceGroupName = \"myResourceGroup\"\n\n# API-specific details\n$apiId = \"swagger-petstore\"\n$apiPath = \"store\"\n$specificationFormat = \"OpenAPI\"\n$specificationUrl = \"https://petstore3.swagger.io/api/v3/openapi.json\"\n\n# Get context of the API Management instance. \n$context = New-AzApiManagementContext -ResourceGroupName $resourceGroupName -ServiceName $apimServiceName\n\n# Import API\nImport-AzApiManagementApi -Context $context -ApiId $apiId -SpecificationFormat $specificationFormat -SpecificationUrl $specificationUrl -Path $apiPath\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.598Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":38,"estimatedTokens":296}}368{"id":"doc-arm_template_test_toolkit_azure_resource_manager-d4f18fe0","source":"documentation","title":"ARM template test toolkit - Azure Resource Manager | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-resource-manager/templates/test-toolkit","text":"Example:\n```powershell\nGet-ChildItem *.ps1, *.psd1, *.ps1xml, *.psm1 -Recurse | Unblock-File\n```\n\nExample:\n```powershell\nImport-Module .\\arm-ttk.psd1\n```\n\nExample:\n```powershell\nTest-AzTemplate -TemplatePath \\path\\to\\template\n```\n\nExample:\n```bash\npwsh\n```\n\nExample:\n```powershell\nImport-Module ./arm-ttk.psd1\n```\n\nExample:\n```powershell\nTest-AzTemplate -TemplatePath /path/to/template\n```\n\nExample:\n```bash\nbrew install coreutils\n```\n\nExample:\n```powershell\ndeploymentTemplate\n[+] adminUsername Should Not Be A Literal (6 ms)\n[+] apiVersions Should Be Recent In Reference Functions (9 ms)\n[-] apiVersions Should Be Recent (6 ms)\n Api versions must be the latest or under 2 years old (730 days) - API version 2019-06-01 of\n Microsoft.Storage/storageAccounts is 760 days old\n Valid Api Versions:\n 2021-04-01\n 2021-02-01\n 2021-01-01\n 2020-08-01-preview\n\n[+] artifacts parameter (4 ms)\n[+] CommandToExecute Must Use ProtectedSettings For Secrets (9 ms)\n[+] DependsOn Best Practices (5 ms)\n[+] Deployment Resources Must Not Be Debug (6 ms)\n[+] DeploymentTemplate Must Not Contain Hardcoded Uri (4 ms)\n[?] DeploymentTemplate Schema Is Correct (6 ms)\n Template is using schema version '2015-01-01' which has been deprecated and is no longer\n maintained.\n```\n\nExample:\n```powershell\nTest-AzTemplate -TemplatePath $TemplateFolder\n```\n\nExample:\n```powershell\nTest-AzTemplate -TemplatePath $TemplateFolder -File cdn.json\n```\n\nExample:\n```powershell\nTest-AzTemplate -TemplatePath $TemplateFolder -Test \"Resources Should Have Location\"\n```\n\nExample:\n```powershell\nparam(\n [Parameter(Mandatory=$true,Position=0)]\n [PSObject]\n $TemplateObject\n)\n\n# Implement test logic that evaluates parts of the template.\n# Output error with: Write-Error -Message\n```\n\nExample:\n```powershell\nparam(\n [Parameter(Mandatory)]\n [string]\n $TemplateText\n)\n\n# Implement test logic that performs string operations.\n# Output error with: Write-Error -Message\n```\n\nExample:\n```powershell\nTest-AzMarketplacePackage -TemplatePath \"Path to the unzipped package folder\"\n```\n\nExample:\n```powershell\nValidating nestedtemplates\\AzDashboard.json\n [+] adminUsername Should Not Be A Literal (210 ms)\n [+] artifacts parameter (3 ms)\n [+] CommandToExecute Must Use ProtectedSettings For Secrets (201 ms)\n [+] Deployment Resources Must Not Be Debug (160 ms)\n [+] DeploymentTemplate Must Not Contain Hardcoded Url (13 ms)\n [+] Location Should Not Be Hardcoded (31 ms)\n [+] Min and Max Value Are Numbers (4 ms)\n [+] Outputs Must Not Contain Secrets (9 ms)\n [+] Password params must be secure (3 ms)\n [+] Resources Should Have Location (2 ms)\n [+] Resources Should Not Be Ambiguous (2 ms)\n [+] Secure Params In Nested Deployments (205 ms)\n [+] Secure String Parameters Cannot Have Default (3 ms)\n [+] URIs Should Be Properly Constructed (190 ms)\n [+] Variables Must Be Referenced (9 ms)\n [+] Virtual Machines Should Not Be Preview (173 ms)\n [+] VM Size Should Be A Parameter (165 ms)\nPass : 99\nFail : 3\nTotal: 102\nValidating StartStopV2mkpl_1.0.09302021\\anothertemplate.json\n [?] Parameters Must Be Referenced (86 ms)\n Unreferenced parameter: resourceGroupName\n Unreferenced parameter: location\n Unreferenced parameter: azureFunctionAppName\n Unreferenced parameter: applicationInsightsName\n Unreferenced parameter: applicationInsightsRegion\n```\n\nExample:\n```json\n{\n \"environment\": {},\n \"enabled\": true,\n \"continueOnError\": false,\n \"alwaysRun\": false,\n \"displayName\": \"Download TTK\",\n \"timeoutInMinutes\": 0,\n \"condition\": \"succeeded()\",\n \"task\": {\n \"id\": \"e213ff0f-5d5c-4791-802d-52ea3e7be1f1\",\n \"versionSpec\": \"2.*\",\n \"definitionType\": \"task\"\n },\n \"inputs\": {\n \"targetType\": \"inline\",\n \"filePath\": \"\",\n \"arguments\": \"\",\n \"script\": \"New-Item '$(ttk.folder)' -ItemType Directory\\nInvoke-WebRequest -uri '$(ttk.uri)' -OutFile \\\"$(ttk.folder)/$(ttk.asset.filename)\\\" -Verbose\\nGet-ChildItem '$(ttk.folder)' -Recurse\\n\\nWrite-Host \\\"Expanding files...\\\"\\nExpand-Archive -Path '$(ttk.folder)/*.zip' -DestinationPath '$(ttk.folder)' -Verbose\\n\\nWrite-Host \\\"Expanded files found:\\\"\\nGet-ChildItem '$(ttk.folder)' -Recurse\",\n \"errorActionPreference\": \"stop\",\n \"failOnStderr\": \"false\",\n \"ignoreLASTEXITCODE\": \"false\",\n \"pwsh\": \"true\",\n \"workingDirectory\": \"\"\n }\n}\n```\n\nExample:\n```yaml\n- pwsh: |\n New-Item '$(ttk.folder)' -ItemType Directory\n Invoke-WebRequest -uri '$(ttk.uri)' -OutFile \"$(ttk.folder)/$(ttk.asset.filename)\" -Verbose\n Get-ChildItem '$(ttk.folder)' -Recurse\n \n Write-Host \"Expanding files...\"\n Expand-Archive -Path '$(ttk.folder)/*.zip' -DestinationPath '$(ttk.folder)' -Verbose\n \n Write-Host \"Expanded files found:\"\n Get-ChildItem '$(ttk.folder)' -Recurse\n displayName: 'Download TTK'\n```\n\nExample:\n```json\n{\n \"environment\": {},\n \"enabled\": true,\n \"continueOnError\": true,\n \"alwaysRun\": false,\n \"displayName\": \"Run Best Practices Tests\",\n \"timeoutInMinutes\": 0,\n \"condition\": \"succeeded()\",\n \"task\": {\n \"id\": \"e213ff0f-5d5c-4791-802d-52ea3e7be1f1\",\n \"versionSpec\": \"2.*\",\n \"definitionType\": \"task\"\n },\n \"inputs\": {\n \"targetType\": \"inline\",\n \"filePath\": \"\",\n \"arguments\": \"\",\n \"script\": \"Import-Module $(ttk.folder)/arm-ttk/arm-ttk.psd1 -Verbose\\n$testOutput = @(Test-AzTemplate -TemplatePath \\\"$(sample.folder)\\\")\\n$testOutput\\n\\nif ($testOutput | ? {$_.Errors }) {\\n exit 1 \\n} else {\\n Write-Host \\\"##vso[task.setvariable variable=result.best.practice]$true\\\"\\n exit 0\\n} \\n\",\n \"errorActionPreference\": \"continue\",\n \"failOnStderr\": \"true\",\n \"ignoreLASTEXITCODE\": \"false\",\n \"pwsh\": \"true\",\n \"workingDirectory\": \"\"\n }\n}\n```\n\nExample:\n```yaml\n- pwsh: |\n Import-Module $(ttk.folder)/arm-ttk/arm-ttk.psd1 -Verbose\n $testOutput = @(Test-AzTemplate -TemplatePath \"$(sample.folder)\")\n $testOutput\n \n if ($testOutput | ? {$_.Errors }) {\n exit 1 \n } else {\n Write-Host \"##vso[task.setvariable variable=result.best.practice]$true\"\n exit 0\n } \n errorActionPreference: continue\n failOnStderr: true\n displayName: 'Run Best Practices Tests'\n continueOnError: true\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.621Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":19,"totalLines":228,"estimatedTokens":1550}}369{"id":"doc-guides_mdx_next_js-bc030ddb","source":"documentation","title":"Guides: MDX | Next.js","url":"https://nextjs.org/docs/app/guides/mdx","text":"Example:\n```text\nI **love** using [Next.js](https://nextjs.org/)\n```\n\nExample:\n```text\n<p>I <strong>love</strong> using <a href=\"https://nextjs.org/\">Next.js</a></p>\n```\n\nExample:\n```text\npnpm add @next/mdx @mdx-js/loader @mdx-js/react @types/mdx\n```\n\nExample:\n```text\nimport createMDX from '@next/mdx'\n \n/** @type {import('next').NextConfig} */\nconst nextConfig = {\n // Configure `pageExtensions` to include markdown and MDX files\n pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],\n // Optionally, add any other Next.js config below\n}\n \nconst withMDX = createMDX({\n // Add markdown plugins here, as desired\n})\n \n// Merge MDX config with Next.js config\nexport default withMDX(nextConfig)\n```\n\nExample:\n```text\nconst withMDX = createMDX({\n extension: /\\.(md|mdx)$/,\n})\n```\n\nExample:\n```text\nimport type { MDXComponents } from 'mdx/types'\n \nconst components: MDXComponents = {}\n \nexport function useMDXComponents(): MDXComponents {\n return components\n}\n```\n\nExample:\n```text\nmy-project\n ├── app\n │ └── mdx-page\n │ └── page.(mdx/md)\n |── mdx-components.(tsx/js)\n └── package.json\n```\n\nExample:\n```text\nimport { MyComponent } from 'my-component'\n \n# Welcome to my MDX page!\n \nThis is some **bold** and _italics_ text.\n \nThis is a list in markdown:\n \n- One\n- Two\n- Three\n \nCheckout my React component:\n \n<MyComponent />\n```\n\nExample:\n```text\n.\n ├── app/\n │ └── mdx-page/\n │ └── page.(tsx/js)\n ├── markdown/\n │ └── welcome.(mdx/md)\n ├── mdx-components.(tsx/js)\n └── package.json\n```\n\nExample:\n```text\nimport Welcome from '@/markdown/welcome.mdx'\n \nexport default function Page() {\n return <Welcome />\n}\n```\n\nExample:\n```text\nexport default async function Page({\n params,\n}: {\n params: Promise<{ slug: string }>\n}) {\n const { slug } = await params\n const { default: Post } = await import(`@/content/${slug}.mdx`)\n \n return <Post />\n}\n \nexport function generateStaticParams() {\n return [{ slug: 'welcome' }, { slug: 'about' }]\n}\n \nexport const dynamicParams = false\n```\n\nExample:\n```text\n## This is a heading\n \nThis is a list in markdown:\n \n- One\n- Two\n- Three\n```\n\nExample:\n```text\n<h2>This is a heading</h2>\n \n<p>This is a list in markdown:</p>\n \n<ul>\n <li>One</li>\n <li>Two</li>\n <li>Three</li>\n</ul>\n```\n\nExample:\n```text\nimport type { MDXComponents } from 'mdx/types'\nimport Image, { ImageProps } from 'next/image'\n \n// This file allows you to provide custom React components\n// to be used in MDX files. You can import and use any\n// React component you want, including inline styles,\n// components from other libraries, and more.\n \nconst components = {\n // Allows customizing built-in components, e.g. to add styling.\n h1: ({ children }) => (\n <h1 style={{ color: 'red', fontSize: '48px' }}>{children}</h1>\n ),\n img: (props) => (\n <Image\n sizes=\"100vw\"\n style={{ width: '100%', height: 'auto' }}\n {...(props as ImageProps)}\n />\n ),\n} satisfies MDXComponents\n \nexport function useMDXComponents(): MDXComponents {\n return components\n}\n```\n\nExample:\n```text\nimport Welcome from '@/markdown/welcome.mdx'\n \nfunction CustomH1({ children }) {\n return <h1 style={{ color: 'blue', fontSize: '100px' }}>{children}</h1>\n}\n \nconst overrideComponents = {\n h1: CustomH1,\n}\n \nexport default function Page() {\n return <Welcome components={overrideComponents} />\n}\n```\n\nExample:\n```text\nexport default function MdxLayout({ children }: { children: React.ReactNode }) {\n // Create any shared layout or styles here\n return <div style={{ color: 'blue' }}>{children}</div>\n}\n```\n\nExample:\n```text\nexport default function MdxLayout({ children }: { children: React.ReactNode }) {\n // Create any shared layout or styles here\n return (\n <div className=\"prose prose-headings:mt-8 prose-headings:font-semibold prose-headings:text-black prose-h1:text-5xl prose-h2:text-4xl prose-h3:text-3xl prose-h4:text-2xl prose-h5:text-xl prose-h6:text-lg dark:prose-headings:text-white\">\n {children}\n </div>\n )\n}\n```\n\nExample:\n```text\nimport BlogPost, { metadata } from '@/content/blog-post.mdx'\n \nexport default function Page() {\n console.log('metadata: ', metadata)\n //=> { author: 'John Doe' }\n return <BlogPost />\n}\n```\n\nExample:\n```text\nimport remarkGfm from 'remark-gfm'\nimport createMDX from '@next/mdx'\n \n/** @type {import('next').NextConfig} */\nconst nextConfig = {\n // Allow .mdx extensions for files\n pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],\n // Optionally, add any other Next.js config below\n}\n \nconst withMDX = createMDX({\n // Add markdown plugins here, as desired\n options: {\n remarkPlugins: [remarkGfm],\n rehypePlugins: [],\n },\n})\n \n// Combine MDX and Next.js config\nexport default withMDX(nextConfig)\n```\n\nExample:\n```text\nimport createMDX from '@next/mdx'\n \n/** @type {import('next').NextConfig} */\nconst nextConfig = {\n pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],\n}\n \nconst withMDX = createMDX({\n options: {\n remarkPlugins: [\n // Without options\n 'remark-gfm',\n // With options\n ['remark-toc', { heading: 'The Table' }],\n ],\n rehypePlugins: [\n // Without options\n 'rehype-slug',\n // With options\n ['rehype-katex', { strict: true, throwOnError: true }],\n ],\n },\n})\n \nexport default withMDX(nextConfig)\n```\n\nExample:\n```text\nimport { unified } from 'unified'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport rehypeSanitize from 'rehype-sanitize'\nimport rehypeStringify from 'rehype-stringify'\n \nmain()\n \nasync function main() {\n const file = await unified()\n .use(remarkParse) // Convert into markdown AST\n .use(remarkRehype) // Transform to HTML AST\n .use(rehypeSanitize) // Sanitize HTML input\n .use(rehypeStringify) // Convert AST into serialized HTML\n .process('Hello, Next.js!')\n \n console.log(String(file)) // <p>Hello, Next.js!</p>\n}\n```\n\nExample:\n```text\nmodule.exports = withMDX({\n experimental: {\n mdxRs: true,\n },\n})\n```\n\nExample:\n```text\nmodule.exports = withMDX({\n experimental: {\n mdxRs: {\n jsxRuntime?: string // Custom jsx runtime\n jsxImportSource?: string // Custom jsx import source,\n providerImportSource?: string // Module providing a `useMDXComponents` context\n mdxType?: 'gfm' | 'commonmark' // Configure what kind of mdx syntax will be used to parse & transform\n },\n },\n})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.362Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":23,"totalLines":322,"estimatedTokens":1599}}370{"id":"doc-guides_preventing_flash_next_js-40afec2d","source":"documentation","title":"Guides: Preventing Flash | Next.js","url":"https://nextjs.org/docs/app/guides/preventing-flash-before-hydration","text":"Example:\n```text\n'use client'\n \nexport function EventDate({ date }: { date: string }) {\n return <p>{new Date(date).toLocaleDateString()}</p>\n}\n```\n\nExample:\n```text\nimport { getEvent } from '@/app/lib/events'\n \nexport default async function Page() {\n const event = await getEvent('nextjs-conf')\n \n return (\n <section>\n <h1>{event.name}</h1>\n <p id=\"event-date\" suppressHydrationWarning>\n {new Date(event.date).toLocaleDateString()}\n </p>\n <script\n dangerouslySetInnerHTML={{\n __html: `document.getElementById(\"event-date\").textContent=new Date(\"${event.date}\").toLocaleDateString()`,\n }}\n />\n </section>\n )\n}\n```\n\nExample:\n```text\nexport function InlineScript({ html }: { html: string }) {\n return (\n <script\n type={typeof window === 'undefined' ? 'text/javascript' : 'text/plain'}\n suppressHydrationWarning\n dangerouslySetInnerHTML={{ __html: html }}\n />\n )\n}\n```\n\nExample:\n```text\n'use client'\n \nimport { useId } from 'react'\nimport { InlineScript } from './inline-script'\n \nexport function LocalDate({\n date,\n options,\n}: {\n date: string\n options?: Intl.DateTimeFormatOptions\n}) {\n const id = useId()\n \n return (\n <>\n <time id={id} dateTime={date} suppressHydrationWarning>\n {new Date(date).toLocaleDateString(undefined, options)}\n </time>\n <InlineScript\n html={`{var n=document.getElementById(\"${id}\");if(n)n.textContent=new Date(\"${date}\").toLocaleDateString(undefined,${JSON.stringify(options)})}`}\n />\n </>\n )\n}\n```\n\nExample:\n```text\nimport { LocalDate } from '@/app/components/local-date'\nimport { getEvent } from '@/app/lib/events'\n \nexport default async function Page() {\n const event = await getEvent('nextjs-conf')\n \n return (\n <section>\n <h1>{event.name}</h1>\n <LocalDate\n date={event.date}\n options={{ year: 'numeric', month: 'long', day: 'numeric' }}\n />\n </section>\n )\n}\n```\n\nExample:\n```text\nexport default function RootLayout({ children }: LayoutProps<'/'>) {\n return (\n <html lang=\"en\" data-theme=\"light\" suppressHydrationWarning>\n <head>\n <script\n dangerouslySetInnerHTML={{\n __html: `(function(){try{var t=localStorage.getItem(\"theme\");if(t)document.documentElement.setAttribute(\"data-theme\",t)}catch(e){}})()`,\n }}\n />\n </head>\n <body>{children}</body>\n </html>\n )\n}\n```\n\nExample:\n```text\n[data-theme='light'] {\n --background: #ffffff;\n --foreground: #000000;\n}\n \n[data-theme='dark'] {\n --background: #0a0a0a;\n --foreground: #ededed;\n}\n```\n\nExample:\n```text\nexport default function RootLayout({ children }: LayoutProps<'/'>) {\n return (\n <html lang=\"en\" data-theme=\"light\" suppressHydrationWarning>\n <head>\n <script\n dangerouslySetInnerHTML={{\n __html: `(function(){try{var m=document.cookie.match(/(?:^|; )theme=([^;]*)/);if(m)document.documentElement.setAttribute(\"data-theme\",decodeURIComponent(m[1]))}catch(e){}})()`,\n }}\n />\n </head>\n <body>{children}</body>\n </html>\n )\n}\n```\n\nExample:\n```text\nconst theme = 'dark'\ndocument.documentElement.setAttribute('data-theme', theme)\ndocument.cookie = `theme=${encodeURIComponent(theme)}; path=/; max-age=31536000; SameSite=Lax`\n```\n\nExample:\n```text\n'use client'\n \nimport { useState, useCallback } from 'react'\nimport { InlineScript } from './inline-script'\n \nconst STORAGE_KEY = 'open-section'\n \nconst sections = [\n {\n id: 'setup',\n title: 'Setup',\n content: 'Install dependencies and create your project.',\n },\n {\n id: 'usage',\n title: 'Usage',\n content: 'Import the component and pass your data.',\n },\n {\n id: 'deploy',\n title: 'Deploy',\n content: 'Push to your Git provider and deploy.',\n },\n]\n \nconst DEFAULT_ID = sections[0].id\nconst SECTION_IDS = sections.map((s) => s.id)\n \nexport function Accordion() {\n const [openId, setOpenId] = useState(() => {\n if (typeof window === 'undefined') return DEFAULT_ID\n return localStorage.getItem(STORAGE_KEY) ?? DEFAULT_ID\n })\n \n const handleToggle = useCallback(\n (id: string) => (e: React.ToggleEvent<HTMLDetailsElement>) => {\n if (e.newState === 'open') {\n setOpenId(id)\n localStorage.setItem(STORAGE_KEY, id)\n }\n },\n []\n )\n \n return (\n <div>\n {sections.map((section) => (\n <details\n key={section.id}\n name=\"accordion\"\n id={`section-${section.id}`}\n open={openId === section.id}\n onToggle={handleToggle(section.id)}\n >\n <summary>{section.title}</summary>\n <p>{section.content}</p>\n </details>\n ))}\n <InlineScript\n html={`{var id=localStorage.getItem(\"${STORAGE_KEY}\")??\"${DEFAULT_ID}\";${JSON.stringify(SECTION_IDS)}.forEach(function(s){var el=document.getElementById(\"section-\"+s);if(el){if(s===id)el.setAttribute(\"open\",\"\");else el.removeAttribute(\"open\")}})}`}\n />\n </div>\n )\n}\n```\n\nExample:\n```text\n'use client'\n \nimport { useLayoutEffect } from 'react'\n \nexport function ThemeToggle() {\n // Re-apply after React clears it on the dev remount. This is a no-op in production.\n useLayoutEffect(() => {\n const theme = localStorage.getItem('theme')\n if (theme) document.documentElement.setAttribute('data-theme', theme)\n }, [])\n \n function toggle() {\n const next =\n (localStorage.getItem('theme') ?? 'light') === 'dark' ? 'light' : 'dark'\n localStorage.setItem('theme', next)\n document.documentElement.setAttribute('data-theme', next)\n }\n \n return <button onClick={toggle}>Toggle theme</button>\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.373Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":243,"estimatedTokens":1415}}371{"id":"doc-how_nginx_processes_a_tcp_udp_session-ce0df438","source":"documentation","title":"How nginx processes a TCP/UDP session","url":"https://nginx.org/en/docs/stream/stream_processing.html","text":"Join us for the first quarterly NGINX Community Call on July 22nd to connect and discuss NGINX development.\n\nenglishрусскийnewsaboutdownloadsecuritydocumentationfaqbookscommunityenterprisecommunity forum (new)x.comblognjsingress controllergateway fabricHow nginx processes a TCP/UDP session A TCP/UDP session from a client is processed in successive steps called The first phase after accepting a client connection. The ngx_stream_realip_module module is invoked at this phase. Pre-access Preliminary check for access. The ngx_stream_limit_conn_module and ngx_stream_set_module modules are invoked at this phase. Access Client access limitation before actual data processing. At this phase, the ngx_stream_access_module module is invoked, for njs, the js_access directive is invoked. SSL TLS/SSL termination. The ngx_stream_ssl_module module is invoked at this phase. Preread Reading initial bytes of data into the preread buffer to allow modules such as ngx_stream_ssl_preread_module analyze the data before its processing. For njs, the js_preread directive is invoked at this phase. Content Mandatory phase where data is actually processed, usually proxied to upstream servers, or a specified value is returned to a client. For njs, the js_filter directive is invoked at this phase. Log The final phase where the result of a client session processing is recorded. The ngx_stream_log_module module is invoked at this phase.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.686Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":360}}372{"id":"doc-git_git_merge_documentation-e52fbc98","source":"documentation","title":"Git - git-merge Documentation","url":"http://git-scm.com/docs/git-merge/2.2.3","text":"Example:\n```text\ngit merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]\n\t[-s <strategy>] [-X <strategy-option>] [-S[<key-id>]]\n\t[--[no-]rerere-autoupdate] [-m <msg>] [<commit>…]\ngit merge <msg> HEAD <commit>…\ngit merge --abort\n```\n\nExample:\n```text\nA---B---C topic\n\t /\n D---E---F---G master\n```\n\nExample:\n```text\nA---B---C topic\n\t / \\\n D---E---F---G---H master\n```\n\nExample:\n```text\ngit fetch origin\ngit merge v1.2.3^0\ngit merge --ff-only v1.2.3\n```\n\nExample:\n```text\nHere are lines that are either unchanged from the common\nancestor, or cleanly resolved because only one side changed.\n<<<<<<< yours:sample.txt\nConflict resolution is hard;\nlet's go shopping.\n=======\nGit makes conflict resolution easy.\n>>>>>>> theirs:sample.txt\nAnd here is another line that is cleanly resolved or unmodified.\n```\n\nExample:\n```text\nHere are lines that are either unchanged from the common\nancestor, or cleanly resolved because only one side changed.\n<<<<<<< yours:sample.txt\nConflict resolution is hard;\nlet's go shopping.\n|||||||\nConflict resolution is hard.\n=======\nGit makes conflict resolution easy.\n>>>>>>> theirs:sample.txt\nAnd here is another line that is cleanly resolved or unmodified.\n```\n\nExample:\n```text\n$ git merge fixes enhancements\n```\n\nExample:\n```text\n$ git merge -s ours obsolete\n```\n\nExample:\n```text\n$ git merge --no-commit maint\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:39.934Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":74,"estimatedTokens":344}}373{"id":"doc-git_git_range_diff_documentation-205cab8b","source":"documentation","title":"Git - git-range-diff Documentation","url":"http://git-scm.com/docs/git-range-diff/pt_BR","text":"Example:\n```text\ngit range-diff [--color=[<when>]] [--no-color] [<diff-options>]\n\t[--no-dual-color] [--creation-factor=<factor>]\n\t[--left-only | --right-only] [--diff-merges=<format>]\n\t[--remerge-diff]\n\t( <range1> <range2> | <rev1>…<rev2> | <base> <rev1> <rev2> )\n\t[[--] <path>…]\n```\n\nExample:\n```text\n$ git range-diff @{u} @{1} @\n```\n\nExample:\n```text\n-: ------- > 1: 0ddba11 Se prepare para o inevitável!\n1: c0debee = 2: cab005e Adicione uma mensagem de ajuda no início\n2: f00dbal ! 3: decafe1 Descreva o problema\n @@ -1,3 +1,3 @@\n Autor: A U Thor <author@example.com>\n\n -TODO: Descreva um problema\n +Descreva um problema\n @@ -324,5 +324,6\n Já era esperado.\n\n -+O que é inesperado é que também irá travar.\n ++Inesperadamente, ele também trava. Este é um bug, e o júri é\n ++ainda está no ar a maneira de como melhor consertar. Consulte o tíquete #314 para obter mais detalhes.\n\n Contato\n3: bedhead <-: ------- PARA DESFAZER\n```\n\nExample:\n```text\n1 A\n\n 2 B\n\n\t\t C\n```\n\nExample:\n```text\n1 A\n\t /\n 2 --------' B\n\n\t\t C\n```\n\nExample:\n```text\n1 ----. A\n\t | /\n 2 ----+---' B\n\t |\n\t `----- C\n\t c>0\n```\n\nExample:\n```text\n1 ----. A\n\t | /\n 2 ----+---' B\n\t |\n o `----- C\n\t c>0\n o o\n\n o o\n```\n\nExample:\n```text\n1 ----. A\n\t | /\n 2 ----+---' B\n .--+-----'\n o -' `----- C\n\t c>0\n o ---------- o\n\n o ---------- o\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:39.968Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":91,"estimatedTokens":374}}374{"id":"doc-git_git_stash_documentation-4e4785a5","source":"documentation","title":"Git - git-stash Documentation","url":"http://git-scm.com/docs/git-stash/2.11.4","text":"Example:\n```text\ngit stash list [<options>]\ngit stash show [<stash>]\ngit stash drop [-q|--quiet] [<stash>]\ngit stash ( pop | apply ) [--index] [-q|--quiet] [<stash>]\ngit stash branch <branchname> [<stash>]\ngit stash [save [-p|--patch] [-k|--[no-]keep-index] [-q|--quiet]\n\t [-u|--include-untracked] [-a|--all] [<message>]]\ngit stash clear\ngit stash create [<message>]\ngit stash store [-m|--message <message>] [-q|--quiet] <commit>\n```\n\nExample:\n```text\nstash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation\nstash@{1}: On master: 9cc0589... Add git-stash\n```\n\nExample:\n```text\n.----W\n / /\n-----H----I\n```\n\nExample:\n```text\n$ git pull\n ...\nfile foobar not up to date, cannot merge.\n$ git stash\n$ git pull\n$ git stash pop\n```\n\nExample:\n```text\n# ... hack hack hack ...\n$ git checkout -b my_wip\n$ git commit -a -m \"WIP\"\n$ git checkout master\n$ edit emergency fix\n$ git commit -a -m \"Fix in a hurry\"\n$ git checkout my_wip\n$ git reset --soft HEAD^\n# ... continue hacking ...\n```\n\nExample:\n```text\n# ... hack hack hack ...\n$ git stash\n$ edit emergency fix\n$ git commit -a -m \"Fix in a hurry\"\n$ git stash pop\n# ... continue hacking ...\n```\n\nExample:\n```text\n# ... hack hack hack ...\n$ git add --patch foo # add just first part to the index\n$ git stash save --keep-index # save all other changes to the stash\n$ edit/build/test first part\n$ git commit -m 'First part' # commit fully tested change\n$ git stash pop # prepare to work on all other changes\n# ... repeat above five steps until one commit remains ...\n$ edit/build/test remaining parts\n$ git commit foo -m 'Remaining parts'\n```\n\nExample:\n```text\ngit fsck --unreachable |\ngrep commit | cut -d\\ -f3 |\nxargs git log --merges --no-walk --grep=WIP\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:40.007Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":81,"estimatedTokens":443}}375{"id":"doc-broadcasting_numpy_v2_5_manual-af711ca9","source":"documentation","title":"Broadcasting — NumPy v2.5 Manual","url":"https://numpy.org/doc/stable/user/basics.broadcasting.html","text":"User Guide API reference Building from source Development Release notes Learn NEPs Choose version GitHub Collapse Sidebar Expand Sidebar Section Navigation Getting started What is NumPy? Installation NumPy quickstart absolute basics for beginners Fundamentals and usage NumPy fundamentals Array creation Indexing on ndarrays I/O with NumPy Data types Broadcasting Copies and views Working with Arrays of Strings And Bytes Structured arrays Universal functions (ufunc) basics NumPy for MATLAB users NumPy tutorials NumPy how-tos Advanced usage and interoperability Using NumPy C-API F2PY user guide and reference manual Under-the-hood documentation for developers Interoperability with NumPy Writing Performant NumPy Code with Multi-Core CPUs Extras Glossary Release notes NumPy 2.0 migration guide NumPy license NumPy user guide NumPy fundamentals Broadcasting Broadcasting# See also numpy.broadcast The term broadcasting describes how NumPy treats arrays with different shapes during arithmetic operations. Subject to certain constraints, the smaller array is “broadcast” across the larger array so that they have compatible shapes. Broadcasting provides a means of vectorizing array operations so that looping occurs in C instead of Python. It does this without making needless copies of data and usually leads to efficient algorithm implementations. There are, however, cases where broadcasting is a bad idea because it leads to inefficient use of memory that slows computation. NumPy operations are usually done on pairs of arrays on an element-by-element basis. In the simplest case, the two arrays must have exactly the same shape, as in the following example: >>> import numpy as np >>> a = np.array([1.0, 2.0, 3.0]) >>> b = np.array([2.0, 2.0, 2.0]) >>> a * b array([2., 4., 6.]) NumPy’s broadcasting rule relaxes this constraint when the arrays’ shapes meet certain constraints. The simplest broadcasting example occurs when an array and a scalar value are combined in an operation: >>> import numpy as np >>> a = np.array([1.0, 2.0, 3.0]) >>> b = 2.0 >>> a * b array([2., 4., 6.]) The result is equivalent to the previous example where b was an array. We can think of the scalar b being stretched during the arithmetic operation into an array with the same shape as a. The new elements in b, as shown in Figure 1, are simply copies of the original scalar. The stretching analogy is only conceptual. NumPy is smart enough to use the original scalar value without actually making copies so that broadcasting operations are as memory and computationally efficient as possible. Figure 1# In the simplest example of broadcasting, the scalar b is stretched to become an array of same shape as a so the shapes are compatible for element-by-element multiplication. The code in the second example is more efficient than that in the first because broadcasting moves less memory around during the multiplication (b is a scalar rather than an array). General broadcasting rules# When operating on two arrays, NumPy compares their shapes element-wise. It starts with the trailing (i.e. rightmost) dimension and works its way left. Two dimensions are compatible when they are equal, or one of them is 1. If these conditions are not met, a could not be broadcast together exception is thrown, indicating that the arrays have incompatible shapes. Input arrays do not need to have the same number of dimensions. The resulting array will have the same number of dimensions as the input array with the greatest number of dimensions, where the size of each dimension is the largest size of the corresponding dimension among the input arrays. Note that missing dimensions are assumed to have size one. For example, if you have a 256x256x3 array of RGB values, and you want to scale each color in the image by a different value, you can multiply the image by a one-dimensional array with 3 values. Lining up the sizes of the trailing axes of these arrays according to the broadcast rules, shows that they are (3d array): 256 x 256 x 3 Scale (1d array): 3 Result (3d array): 256 x 256 x 3 When either of the dimensions compared is one, the other is used. In other words, dimensions with size 1 are stretched or “copied” to match the other. In the following example, both the A and B arrays have axes with length one that are expanded to a larger size during the broadcast (4d array): 8 x 1 x 6 x 1 B (3d array): 7 x 1 x 5 Result (4d array): 8 x 7 x 6 x 5 Broadcastable arrays# A set of arrays is called “broadcastable” to the same shape if the above rules produce a valid result. For example, if a.shape is (5,1), b.shape is (1,6), c.shape is (6,) and d.shape is () so that d is a scalar, then a, b, c, and d are all broadcastable to dimension (5,6); and a acts like a (5,6) array where a[:,0] is broadcast to the other columns, b acts like a (5,6) array where b[0,:] is broadcast to the other rows, c acts like a (1,6) array and therefore like a (5,6) array where c[:] is broadcast to every row, and finally, d acts like a (5,6) array where the single value is repeated. Here are some more (2d array): 5 x 4 B (1d array): 1 Result (2d array): 5 x 4 A (2d array): 5 x 4 B (1d array): 4 Result (2d array): 5 x 4 A (3d array): 15 x 3 x 5 B (3d array): 15 x 1 x 5 Result (3d array): 15 x 3 x 5 A (3d array): 15 x 3 x 5 B (2d array): 3 x 5 Result (3d array): 15 x 3 x 5 A (3d array): 15 x 3 x 5 B (2d array): 3 x 1 Result (3d array): 15 x 3 x 5 Here are examples of shapes that do not (1d array): 3 B (1d array): 4 # trailing dimensions do not match A (2d array): 2 x 1 B (3d array): 8 x 4 x 3 # second from last dimensions mismatched An example of broadcasting when a 1-d array is added to a 2-d array: >>> import numpy as np >>> a = np.array([[ 0.0, 0.0, 0.0], ... [10.0, 10.0, 10.0], ... [20.0, 20.0, 20.0], ... [30.0, 30.0, 30.0]]) >>> b = np.array([1.0, 2.0, 3.0]) >>> a + b array([[ 1., 2., 3.], [11., 12., 13.], [21., 22., 23.], [31., 32., 33.]]) >>> b = np.array([1.0, 2.0, 3.0, 4.0]) >>> a + b Traceback (most recent call last): could not be broadcast together with shapes (4,3) (4,) As shown in Figure 2, b is added to each row of a. In Figure 3, an exception is raised because of the incompatible shapes. Figure 2# A one dimensional array added to a two dimensional array results in broadcasting if number of 1-d array elements matches the number of 2-d array columns. Figure 3# When the trailing dimensions of the arrays are unequal, broadcasting fails because it is impossible to align the values in the rows of the 1st array with the elements of the 2nd arrays for element-by-element addition. Broadcasting provides a convenient way of taking the outer product (or any other outer operation) of two arrays. The following example shows an outer addition operation of two 1-d arrays: >>> import numpy as np >>> a = np.array([0.0, 10.0, 20.0, 30.0]) >>> b = np.array([1.0, 2.0, 3.0]) >>> a[:, np.newaxis] + b array([[ 1., 2., 3.], [11., 12., 13.], [21., 22., 23.], [31., 32., 33.]]) Figure 4# In some cases, broadcasting stretches both arrays to form an output array larger than either of the initial arrays. Here the newaxis index operator inserts a new axis into a, making it a two-dimensional 4x1 array. Combining the 4x1 array with b, which has shape (3,), yields a 4x3 array. A practical quantization# Broadcasting comes up quite often in real world problems. A typical example occurs in the vector quantization (VQ) algorithm used in information theory, classification, and other related areas. The basic operation in VQ finds the closest point in a set of points, called codes in VQ jargon, to a given point, called the observation. In the very simple, two-dimensional case shown below, the values in observation describe the weight and height of an athlete to be classified. The codes represent different classes of athletes. [1] Finding the closest point requires calculating the distance between observation and each of the codes. The shortest distance provides the best match. In this example, codes[0] is the closest class indicating that the athlete is likely a basketball player. >>> from numpy import array, argmin, sqrt, sum >>> observation = array([111.0, 188.0]) >>> codes = array([[102.0, 203.0], ... [132.0, 193.0], ... [45.0, 155.0], ... [57.0, 173.0]]) >>> diff = codes - observation # the broadcast happens here >>> dist = sqrt(sum(diff**2,axis=-1)) >>> argmin(dist) 0 In this example, the observation array is stretched to match the shape of the codes (1d array): 2 Codes (2d array): 4 x 2 Diff (2d array): 4 x 2 Figure 5# The basic operation of vector quantization calculates the distance between an object to be classified, the dark square, and multiple known codes, the gray circles. In this simple case, the codes represent individual classes. More complex cases use multiple codes per class. Typically, a large number of observations, perhaps read from a database, are compared to a set of codes. Consider this (2d array): 10 x 3 Codes (3d array): 5 x 1 x 3 Diff (3d array): 5 x 10 x 3 The three-dimensional array, diff, is a consequence of broadcasting, not a necessity for the calculation. Large data sets will generate a large intermediate array that is computationally inefficient. Instead, if each observation is calculated individually using a Python loop around the code in the two-dimensional example above, a much smaller array is used. Broadcasting is a powerful tool for writing short and usually intuitive code that does its computations very efficiently in C. However, there are cases when broadcasting uses unnecessarily large amounts of memory for a particular algorithm. In these cases, it is better to write the algorithm’s outer loop in Python. This may also produce more readable code, as algorithms that use broadcasting tend to become more difficult to interpret as the number of dimensions in the broadcast increases. Footnotes [1] In this example, weight has more impact on the distance calculation than height because of the larger values. In practice, it is important to normalize the height and weight, often by their standard deviation across the data set, so that both have equal influence on the distance calculation. previous Data types next Copies and views On this page General broadcasting rules Broadcastable arrays A practical quantization\n\nExample:\n```text\n>>> import numpy as np\n>>> a = np.array([1.0, 2.0, 3.0])\n>>> b = np.array([2.0, 2.0, 2.0])\n>>> a * b\narray([2., 4., 6.])\n```\n\nExample:\n```text\n>>> import numpy as np\n>>> a = np.array([1.0, 2.0, 3.0])\n>>> b = 2.0\n>>> a * b\narray([2., 4., 6.])\n```\n\nExample:\n```text\nImage (3d array): 256 x 256 x 3\nScale (1d array): 3\nResult (3d array): 256 x 256 x 3\n```\n\nExample:\n```text\nA (4d array): 8 x 1 x 6 x 1\nB (3d array): 7 x 1 x 5\nResult (4d array): 8 x 7 x 6 x 5\n```\n\nExample:\n```text\nA (2d array): 5 x 4\nB (1d array): 1\nResult (2d array): 5 x 4\n\nA (2d array): 5 x 4\nB (1d array): 4\nResult (2d array): 5 x 4\n\nA (3d array): 15 x 3 x 5\nB (3d array): 15 x 1 x 5\nResult (3d array): 15 x 3 x 5\n\nA (3d array): 15 x 3 x 5\nB (2d array): 3 x 5\nResult (3d array): 15 x 3 x 5\n\nA (3d array): 15 x 3 x 5\nB (2d array): 3 x 1\nResult (3d array): 15 x 3 x 5\n```\n\nExample:\n```text\nA (1d array): 3\nB (1d array): 4 # trailing dimensions do not match\n\nA (2d array): 2 x 1\nB (3d array): 8 x 4 x 3 # second from last dimensions mismatched\n```\n\nExample:\n```text\n>>> import numpy as np\n>>> a = np.array([[ 0.0, 0.0, 0.0],\n... [10.0, 10.0, 10.0],\n... [20.0, 20.0, 20.0],\n... [30.0, 30.0, 30.0]])\n>>> b = np.array([1.0, 2.0, 3.0])\n>>> a + b\narray([[ 1., 2., 3.],\n [11., 12., 13.],\n [21., 22., 23.],\n [31., 32., 33.]])\n>>> b = np.array([1.0, 2.0, 3.0, 4.0])\n>>> a + b\nTraceback (most recent call last):\nValueError: operands could not be broadcast together with shapes (4,3) (4,)\n```\n\nExample:\n```text\n>>> import numpy as np\n>>> a = np.array([0.0, 10.0, 20.0, 30.0])\n>>> b = np.array([1.0, 2.0, 3.0])\n>>> a[:, np.newaxis] + b\narray([[ 1., 2., 3.],\n [11., 12., 13.],\n [21., 22., 23.],\n [31., 32., 33.]])\n```\n\nExample:\n```text\n>>> from numpy import array, argmin, sqrt, sum\n>>> observation = array([111.0, 188.0])\n>>> codes = array([[102.0, 203.0],\n... [132.0, 193.0],\n... [45.0, 155.0],\n... [57.0, 173.0]])\n>>> diff = codes - observation # the broadcast happens here\n>>> dist = sqrt(sum(diff**2,axis=-1))\n>>> argmin(dist)\n0\n```\n\nExample:\n```text\nObservation (1d array): 2\nCodes (2d array): 4 x 2\nDiff (2d array): 4 x 2\n```\n\nExample:\n```text\nObservation (2d array): 10 x 3\nCodes (3d array): 5 x 1 x 3\nDiff (3d array): 5 x 10 x 3\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.957Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":11,"totalLines":126,"estimatedTokens":3224}}376{"id":"doc-3_kaleidoscope_code_generation_to_llvm_ir_llvm-3b2095e4","source":"documentation","title":"3. Kaleidoscope: Code generation to LLVM IR - LLVM","url":"https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl03.html","text":"Example:\n```text\n/// ExprAST - Base class for all expression nodes.\nclass ExprAST {\npublic:\n virtual ~ExprAST() = default;\n virtual Value *codegen() = 0;\n};\n\n/// NumberExprAST - Expression class for numeric literals like \"1.0\".\nclass NumberExprAST : public ExprAST {\n double Val;\n\npublic:\n NumberExprAST(double Val) : Val(Val) {}\n Value *codegen() override;\n};\n...\n```\n\nExample:\n```text\nstatic std::unique_ptr<LLVMContext> TheContext;\nstatic std::unique_ptr<IRBuilder<>> Builder;\nstatic std::unique_ptr<Module> TheModule;\nstatic std::map<std::string, Value *> NamedValues;\n\nValue *LogErrorV(const char *Str) {\n LogError(Str);\n return nullptr;\n}\n```\n\nExample:\n```text\nValue *NumberExprAST::codegen() {\n return ConstantFP::get(*TheContext, APFloat(Val));\n}\n```\n\nExample:\n```text\nValue *VariableExprAST::codegen() {\n // Look this variable up in the function.\n Value *V = NamedValues[Name];\n if (!V)\n LogErrorV(\"Unknown variable name\");\n return V;\n}\n```\n\nExample:\n```text\nValue *BinaryExprAST::codegen() {\n Value *L = LHS->codegen();\n Value *R = RHS->codegen();\n if (!L || !R)\n return nullptr;\n\n switch (Op) {\n case '+':\n return Builder->CreateFAdd(L, R, \"addtmp\");\n case '-':\n return Builder->CreateFSub(L, R, \"subtmp\");\n case '*':\n return Builder->CreateFMul(L, R, \"multmp\");\n case '<':\n L = Builder->CreateFCmpULT(L, R, \"cmptmp\");\n // Convert bool 0/1 to double 0.0 or 1.0\n return Builder->CreateUIToFP(L, Type::getDoubleTy(*TheContext),\n \"booltmp\");\n default:\n return LogErrorV(\"invalid binary operator\");\n }\n}\n```\n\nExample:\n```text\nValue *CallExprAST::codegen() {\n // Look up the name in the global module table.\n Function *CalleeF = TheModule->getFunction(Callee);\n if (!CalleeF)\n return LogErrorV(\"Unknown function referenced\");\n\n // If argument mismatch error.\n if (CalleeF->arg_size() != Args.size())\n return LogErrorV(\"Incorrect # arguments passed\");\n\n std::vector<Value *> ArgsV;\n for (unsigned i = 0, e = Args.size(); i != e; ++i) {\n ArgsV.push_back(Args[i]->codegen());\n if (!ArgsV.back())\n return nullptr;\n }\n\n return Builder->CreateCall(CalleeF, ArgsV, \"calltmp\");\n}\n```\n\nExample:\n```text\nFunction *PrototypeAST::codegen() {\n // Make the function type: double(double,double) etc.\n std::vector<Type*> Doubles(Args.size(),\n Type::getDoubleTy(*TheContext));\n FunctionType *FT =\n FunctionType::get(Type::getDoubleTy(*TheContext), Doubles, false);\n\n Function *F =\n Function::Create(FT, Function::ExternalLinkage, Name, TheModule.get());\n```\n\nExample:\n```text\n// Set names for all arguments.\nunsigned Idx = 0;\nfor (auto &Arg : F->args())\n Arg.setName(Args[Idx++]);\n\nreturn F;\n```\n\nExample:\n```text\nFunction *FunctionAST::codegen() {\n // First, check for an existing function from a previous 'extern' declaration.\n Function *TheFunction = TheModule->getFunction(Proto->getName());\n\n if (!TheFunction)\n TheFunction = Proto->codegen();\n\n if (!TheFunction)\n return nullptr;\n\n if (!TheFunction->empty())\n return (Function*)LogErrorV(\"Function cannot be redefined.\");\n```\n\nExample:\n```text\n// Create a new basic block to start insertion into.\nBasicBlock *BB = BasicBlock::Create(*TheContext, \"entry\", TheFunction);\nBuilder->SetInsertPoint(BB);\n\n// Record the function arguments in the NamedValues map.\nNamedValues.clear();\nfor (auto &Arg : TheFunction->args())\n NamedValues[std::string(Arg.getName())] = &Arg;\n```\n\nExample:\n```text\nif (Value *RetVal = Body->codegen()) {\n // Finish off the function.\n Builder->CreateRet(RetVal);\n\n // Validate the generated code, checking for consistency.\n verifyFunction(*TheFunction);\n\n return TheFunction;\n}\n```\n\nExample:\n```text\n// Error reading body, remove function.\n TheFunction->eraseFromParent();\n return nullptr;\n}\n```\n\nExample:\n```text\nextern foo(a); # ok, defines foo.\ndef foo(b) b; # Error: Unknown variable name. (decl using 'a' takes precedence).\n```\n\nExample:\n```text\nready> 4+5;\nRead top-level expression:\ndefine double @__anon_expr() {\nentry:\n ret double 9.000000e+00\n}\n```\n\nExample:\n```text\nready> def foo(a b) a*a + 2*a*b + b*b;\nRead function definition:\ndefine double @foo(double %a, double %b) {\nentry:\n %multmp = fmul double %a, %a\n %multmp1 = fmul double 2.000000e+00, %a\n %multmp2 = fmul double %multmp1, %b\n %addtmp = fadd double %multmp, %multmp2\n %multmp3 = fmul double %b, %b\n %addtmp4 = fadd double %addtmp, %multmp3\n ret double %addtmp4\n}\n```\n\nExample:\n```text\nready> def bar(a) foo(a, 4.0) + bar(31337);\nRead function definition:\ndefine double @bar(double %a) {\nentry:\n %calltmp = call double @foo(double %a, double 4.000000e+00)\n %calltmp1 = call double @bar(double 3.133700e+04)\n %addtmp = fadd double %calltmp, %calltmp1\n ret double %addtmp\n}\n```\n\nExample:\n```text\nready> extern cos(x);\nRead extern:\ndeclare double @cos(double)\n\nready> cos(1.234);\nRead top-level expression:\ndefine double @__anon_expr() {\nentry:\n %calltmp = call double @cos(double 1.234000e+00)\n ret double %calltmp\n}\n```\n\nExample:\n```text\nready> ^D\n; ModuleID = 'my cool jit'\n\ndefine double @0() {\nentry:\n %addtmp = fadd double 4.000000e+00, 5.000000e+00\n ret double %addtmp\n}\n\ndefine double @foo(double %a, double %b) {\nentry:\n %multmp = fmul double %a, %a\n %multmp1 = fmul double 2.000000e+00, %a\n %multmp2 = fmul double %multmp1, %b\n %addtmp = fadd double %multmp, %multmp2\n %multmp3 = fmul double %b, %b\n %addtmp4 = fadd double %addtmp, %multmp3\n ret double %addtmp4\n}\n\ndefine double @bar(double %a) {\nentry:\n %calltmp = call double @foo(double %a, double 4.000000e+00)\n %calltmp1 = call double @bar(double 3.133700e+04)\n %addtmp = fadd double %calltmp, %calltmp1\n ret double %addtmp\n}\n\ndeclare double @cos(double)\n\ndefine double @1() {\nentry:\n %calltmp = call double @cos(double 1.234000e+00)\n ret double %calltmp\n}\n```\n\nExample:\n```text\n# Compile\nclang++ -g -O3 toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core` -o toy\n# Run\n./toy\n```\n\nExample:\n```text\n#include \"llvm/ADT/APFloat.h\"\n#include \"llvm/ADT/STLExtras.h\"\n#include \"llvm/IR/BasicBlock.h\"\n#include \"llvm/IR/Constants.h\"\n#include \"llvm/IR/DerivedTypes.h\"\n#include \"llvm/IR/Function.h\"\n#include \"llvm/IR/IRBuilder.h\"\n#include \"llvm/IR/LLVMContext.h\"\n#include \"llvm/IR/Module.h\"\n#include \"llvm/IR/Type.h\"\n#include \"llvm/IR/Verifier.h\"\n#include <algorithm>\n#include <cctype>\n#include <cstdio>\n#include <cstdlib>\n#include <map>\n#include <memory>\n#include <string>\n#include <vector>\n\nusing namespace llvm;\n\n//===----------------------------------------------------------------------===//\n// Lexer\n//===----------------------------------------------------------------------===//\n\n// The lexer returns tokens [0-255] if it is an unknown character, otherwise one\n// of these for known things.\nenum Token {\n tok_eof = -1,\n\n // commands\n tok_def = -2,\n tok_extern = -3,\n\n // primary\n tok_identifier = -4,\n tok_number = -5\n};\n\nstatic std::string IdentifierStr; // Filled in if tok_identifier\nstatic double NumVal; // Filled in if tok_number\n\n/// gettok - Return the next token from standard input.\nstatic int gettok() {\n static int LastChar = ' ';\n\n // Skip any whitespace.\n while (isspace(LastChar))\n LastChar = getchar();\n\n if (isalpha(LastChar)) { // identifier: [a-zA-Z][a-zA-Z0-9]*\n IdentifierStr = LastChar;\n while (isalnum((LastChar = getchar())))\n IdentifierStr += LastChar;\n\n if (IdentifierStr == \"def\")\n return tok_def;\n if (IdentifierStr == \"extern\")\n return tok_extern;\n return tok_identifier;\n }\n\n if (isdigit(LastChar) || LastChar == '.') { // Number: [0-9.]+\n std::string NumStr;\n do {\n NumStr += LastChar;\n LastChar = getchar();\n } while (isdigit(LastChar) || LastChar == '.');\n\n NumVal = strtod(NumStr.c_str(), nullptr);\n return tok_number;\n }\n\n if (LastChar == '#') {\n // Comment until end of line.\n do\n LastChar = getchar();\n while (LastChar != EOF && LastChar != '\\n' && LastChar != '\\r');\n\n if (LastChar != EOF)\n return gettok();\n }\n\n // Check for end of file. Don't eat the EOF.\n if (LastChar == EOF)\n return tok_eof;\n\n // Otherwise, just return the character as its ascii value.\n int ThisChar = LastChar;\n LastChar = getchar();\n return ThisChar;\n}\n\n//===----------------------------------------------------------------------===//\n// Abstract Syntax Tree (aka Parse Tree)\n//===----------------------------------------------------------------------===//\n\nnamespace {\n\n/// ExprAST - Base class for all expression nodes.\nclass ExprAST {\npublic:\n virtual ~ExprAST() = default;\n\n virtual Value *codegen() = 0;\n};\n\n/// NumberExprAST - Expression class for numeric literals like \"1.0\".\nclass NumberExprAST : public ExprAST {\n double Val;\n\npublic:\n NumberExprAST(double Val) : Val(Val) {}\n\n Value *codegen() override;\n};\n\n/// VariableExprAST - Expression class for referencing a variable, like \"a\".\nclass VariableExprAST : public ExprAST {\n std::string Name;\n\npublic:\n VariableExprAST(const std::string &Name) : Name(Name) {}\n\n Value *codegen() override;\n};\n\n/// BinaryExprAST - Expression class for a binary operator.\nclass BinaryExprAST : public ExprAST {\n char Op;\n std::unique_ptr<ExprAST> LHS, RHS;\n\npublic:\n BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS,\n std::unique_ptr<ExprAST> RHS)\n : Op(Op), LHS(std::move(LHS)), RHS(std::move(RHS)) {}\n\n Value *codegen() override;\n};\n\n/// CallExprAST - Expression class for function calls.\nclass CallExprAST : public ExprAST {\n std::string Callee;\n std::vector<std::unique_ptr<ExprAST>> Args;\n\npublic:\n CallExprAST(const std::string &Callee,\n std::vector<std::unique_ptr<ExprAST>> Args)\n : Callee(Callee), Args(std::move(Args)) {}\n\n Value *codegen() override;\n};\n\n/// PrototypeAST - This class represents the \"prototype\" for a function,\n/// which captures its name, and its argument names (thus implicitly the number\n/// of arguments the function takes).\nclass PrototypeAST {\n std::string Name;\n std::vector<std::string> Args;\n\npublic:\n PrototypeAST(const std::string &Name, std::vector<std::string> Args)\n : Name(Name), Args(std::move(Args)) {}\n\n Function *codegen();\n const std::string &getName() const { return Name; }\n};\n\n/// FunctionAST - This class represents a function definition itself.\nclass FunctionAST {\n std::unique_ptr<PrototypeAST> Proto;\n std::unique_ptr<ExprAST> Body;\n\npublic:\n FunctionAST(std::unique_ptr<PrototypeAST> Proto,\n std::unique_ptr<ExprAST> Body)\n : Proto(std::move(Proto)), Body(std::move(Body)) {}\n\n Function *codegen();\n};\n\n} // end anonymous namespace\n\n//===----------------------------------------------------------------------===//\n// Parser\n//===----------------------------------------------------------------------===//\n\n/// CurTok/getNextToken - Provide a simple token buffer. CurTok is the current\n/// token the parser is looking at. getNextToken reads another token from the\n/// lexer and updates CurTok with its results.\nstatic int CurTok;\nstatic int getNextToken() { return CurTok = gettok(); }\n\n/// BinopPrecedence - This holds the precedence for each binary operator that is\n/// defined.\nstatic std::map<char, int> BinopPrecedence;\n\n/// GetTokPrecedence - Get the precedence of the pending binary operator token.\nstatic int GetTokPrecedence() {\n if (!isascii(CurTok))\n return -1;\n\n // Make sure it's a declared binop.\n int TokPrec = BinopPrecedence[CurTok];\n if (TokPrec <= 0)\n return -1;\n return TokPrec;\n}\n\n/// LogError* - These are little helper functions for error handling.\nstd::unique_ptr<ExprAST> LogError(const char *Str) {\n fprintf(stderr, \"Error: %s\\n\", Str);\n return nullptr;\n}\n\nstd::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {\n LogError(Str);\n return nullptr;\n}\n\nstatic std::unique_ptr<ExprAST> ParseExpression();\n\n/// numberexpr ::= number\nstatic std::unique_ptr<ExprAST> ParseNumberExpr() {\n auto Result = std::make_unique<NumberExprAST>(NumVal);\n getNextToken(); // consume the number\n return std::move(Result);\n}\n\n/// parenexpr ::= '(' expression ')'\nstatic std::unique_ptr<ExprAST> ParseParenExpr() {\n getNextToken(); // eat (.\n auto V = ParseExpression();\n if (!V)\n return nullptr;\n\n if (CurTok != ')')\n return LogError(\"expected ')'\");\n getNextToken(); // eat ).\n return V;\n}\n\n/// identifierexpr\n/// ::= identifier\n/// ::= identifier '(' expression* ')'\nstatic std::unique_ptr<ExprAST> ParseIdentifierExpr() {\n std::string IdName = IdentifierStr;\n\n getNextToken(); // eat identifier.\n\n if (CurTok != '(') // Simple variable ref.\n return std::make_unique<VariableExprAST>(IdName);\n\n // Call.\n getNextToken(); // eat (\n std::vector<std::unique_ptr<ExprAST>> Args;\n if (CurTok != ')') {\n while (true) {\n if (auto Arg = ParseExpression())\n Args.push_back(std::move(Arg));\n else\n return nullptr;\n\n if (CurTok == ')')\n break;\n\n if (CurTok != ',')\n return LogError(\"Expected ')' or ',' in argument list\");\n getNextToken();\n }\n }\n\n // Eat the ')'.\n getNextToken();\n\n return std::make_unique<CallExprAST>(IdName, std::move(Args));\n}\n\n/// primary\n/// ::= identifierexpr\n/// ::= numberexpr\n/// ::= parenexpr\nstatic std::unique_ptr<ExprAST> ParsePrimary() {\n switch (CurTok) {\n default:\n return LogError(\"unknown token when expecting an expression\");\n case tok_identifier:\n return ParseIdentifierExpr();\n case tok_number:\n return ParseNumberExpr();\n case '(':\n return ParseParenExpr();\n }\n}\n\n/// binoprhs\n/// ::= ('+' primary)*\nstatic std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec,\n std::unique_ptr<ExprAST> LHS) {\n // If this is a binop, find its precedence.\n while (true) {\n int TokPrec = GetTokPrecedence();\n\n // If this is a binop that binds at least as tightly as the current binop,\n // consume it, otherwise we are done.\n if (TokPrec < ExprPrec)\n return LHS;\n\n // Okay, we know this is a binop.\n int BinOp = CurTok;\n getNextToken(); // eat binop\n\n // Parse the primary expression after the binary operator.\n auto RHS = ParsePrimary();\n if (!RHS)\n return nullptr;\n\n // If BinOp binds less tightly with RHS than the operator after RHS, let\n // the pending operator take RHS as its LHS.\n int NextPrec = GetTokPrecedence();\n if (TokPrec < NextPrec) {\n RHS = ParseBinOpRHS(TokPrec + 1, std::move(RHS));\n if (!RHS)\n return nullptr;\n }\n\n // Merge LHS/RHS.\n LHS =\n std::make_unique<BinaryExprAST>(BinOp, std::move(LHS), std::move(RHS));\n }\n}\n\n/// expression\n/// ::= primary binoprhs\n///\nstatic std::unique_ptr<ExprAST> ParseExpression() {\n auto LHS = ParsePrimary();\n if (!LHS)\n return nullptr;\n\n return ParseBinOpRHS(0, std::move(LHS));\n}\n\n/// prototype\n/// ::= id '(' id* ')'\nstatic std::unique_ptr<PrototypeAST> ParsePrototype() {\n if (CurTok != tok_identifier)\n return LogErrorP(\"Expected function name in prototype\");\n\n std::string FnName = IdentifierStr;\n getNextToken();\n\n if (CurTok != '(')\n return LogErrorP(\"Expected '(' in prototype\");\n\n std::vector<std::string> ArgNames;\n while (getNextToken() == tok_identifier)\n ArgNames.push_back(IdentifierStr);\n if (CurTok != ')')\n return LogErrorP(\"Expected ')' in prototype\");\n\n // success.\n getNextToken(); // eat ')'.\n\n return std::make_unique<PrototypeAST>(FnName, std::move(ArgNames));\n}\n\n/// definition ::= 'def' prototype expression\nstatic std::unique_ptr<FunctionAST> ParseDefinition() {\n getNextToken(); // eat def.\n auto Proto = ParsePrototype();\n if (!Proto)\n return nullptr;\n\n if (auto E = ParseExpression())\n return std::make_unique<FunctionAST>(std::move(Proto), std::move(E));\n return nullptr;\n}\n\n/// toplevelexpr ::= expression\nstatic std::unique_ptr<FunctionAST> ParseTopLevelExpr() {\n if (auto E = ParseExpression()) {\n // Make an anonymous proto.\n auto Proto = std::make_unique<PrototypeAST>(\"__anon_expr\",\n std::vector<std::string>());\n return std::make_unique<FunctionAST>(std::move(Proto), std::move(E));\n }\n return nullptr;\n}\n\n/// external ::= 'extern' prototype\nstatic std::unique_ptr<PrototypeAST> ParseExtern() {\n getNextToken(); // eat extern.\n return ParsePrototype();\n}\n\n//===----------------------------------------------------------------------===//\n// Code Generation\n//===----------------------------------------------------------------------===//\n\nstatic std::unique_ptr<LLVMContext> TheContext;\nstatic std::unique_ptr<Module> TheModule;\nstatic std::unique_ptr<IRBuilder<>> Builder;\nstatic std::map<std::string, Value *> NamedValues;\n\nValue *LogErrorV(const char *Str) {\n LogError(Str);\n return nullptr;\n}\n\nValue *NumberExprAST::codegen() {\n return ConstantFP::get(*TheContext, APFloat(Val));\n}\n\nValue *VariableExprAST::codegen() {\n // Look this variable up in the function.\n Value *V = NamedValues[Name];\n if (!V)\n return LogErrorV(\"Unknown variable name\");\n return V;\n}\n\nValue *BinaryExprAST::codegen() {\n Value *L = LHS->codegen();\n Value *R = RHS->codegen();\n if (!L || !R)\n return nullptr;\n\n switch (Op) {\n case '+':\n return Builder->CreateFAdd(L, R, \"addtmp\");\n case '-':\n return Builder->CreateFSub(L, R, \"subtmp\");\n case '*':\n return Builder->CreateFMul(L, R, \"multmp\");\n case '<':\n L = Builder->CreateFCmpULT(L, R, \"cmptmp\");\n // Convert bool 0/1 to double 0.0 or 1.0\n return Builder->CreateUIToFP(L, Type::getDoubleTy(*TheContext), \"booltmp\");\n default:\n return LogErrorV(\"invalid binary operator\");\n }\n}\n\nValue *CallExprAST::codegen() {\n // Look up the name in the global module table.\n Function *CalleeF = TheModule->getFunction(Callee);\n if (!CalleeF)\n return LogErrorV(\"Unknown function referenced\");\n\n // If argument mismatch error.\n if (CalleeF->arg_size() != Args.size())\n return LogErrorV(\"Incorrect # arguments passed\");\n\n std::vector<Value *> ArgsV;\n for (unsigned i = 0, e = Args.size(); i != e; ++i) {\n ArgsV.push_back(Args[i]->codegen());\n if (!ArgsV.back())\n return nullptr;\n }\n\n return Builder->CreateCall(CalleeF, ArgsV, \"calltmp\");\n}\n\nFunction *PrototypeAST::codegen() {\n // Make the function type: double(double,double) etc.\n std::vector<Type *> Doubles(Args.size(), Type::getDoubleTy(*TheContext));\n FunctionType *FT =\n FunctionType::get(Type::getDoubleTy(*TheContext), Doubles, false);\n\n Function *F =\n Function::Create(FT, Function::ExternalLinkage, Name, TheModule.get());\n\n // Set names for all arguments.\n unsigned Idx = 0;\n for (auto &Arg : F->args())\n Arg.setName(Args[Idx++]);\n\n return F;\n}\n\nFunction *FunctionAST::codegen() {\n // First, check for an existing function from a previous 'extern' declaration.\n Function *TheFunction = TheModule->getFunction(Proto->getName());\n\n if (!TheFunction)\n TheFunction = Proto->codegen();\n\n if (!TheFunction)\n return nullptr;\n\n if (!TheFunction->empty())\n return (Function *)LogErrorV(\"Function cannot be redefined.\");\n\n // Create a new basic block to start insertion into.\n BasicBlock *BB = BasicBlock::Create(*TheContext, \"entry\", TheFunction);\n Builder->SetInsertPoint(BB);\n\n // Record the function arguments in the NamedValues map.\n NamedValues.clear();\n for (auto &Arg : TheFunction->args())\n NamedValues[std::string(Arg.getName())] = &Arg;\n\n if (Value *RetVal = Body->codegen()) {\n // Finish off the function.\n Builder->CreateRet(RetVal);\n\n // Validate the generated code, checking for consistency.\n verifyFunction(*TheFunction);\n\n return TheFunction;\n }\n\n // Error reading body, remove function.\n TheFunction->eraseFromParent();\n return nullptr;\n}\n\n//===----------------------------------------------------------------------===//\n// Top-Level parsing and JIT Driver\n//===----------------------------------------------------------------------===//\n\nstatic void InitializeModule() {\n // Open a new context and module.\n TheContext = std::make_unique<LLVMContext>();\n TheModule = std::make_unique<Module>(\"my cool jit\", *TheContext);\n\n // Create a new builder for the module.\n Builder = std::make_unique<IRBuilder<>>(*TheContext);\n}\n\nstatic void HandleDefinition() {\n if (auto FnAST = ParseDefinition()) {\n if (auto *FnIR = FnAST->codegen()) {\n fprintf(stderr, \"Read function definition:\");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\nstatic void HandleExtern() {\n if (auto ProtoAST = ParseExtern()) {\n if (auto *FnIR = ProtoAST->codegen()) {\n fprintf(stderr, \"Read extern: \");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\nstatic void HandleTopLevelExpression() {\n // Evaluate a top-level expression into an anonymous function.\n if (auto FnAST = ParseTopLevelExpr()) {\n if (auto *FnIR = FnAST->codegen()) {\n fprintf(stderr, \"Read top-level expression:\");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n\n // Remove the anonymous expression.\n FnIR->eraseFromParent();\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\n/// top ::= definition | external | expression | ';'\nstatic void MainLoop() {\n while (true) {\n fprintf(stderr, \"ready> \");\n switch (CurTok) {\n case tok_eof:\n return;\n case ';': // ignore top-level semicolons.\n getNextToken();\n break;\n case tok_def:\n HandleDefinition();\n break;\n case tok_extern:\n HandleExtern();\n break;\n default:\n HandleTopLevelExpression();\n break;\n }\n }\n}\n\n//===----------------------------------------------------------------------===//\n// Main driver code.\n//===----------------------------------------------------------------------===//\n\nint main() {\n // Install standard binary operators.\n // 1 is lowest precedence.\n BinopPrecedence['<'] = 10;\n BinopPrecedence['+'] = 20;\n BinopPrecedence['-'] = 20;\n BinopPrecedence['*'] = 40; // highest.\n\n // Prime the first token.\n fprintf(stderr, \"ready> \");\n getNextToken();\n\n // Make the module, which holds all the code.\n InitializeModule();\n\n // Run the main \"interpreter loop\" now.\n MainLoop();\n\n // Print out all of the generated code.\n TheModule->print(errs(), nullptr);\n\n return 0;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:52.970Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":20,"totalLines":909,"estimatedTokens":5618}}377{"id":"doc-4_kaleidoscope_adding_jit_and_optimizer_support_-0455ecb0","source":"documentation","title":"4. Kaleidoscope: Adding JIT and Optimizer Support - LLVM","url":"https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl04.html","text":"Example:\n```text\nready> def test(x) 1+2+x;\nRead function definition:\ndefine double @test(double %x) {\nentry:\n %addtmp = fadd double 3.000000e+00, %x\n ret double %addtmp\n}\n```\n\nExample:\n```text\nready> def test(x) 1+2+x;\nRead function definition:\ndefine double @test(double %x) {\nentry:\n %addtmp = fadd double 2.000000e+00, 1.000000e+00\n %addtmp1 = fadd double %addtmp, %x\n ret double %addtmp1\n}\n```\n\nExample:\n```text\nready> def test(x) (1+2+x)*(x+(1+2));\nready> Read function definition:\ndefine double @test(double %x) {\nentry:\n %addtmp = fadd double 3.000000e+00, %x\n %addtmp1 = fadd double %x, 3.000000e+00\n %multmp = fmul double %addtmp, %addtmp1\n ret double %multmp\n}\n```\n\nExample:\n```text\nvoid InitializeModuleAndManagers(void) {\n // Open a new context and module.\n TheContext = std::make_unique<LLVMContext>();\n TheModule = std::make_unique<Module>(\"KaleidoscopeJIT\", *TheContext);\n TheModule->setDataLayout(TheJIT->getDataLayout());\n\n // Create a new builder for the module.\n Builder = std::make_unique<IRBuilder<>>(*TheContext);\n\n // Create new pass and analysis managers.\n TheFPM = std::make_unique<FunctionPassManager>();\n TheLAM = std::make_unique<LoopAnalysisManager>();\n TheFAM = std::make_unique<FunctionAnalysisManager>();\n TheCGAM = std::make_unique<CGSCCAnalysisManager>();\n TheMAM = std::make_unique<ModuleAnalysisManager>();\n ThePIC = std::make_unique<PassInstrumentationCallbacks>();\n TheSI = std::make_unique<StandardInstrumentations>(*TheContext,\n /*DebugLogging*/ true);\n TheSI->registerCallbacks(*ThePIC, TheMAM.get());\n ...\n```\n\nExample:\n```text\n// Add transform passes.\n// Do simple \"peephole\" optimizations and bit-twiddling optzns.\nTheFPM->addPass(InstCombinePass());\n// Reassociate expressions.\nTheFPM->addPass(ReassociatePass());\n// Eliminate Common SubExpressions.\nTheFPM->addPass(GVNPass());\n// Simplify the control flow graph (deleting unreachable blocks, etc).\nTheFPM->addPass(SimplifyCFGPass());\n```\n\nExample:\n```text\n// Register analysis passes used in these transform passes.\n PassBuilder PB;\n PB.registerModuleAnalyses(*TheMAM);\n PB.registerFunctionAnalyses(*TheFAM);\n PB.crossRegisterProxies(*TheLAM, *TheFAM, *TheCGAM, *TheMAM);\n}\n```\n\nExample:\n```text\nif (Value *RetVal = Body->codegen()) {\n // Finish off the function.\n Builder.CreateRet(RetVal);\n\n // Validate the generated code, checking for consistency.\n verifyFunction(*TheFunction);\n\n // Optimize the function.\n TheFPM->run(*TheFunction, *TheFAM);\n\n return TheFunction;\n}\n```\n\nExample:\n```text\nready> def test(x) (1+2+x)*(x+(1+2));\nready> Read function definition:\ndefine double @test(double %x) {\nentry:\n %addtmp = fadd double %x, 3.000000e+00\n %multmp = fmul double %addtmp, %addtmp\n ret double %multmp\n}\n```\n\nExample:\n```text\nstatic std::unique_ptr<KaleidoscopeJIT> TheJIT;\n...\nint main() {\n InitializeNativeTarget();\n InitializeNativeTargetAsmPrinter();\n InitializeNativeTargetAsmParser();\n\n // Install standard binary operators.\n // 1 is lowest precedence.\n BinopPrecedence['<'] = 10;\n BinopPrecedence['+'] = 20;\n BinopPrecedence['-'] = 20;\n BinopPrecedence['*'] = 40; // highest.\n\n // Prime the first token.\n fprintf(stderr, \"ready> \");\n getNextToken();\n\n TheJIT = std::make_unique<KaleidoscopeJIT>();\n\n // Run the main \"interpreter loop\" now.\n MainLoop();\n\n return 0;\n}\n```\n\nExample:\n```text\nvoid InitializeModuleAndManagers(void) {\n // Open a new context and module.\n TheContext = std::make_unique<LLVMContext>();\n TheModule = std::make_unique<Module>(\"KaleidoscopeJIT\", *TheContext);\n TheModule->setDataLayout(TheJIT->getDataLayout());\n ...\n```\n\nExample:\n```text\nstatic ExitOnError ExitOnErr;\n...\nstatic void HandleTopLevelExpression() {\n // Evaluate a top-level expression into an anonymous function.\n if (auto FnAST = ParseTopLevelExpr()) {\n if (FnAST->codegen()) {\n // Create a ResourceTracker to track JIT'd memory allocated to our\n // anonymous expression -- that way we can free it after executing.\n auto RT = TheJIT->getMainJITDylib().createResourceTracker();\n\n auto TSM = ThreadSafeModule(std::move(TheModule), std::move(TheContext));\n ExitOnErr(TheJIT->addModule(std::move(TSM), RT));\n InitializeModuleAndManagers();\n\n // Search the JIT for the __anon_expr symbol.\n auto ExprSymbol = ExitOnErr(TheJIT->lookup(\"__anon_expr\"));\n\n // Get the symbol's address and cast it to the right type (takes no\n // arguments, returns a double) so we can call it as a native function.\n double (*FP)() = ExprSymbol.toPtr<double (*)()>();\n fprintf(stderr, \"Evaluated to %f\\n\", FP());\n\n // Delete the anonymous expression module from the JIT.\n ExitOnErr(RT->remove());\n }\n```\n\nExample:\n```text\nready> 4+5;\nRead top-level expression:\ndefine double @0() {\nentry:\n ret double 9.000000e+00\n}\n\nEvaluated to 9.000000\n```\n\nExample:\n```text\nready> def testfunc(x y) x + y*2;\nRead function definition:\ndefine double @testfunc(double %x, double %y) {\nentry:\n %multmp = fmul double %y, 2.000000e+00\n %addtmp = fadd double %multmp, %x\n ret double %addtmp\n}\n\nready> testfunc(4, 10);\nRead top-level expression:\ndefine double @1() {\nentry:\n %calltmp = call double @testfunc(double 4.000000e+00, double 1.000000e+01)\n ret double %calltmp\n}\n\nEvaluated to 24.000000\n\nready> testfunc(5, 10);\nready> LLVM ERROR: Program used external function 'testfunc' which could not be resolved!\n```\n\nExample:\n```text\nready> def foo(x) x + 1;\nRead function definition:\ndefine double @foo(double %x) {\nentry:\n %addtmp = fadd double %x, 1.000000e+00\n ret double %addtmp\n}\n\nready> foo(2);\nEvaluated to 3.000000\n\nready> def foo(x) x + 2;\ndefine double @foo(double %x) {\nentry:\n %addtmp = fadd double %x, 2.000000e+00\n ret double %addtmp\n}\n\nready> foo(2);\nEvaluated to 4.000000\n```\n\nExample:\n```text\nstatic std::unique_ptr<KaleidoscopeJIT> TheJIT;\n\n...\n\nFunction *getFunction(std::string Name) {\n // First, see if the function has already been added to the current module.\n if (auto *F = TheModule->getFunction(Name))\n return F;\n\n // If not, check whether we can codegen the declaration from some existing\n // prototype.\n auto FI = FunctionProtos.find(Name);\n if (FI != FunctionProtos.end())\n return FI->second->codegen();\n\n // If no existing prototype exists, return null.\n return nullptr;\n}\n\n...\n\nValue *CallExprAST::codegen() {\n // Look up the name in the global module table.\n Function *CalleeF = getFunction(Callee);\n\n...\n\nFunction *FunctionAST::codegen() {\n // Transfer ownership of the prototype to the FunctionProtos map, but keep a\n // reference to it for use below.\n auto &P = *Proto;\n FunctionProtos[Proto->getName()] = std::move(Proto);\n Function *TheFunction = getFunction(P.getName());\n if (!TheFunction)\n return nullptr;\n```\n\nExample:\n```text\nstatic void HandleDefinition() {\n if (auto FnAST = ParseDefinition()) {\n if (auto *FnIR = FnAST->codegen()) {\n fprintf(stderr, \"Read function definition:\");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n ExitOnErr(TheJIT->addModule(\n ThreadSafeModule(std::move(TheModule), std::move(TheContext))));\n InitializeModuleAndManagers();\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\nstatic void HandleExtern() {\n if (auto ProtoAST = ParseExtern()) {\n if (auto *FnIR = ProtoAST->codegen()) {\n fprintf(stderr, \"Read extern: \");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n FunctionProtos[ProtoAST->getName()] = std::move(ProtoAST);\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n```\n\nExample:\n```text\nready> def foo(x) x + 1;\nready> foo(2);\nEvaluated to 3.000000\n\nready> def foo(x) x + 2;\nready> foo(2);\nEvaluated to 4.000000\n```\n\nExample:\n```text\nready> extern sin(x);\nRead extern:\ndeclare double @sin(double)\n\nready> extern cos(x);\nRead extern:\ndeclare double @cos(double)\n\nready> sin(1.0);\nRead top-level expression:\ndefine double @2() {\nentry:\n ret double 0x3FEAED548F090CEE\n}\n\nEvaluated to 0.841471\n\nready> def foo(x) sin(x)*sin(x) + cos(x)*cos(x);\nRead function definition:\ndefine double @foo(double %x) {\nentry:\n %calltmp = call double @sin(double %x)\n %multmp = fmul double %calltmp, %calltmp\n %calltmp2 = call double @cos(double %x)\n %multmp4 = fmul double %calltmp2, %calltmp2\n %addtmp = fadd double %multmp, %multmp4\n ret double %addtmp\n}\n\nready> foo(4.0);\nRead top-level expression:\ndefine double @3() {\nentry:\n %calltmp = call double @foo(double 4.000000e+00)\n ret double %calltmp\n}\n\nEvaluated to 1.000000\n```\n\nExample:\n```text\n#ifdef _WIN32\n#define DLLEXPORT __declspec(dllexport)\n#else\n#define DLLEXPORT\n#endif\n\n/// putchard - putchar that takes a double and returns 0.\nextern \"C\" DLLEXPORT double putchard(double X) {\n fputc((char)X, stderr);\n return 0;\n}\n```\n\nExample:\n```text\n# Compile\nclang++ -g toy.cpp `llvm-config --cxxflags --ldflags --system-libs --libs core orcjit native` -O3 -o toy\n# Run\n./toy\n```\n\nExample:\n```text\n#include \"../include/KaleidoscopeJIT.h\"\n#include \"llvm/ADT/APFloat.h\"\n#include \"llvm/ADT/STLExtras.h\"\n#include \"llvm/IR/BasicBlock.h\"\n#include \"llvm/IR/Constants.h\"\n#include \"llvm/IR/DerivedTypes.h\"\n#include \"llvm/IR/Function.h\"\n#include \"llvm/IR/IRBuilder.h\"\n#include \"llvm/IR/LLVMContext.h\"\n#include \"llvm/IR/Module.h\"\n#include \"llvm/IR/PassManager.h\"\n#include \"llvm/IR/Type.h\"\n#include \"llvm/IR/Verifier.h\"\n#include \"llvm/Passes/PassBuilder.h\"\n#include \"llvm/Passes/StandardInstrumentations.h\"\n#include \"llvm/Support/TargetSelect.h\"\n#include \"llvm/Target/TargetMachine.h\"\n#include \"llvm/Transforms/InstCombine/InstCombine.h\"\n#include \"llvm/Transforms/Scalar.h\"\n#include \"llvm/Transforms/Scalar/GVN.h\"\n#include \"llvm/Transforms/Scalar/Reassociate.h\"\n#include \"llvm/Transforms/Scalar/SimplifyCFG.h\"\n#include <algorithm>\n#include <cassert>\n#include <cctype>\n#include <cstdint>\n#include <cstdio>\n#include <cstdlib>\n#include <map>\n#include <memory>\n#include <string>\n#include <vector>\n\nusing namespace llvm;\nusing namespace llvm::orc;\n\n//===----------------------------------------------------------------------===//\n// Lexer\n//===----------------------------------------------------------------------===//\n\n// The lexer returns tokens [0-255] if it is an unknown character, otherwise one\n// of these for known things.\nenum Token {\n tok_eof = -1,\n\n // commands\n tok_def = -2,\n tok_extern = -3,\n\n // primary\n tok_identifier = -4,\n tok_number = -5\n};\n\nstatic std::string IdentifierStr; // Filled in if tok_identifier\nstatic double NumVal; // Filled in if tok_number\n\n/// gettok - Return the next token from standard input.\nstatic int gettok() {\n static int LastChar = ' ';\n\n // Skip any whitespace.\n while (isspace(LastChar))\n LastChar = getchar();\n\n if (isalpha(LastChar)) { // identifier: [a-zA-Z][a-zA-Z0-9]*\n IdentifierStr = LastChar;\n while (isalnum((LastChar = getchar())))\n IdentifierStr += LastChar;\n\n if (IdentifierStr == \"def\")\n return tok_def;\n if (IdentifierStr == \"extern\")\n return tok_extern;\n return tok_identifier;\n }\n\n if (isdigit(LastChar) || LastChar == '.') { // Number: [0-9.]+\n std::string NumStr;\n do {\n NumStr += LastChar;\n LastChar = getchar();\n } while (isdigit(LastChar) || LastChar == '.');\n\n NumVal = strtod(NumStr.c_str(), nullptr);\n return tok_number;\n }\n\n if (LastChar == '#') {\n // Comment until end of line.\n do\n LastChar = getchar();\n while (LastChar != EOF && LastChar != '\\n' && LastChar != '\\r');\n\n if (LastChar != EOF)\n return gettok();\n }\n\n // Check for end of file. Don't eat the EOF.\n if (LastChar == EOF)\n return tok_eof;\n\n // Otherwise, just return the character as its ascii value.\n int ThisChar = LastChar;\n LastChar = getchar();\n return ThisChar;\n}\n\n//===----------------------------------------------------------------------===//\n// Abstract Syntax Tree (aka Parse Tree)\n//===----------------------------------------------------------------------===//\n\nnamespace {\n\n/// ExprAST - Base class for all expression nodes.\nclass ExprAST {\npublic:\n virtual ~ExprAST() = default;\n\n virtual Value *codegen() = 0;\n};\n\n/// NumberExprAST - Expression class for numeric literals like \"1.0\".\nclass NumberExprAST : public ExprAST {\n double Val;\n\npublic:\n NumberExprAST(double Val) : Val(Val) {}\n\n Value *codegen() override;\n};\n\n/// VariableExprAST - Expression class for referencing a variable, like \"a\".\nclass VariableExprAST : public ExprAST {\n std::string Name;\n\npublic:\n VariableExprAST(const std::string &Name) : Name(Name) {}\n\n Value *codegen() override;\n};\n\n/// BinaryExprAST - Expression class for a binary operator.\nclass BinaryExprAST : public ExprAST {\n char Op;\n std::unique_ptr<ExprAST> LHS, RHS;\n\npublic:\n BinaryExprAST(char Op, std::unique_ptr<ExprAST> LHS,\n std::unique_ptr<ExprAST> RHS)\n : Op(Op), LHS(std::move(LHS)), RHS(std::move(RHS)) {}\n\n Value *codegen() override;\n};\n\n/// CallExprAST - Expression class for function calls.\nclass CallExprAST : public ExprAST {\n std::string Callee;\n std::vector<std::unique_ptr<ExprAST>> Args;\n\npublic:\n CallExprAST(const std::string &Callee,\n std::vector<std::unique_ptr<ExprAST>> Args)\n : Callee(Callee), Args(std::move(Args)) {}\n\n Value *codegen() override;\n};\n\n/// PrototypeAST - This class represents the \"prototype\" for a function,\n/// which captures its name, and its argument names (thus implicitly the number\n/// of arguments the function takes).\nclass PrototypeAST {\n std::string Name;\n std::vector<std::string> Args;\n\npublic:\n PrototypeAST(const std::string &Name, std::vector<std::string> Args)\n : Name(Name), Args(std::move(Args)) {}\n\n Function *codegen();\n const std::string &getName() const { return Name; }\n};\n\n/// FunctionAST - This class represents a function definition itself.\nclass FunctionAST {\n std::unique_ptr<PrototypeAST> Proto;\n std::unique_ptr<ExprAST> Body;\n\npublic:\n FunctionAST(std::unique_ptr<PrototypeAST> Proto,\n std::unique_ptr<ExprAST> Body)\n : Proto(std::move(Proto)), Body(std::move(Body)) {}\n\n Function *codegen();\n};\n\n} // end anonymous namespace\n\n//===----------------------------------------------------------------------===//\n// Parser\n//===----------------------------------------------------------------------===//\n\n/// CurTok/getNextToken - Provide a simple token buffer. CurTok is the current\n/// token the parser is looking at. getNextToken reads another token from the\n/// lexer and updates CurTok with its results.\nstatic int CurTok;\nstatic int getNextToken() { return CurTok = gettok(); }\n\n/// BinopPrecedence - This holds the precedence for each binary operator that is\n/// defined.\nstatic std::map<char, int> BinopPrecedence;\n\n/// GetTokPrecedence - Get the precedence of the pending binary operator token.\nstatic int GetTokPrecedence() {\n if (!isascii(CurTok))\n return -1;\n\n // Make sure it's a declared binop.\n int TokPrec = BinopPrecedence[CurTok];\n if (TokPrec <= 0)\n return -1;\n return TokPrec;\n}\n\n/// LogError* - These are little helper functions for error handling.\nstd::unique_ptr<ExprAST> LogError(const char *Str) {\n fprintf(stderr, \"Error: %s\\n\", Str);\n return nullptr;\n}\n\nstd::unique_ptr<PrototypeAST> LogErrorP(const char *Str) {\n LogError(Str);\n return nullptr;\n}\n\nstatic std::unique_ptr<ExprAST> ParseExpression();\n\n/// numberexpr ::= number\nstatic std::unique_ptr<ExprAST> ParseNumberExpr() {\n auto Result = std::make_unique<NumberExprAST>(NumVal);\n getNextToken(); // consume the number\n return std::move(Result);\n}\n\n/// parenexpr ::= '(' expression ')'\nstatic std::unique_ptr<ExprAST> ParseParenExpr() {\n getNextToken(); // eat (.\n auto V = ParseExpression();\n if (!V)\n return nullptr;\n\n if (CurTok != ')')\n return LogError(\"expected ')'\");\n getNextToken(); // eat ).\n return V;\n}\n\n/// identifierexpr\n/// ::= identifier\n/// ::= identifier '(' expression* ')'\nstatic std::unique_ptr<ExprAST> ParseIdentifierExpr() {\n std::string IdName = IdentifierStr;\n\n getNextToken(); // eat identifier.\n\n if (CurTok != '(') // Simple variable ref.\n return std::make_unique<VariableExprAST>(IdName);\n\n // Call.\n getNextToken(); // eat (\n std::vector<std::unique_ptr<ExprAST>> Args;\n if (CurTok != ')') {\n while (true) {\n if (auto Arg = ParseExpression())\n Args.push_back(std::move(Arg));\n else\n return nullptr;\n\n if (CurTok == ')')\n break;\n\n if (CurTok != ',')\n return LogError(\"Expected ')' or ',' in argument list\");\n getNextToken();\n }\n }\n\n // Eat the ')'.\n getNextToken();\n\n return std::make_unique<CallExprAST>(IdName, std::move(Args));\n}\n\n/// primary\n/// ::= identifierexpr\n/// ::= numberexpr\n/// ::= parenexpr\nstatic std::unique_ptr<ExprAST> ParsePrimary() {\n switch (CurTok) {\n default:\n return LogError(\"unknown token when expecting an expression\");\n case tok_identifier:\n return ParseIdentifierExpr();\n case tok_number:\n return ParseNumberExpr();\n case '(':\n return ParseParenExpr();\n }\n}\n\n/// binoprhs\n/// ::= ('+' primary)*\nstatic std::unique_ptr<ExprAST> ParseBinOpRHS(int ExprPrec,\n std::unique_ptr<ExprAST> LHS) {\n // If this is a binop, find its precedence.\n while (true) {\n int TokPrec = GetTokPrecedence();\n\n // If this is a binop that binds at least as tightly as the current binop,\n // consume it, otherwise we are done.\n if (TokPrec < ExprPrec)\n return LHS;\n\n // Okay, we know this is a binop.\n int BinOp = CurTok;\n getNextToken(); // eat binop\n\n // Parse the primary expression after the binary operator.\n auto RHS = ParsePrimary();\n if (!RHS)\n return nullptr;\n\n // If BinOp binds less tightly with RHS than the operator after RHS, let\n // the pending operator take RHS as its LHS.\n int NextPrec = GetTokPrecedence();\n if (TokPrec < NextPrec) {\n RHS = ParseBinOpRHS(TokPrec + 1, std::move(RHS));\n if (!RHS)\n return nullptr;\n }\n\n // Merge LHS/RHS.\n LHS =\n std::make_unique<BinaryExprAST>(BinOp, std::move(LHS), std::move(RHS));\n }\n}\n\n/// expression\n/// ::= primary binoprhs\n///\nstatic std::unique_ptr<ExprAST> ParseExpression() {\n auto LHS = ParsePrimary();\n if (!LHS)\n return nullptr;\n\n return ParseBinOpRHS(0, std::move(LHS));\n}\n\n/// prototype\n/// ::= id '(' id* ')'\nstatic std::unique_ptr<PrototypeAST> ParsePrototype() {\n if (CurTok != tok_identifier)\n return LogErrorP(\"Expected function name in prototype\");\n\n std::string FnName = IdentifierStr;\n getNextToken();\n\n if (CurTok != '(')\n return LogErrorP(\"Expected '(' in prototype\");\n\n std::vector<std::string> ArgNames;\n while (getNextToken() == tok_identifier)\n ArgNames.push_back(IdentifierStr);\n if (CurTok != ')')\n return LogErrorP(\"Expected ')' in prototype\");\n\n // success.\n getNextToken(); // eat ')'.\n\n return std::make_unique<PrototypeAST>(FnName, std::move(ArgNames));\n}\n\n/// definition ::= 'def' prototype expression\nstatic std::unique_ptr<FunctionAST> ParseDefinition() {\n getNextToken(); // eat def.\n auto Proto = ParsePrototype();\n if (!Proto)\n return nullptr;\n\n if (auto E = ParseExpression())\n return std::make_unique<FunctionAST>(std::move(Proto), std::move(E));\n return nullptr;\n}\n\n/// toplevelexpr ::= expression\nstatic std::unique_ptr<FunctionAST> ParseTopLevelExpr() {\n if (auto E = ParseExpression()) {\n // Make an anonymous proto.\n auto Proto = std::make_unique<PrototypeAST>(\"__anon_expr\",\n std::vector<std::string>());\n return std::make_unique<FunctionAST>(std::move(Proto), std::move(E));\n }\n return nullptr;\n}\n\n/// external ::= 'extern' prototype\nstatic std::unique_ptr<PrototypeAST> ParseExtern() {\n getNextToken(); // eat extern.\n return ParsePrototype();\n}\n\n//===----------------------------------------------------------------------===//\n// Code Generation\n//===----------------------------------------------------------------------===//\n\nstatic std::unique_ptr<LLVMContext> TheContext;\nstatic std::unique_ptr<Module> TheModule;\nstatic std::unique_ptr<IRBuilder<>> Builder;\nstatic std::map<std::string, Value *> NamedValues;\nstatic std::unique_ptr<KaleidoscopeJIT> TheJIT;\nstatic std::unique_ptr<FunctionPassManager> TheFPM;\nstatic std::unique_ptr<LoopAnalysisManager> TheLAM;\nstatic std::unique_ptr<FunctionAnalysisManager> TheFAM;\nstatic std::unique_ptr<CGSCCAnalysisManager> TheCGAM;\nstatic std::unique_ptr<ModuleAnalysisManager> TheMAM;\nstatic std::unique_ptr<PassInstrumentationCallbacks> ThePIC;\nstatic std::unique_ptr<StandardInstrumentations> TheSI;\nstatic std::map<std::string, std::unique_ptr<PrototypeAST>> FunctionProtos;\nstatic ExitOnError ExitOnErr;\n\nValue *LogErrorV(const char *Str) {\n LogError(Str);\n return nullptr;\n}\n\nFunction *getFunction(std::string Name) {\n // First, see if the function has already been added to the current module.\n if (auto *F = TheModule->getFunction(Name))\n return F;\n\n // If not, check whether we can codegen the declaration from some existing\n // prototype.\n auto FI = FunctionProtos.find(Name);\n if (FI != FunctionProtos.end())\n return FI->second->codegen();\n\n // If no existing prototype exists, return null.\n return nullptr;\n}\n\nValue *NumberExprAST::codegen() {\n return ConstantFP::get(*TheContext, APFloat(Val));\n}\n\nValue *VariableExprAST::codegen() {\n // Look this variable up in the function.\n Value *V = NamedValues[Name];\n if (!V)\n return LogErrorV(\"Unknown variable name\");\n return V;\n}\n\nValue *BinaryExprAST::codegen() {\n Value *L = LHS->codegen();\n Value *R = RHS->codegen();\n if (!L || !R)\n return nullptr;\n\n switch (Op) {\n case '+':\n return Builder->CreateFAdd(L, R, \"addtmp\");\n case '-':\n return Builder->CreateFSub(L, R, \"subtmp\");\n case '*':\n return Builder->CreateFMul(L, R, \"multmp\");\n case '<':\n L = Builder->CreateFCmpULT(L, R, \"cmptmp\");\n // Convert bool 0/1 to double 0.0 or 1.0\n return Builder->CreateUIToFP(L, Type::getDoubleTy(*TheContext), \"booltmp\");\n default:\n return LogErrorV(\"invalid binary operator\");\n }\n}\n\nValue *CallExprAST::codegen() {\n // Look up the name in the global module table.\n Function *CalleeF = getFunction(Callee);\n if (!CalleeF)\n return LogErrorV(\"Unknown function referenced\");\n\n // If argument mismatch error.\n if (CalleeF->arg_size() != Args.size())\n return LogErrorV(\"Incorrect # arguments passed\");\n\n std::vector<Value *> ArgsV;\n for (unsigned i = 0, e = Args.size(); i != e; ++i) {\n ArgsV.push_back(Args[i]->codegen());\n if (!ArgsV.back())\n return nullptr;\n }\n\n return Builder->CreateCall(CalleeF, ArgsV, \"calltmp\");\n}\n\nFunction *PrototypeAST::codegen() {\n // Make the function type: double(double,double) etc.\n std::vector<Type *> Doubles(Args.size(), Type::getDoubleTy(*TheContext));\n FunctionType *FT =\n FunctionType::get(Type::getDoubleTy(*TheContext), Doubles, false);\n\n Function *F =\n Function::Create(FT, Function::ExternalLinkage, Name, TheModule.get());\n\n // Set names for all arguments.\n unsigned Idx = 0;\n for (auto &Arg : F->args())\n Arg.setName(Args[Idx++]);\n\n return F;\n}\n\nFunction *FunctionAST::codegen() {\n // Transfer ownership of the prototype to the FunctionProtos map, but keep a\n // reference to it for use below.\n auto &P = *Proto;\n FunctionProtos[Proto->getName()] = std::move(Proto);\n Function *TheFunction = getFunction(P.getName());\n if (!TheFunction)\n return nullptr;\n\n // Create a new basic block to start insertion into.\n BasicBlock *BB = BasicBlock::Create(*TheContext, \"entry\", TheFunction);\n Builder->SetInsertPoint(BB);\n\n // Record the function arguments in the NamedValues map.\n NamedValues.clear();\n for (auto &Arg : TheFunction->args())\n NamedValues[std::string(Arg.getName())] = &Arg;\n\n if (Value *RetVal = Body->codegen()) {\n // Finish off the function.\n Builder->CreateRet(RetVal);\n\n // Validate the generated code, checking for consistency.\n verifyFunction(*TheFunction);\n\n // Run the optimizer on the function.\n TheFPM->run(*TheFunction, *TheFAM);\n\n return TheFunction;\n }\n\n // Error reading body, remove function.\n TheFunction->eraseFromParent();\n return nullptr;\n}\n\n//===----------------------------------------------------------------------===//\n// Top-Level parsing and JIT Driver\n//===----------------------------------------------------------------------===//\n\nstatic void InitializeModuleAndManagers() {\n // Open a new context and module.\n TheContext = std::make_unique<LLVMContext>();\n TheModule = std::make_unique<Module>(\"KaleidoscopeJIT\", *TheContext);\n TheModule->setDataLayout(TheJIT->getDataLayout());\n\n // Create a new builder for the module.\n Builder = std::make_unique<IRBuilder<>>(*TheContext);\n\n // Create new pass and analysis managers.\n TheFPM = std::make_unique<FunctionPassManager>();\n TheLAM = std::make_unique<LoopAnalysisManager>();\n TheFAM = std::make_unique<FunctionAnalysisManager>();\n TheCGAM = std::make_unique<CGSCCAnalysisManager>();\n TheMAM = std::make_unique<ModuleAnalysisManager>();\n ThePIC = std::make_unique<PassInstrumentationCallbacks>();\n TheSI = std::make_unique<StandardInstrumentations>(*TheContext,\n /*DebugLogging*/ true);\n TheSI->registerCallbacks(*ThePIC, TheMAM.get());\n\n // Add transform passes.\n // Do simple \"peephole\" optimizations and bit-twiddling optzns.\n TheFPM->addPass(InstCombinePass());\n // Reassociate expressions.\n TheFPM->addPass(ReassociatePass());\n // Eliminate Common SubExpressions.\n TheFPM->addPass(GVNPass());\n // Simplify the control flow graph (deleting unreachable blocks, etc).\n TheFPM->addPass(SimplifyCFGPass());\n\n // Register analysis passes used in these transform passes.\n PassBuilder PB;\n PB.registerModuleAnalyses(*TheMAM);\n PB.registerFunctionAnalyses(*TheFAM);\n PB.crossRegisterProxies(*TheLAM, *TheFAM, *TheCGAM, *TheMAM);\n}\n\nstatic void HandleDefinition() {\n if (auto FnAST = ParseDefinition()) {\n if (auto *FnIR = FnAST->codegen()) {\n fprintf(stderr, \"Read function definition:\");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n ExitOnErr(TheJIT->addModule(\n ThreadSafeModule(std::move(TheModule), std::move(TheContext))));\n InitializeModuleAndManagers();\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\nstatic void HandleExtern() {\n if (auto ProtoAST = ParseExtern()) {\n if (auto *FnIR = ProtoAST->codegen()) {\n fprintf(stderr, \"Read extern: \");\n FnIR->print(errs());\n fprintf(stderr, \"\\n\");\n FunctionProtos[ProtoAST->getName()] = std::move(ProtoAST);\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\nstatic void HandleTopLevelExpression() {\n // Evaluate a top-level expression into an anonymous function.\n if (auto FnAST = ParseTopLevelExpr()) {\n if (FnAST->codegen()) {\n // Create a ResourceTracker to track JIT'd memory allocated to our\n // anonymous expression -- that way we can free it after executing.\n auto RT = TheJIT->getMainJITDylib().createResourceTracker();\n\n auto TSM = ThreadSafeModule(std::move(TheModule), std::move(TheContext));\n ExitOnErr(TheJIT->addModule(std::move(TSM), RT));\n InitializeModuleAndManagers();\n\n // Search the JIT for the __anon_expr symbol.\n auto ExprSymbol = ExitOnErr(TheJIT->lookup(\"__anon_expr\"));\n\n // Get the symbol's address and cast it to the right type (takes no\n // arguments, returns a double) so we can call it as a native function.\n double (*FP)() = ExprSymbol.toPtr<double (*)()>();\n fprintf(stderr, \"Evaluated to %f\\n\", FP());\n\n // Delete the anonymous expression module from the JIT.\n ExitOnErr(RT->remove());\n }\n } else {\n // Skip token for error recovery.\n getNextToken();\n }\n}\n\n/// top ::= definition | external | expression | ';'\nstatic void MainLoop() {\n while (true) {\n fprintf(stderr, \"ready> \");\n switch (CurTok) {\n case tok_eof:\n return;\n case ';': // ignore top-level semicolons.\n getNextToken();\n break;\n case tok_def:\n HandleDefinition();\n break;\n case tok_extern:\n HandleExtern();\n break;\n default:\n HandleTopLevelExpression();\n break;\n }\n }\n}\n\n//===----------------------------------------------------------------------===//\n// \"Library\" functions that can be \"extern'd\" from user code.\n//===----------------------------------------------------------------------===//\n\n#ifdef _WIN32\n#define DLLEXPORT __declspec(dllexport)\n#else\n#define DLLEXPORT\n#endif\n\n/// putchard - putchar that takes a double and returns 0.\nextern \"C\" DLLEXPORT double putchard(double X) {\n fputc((char)X, stderr);\n return 0;\n}\n\n/// printd - printf that takes a double prints it as \"%f\\n\", returning 0.\nextern \"C\" DLLEXPORT double printd(double X) {\n fprintf(stderr, \"%f\\n\", X);\n return 0;\n}\n\n//===----------------------------------------------------------------------===//\n// Main driver code.\n//===----------------------------------------------------------------------===//\n\nint main() {\n InitializeNativeTarget();\n InitializeNativeTargetAsmPrinter();\n InitializeNativeTargetAsmParser();\n\n // Install standard binary operators.\n // 1 is lowest precedence.\n BinopPrecedence['<'] = 10;\n BinopPrecedence['+'] = 20;\n BinopPrecedence['-'] = 20;\n BinopPrecedence['*'] = 40; // highest.\n\n // Prime the first token.\n fprintf(stderr, \"ready> \");\n getNextToken();\n\n TheJIT = ExitOnErr(KaleidoscopeJIT::Create());\n\n InitializeModuleAndManagers();\n\n // Run the main \"interpreter loop\" now.\n MainLoop();\n\n return 0;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:52.978Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":21,"totalLines":1124,"estimatedTokens":7462}}378{"id":"doc-known_bits_analysis_llvm-745a3171","source":"documentation","title":"Known Bits Analysis - LLVM","url":"https://llvm.org/docs/GlobalISel/KnownBits.html","text":"Example:\n```text\na + 1\n```\n\nExample:\n```text\na | 1\n```\n\nExample:\n```text\n%1:(s32) = G_CONSTANT i32 0xFF0\n%2:(s32) = G_AND %0, %1\n%3:(s32) = G_CONSTANT i32 0x0FF\n%4:(s32) = G_AND %2, %3\n```\n\nExample:\n```text\n; %0 = 0x????????\n%1:(s32) = G_CONSTANT i32 0xFF0 ; %1 = 0x00000FF0\n%2:(s32) = G_AND %0, %1 ; %2 = 0x00000??0\n%3:(s32) = G_CONSTANT i32 0x0FF ; %3 = 0x000000FF\n%4:(s32) = G_AND %2, %3 ; %4 = 0x000000?0\n```\n\nExample:\n```text\n; %0 = 0x????????\n%5:(s32) = G_CONSTANT i32 0x0F0 ; %5 = 0x000000F0\n%4:(s32) = G_AND %0, %5 ; %4 = 0x000000?0\n```\n\nExample:\n```text\n#include \"llvm/CodeGen/GlobalISel/GISelValueTracking.h\"\n\n...\n\nINITIALIZE_PASS_BEGIN(...)\nINITIALIZE_PASS_DEPENDENCY(GISelValueTrackingAnalysisLegacy)\nINITIALIZE_PASS_END(...)\n```\n\nExample:\n```text\nvoid MyPass::getAnalysisUsage(AnalysisUsage &AU) const {\n AU.addRequired<GISelValueTrackingAnalysisLegacy>();\n // Optional: If your pass preserves known bits analysis (many do) then\n // indicate that it's preserved for re-use by another pass here.\n AU.addPreserved<GISelValueTrackingAnalysisLegacy>();\n}\n```\n\nExample:\n```text\nbool MyPass::runOnMachineFunction(MachineFunction &MF) {\n ...\n GISelValueTracking &VT = getAnalysis<GISelValueTrackingAnalysisLegacy>().get(MF);\n ...\n MachineInstr *MI = ...;\n KnownBits Known = VT.getKnownBits(MI->getOperand(0).getReg());\n if (Known.Zero[0]) {\n // Bit 0 is known to be zero\n }\n ...\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:52.998Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":71,"estimatedTokens":365}}379{"id":"doc-the_pdb_info_stream_aka_the_pdb_stream_llvm-2820d658","source":"documentation","title":"The PDB Info Stream (aka the PDB Stream) - LLVM","url":"https://llvm.org/docs/PDB/PdbStream.html","text":"Example:\n```text\nstruct PdbStreamHeader {\n ulittle32_t Version;\n ulittle32_t Signature;\n ulittle32_t Age;\n Guid UniqueId;\n};\n```\n\nExample:\n```text\nenum class PdbStreamVersion : uint32_t {\n VC2 = 19941610,\n VC4 = 19950623,\n VC41 = 19950814,\n VC50 = 19960307,\n VC98 = 19970604,\n VC70Dep = 19990604,\n VC70 = 20000404,\n VC80 = 20030901,\n VC110 = 20091201,\n VC140 = 20140508,\n};\n```\n\nExample:\n```text\nenum class PdbRaw_FeatureSig : uint32_t {\n VC110 = 20091201,\n VC140 = 20140508,\n NoTypeMerge = 0x4D544F4E,\n MinimalDebugInfo = 0x494E494D,\n};\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.029Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":37,"estimatedTokens":144}}380{"id":"doc-llvm_mca_llvm_machine_code_analyzer_llvm-28e1f723","source":"documentation","title":"llvm-mca - LLVM Machine Code Analyzer - LLVM","url":"https://llvm.org/docs/CommandGuide/llvm-mca.html","text":"Example:\n```text\n$ clang foo.c -O2 --target=x86_64 -S -o - | llvm-mca -mcpu=btver2\n```\n\nExample:\n```text\n$ clang foo.c -O2 --target=x86_64 -masm=intel -S -o - | llvm-mca -mcpu=btver2\n```\n\nExample:\n```text\n# LLVM-MCA-BEGIN\n ...\n# LLVM-MCA-END\n```\n\nExample:\n```text\n# LLVM-MCA-BEGIN A simple example\n add %eax, %eax\n# LLVM-MCA-END\n```\n\nExample:\n```text\n# LLVM-MCA-BEGIN foo\n add %eax, %edx\n# LLVM-MCA-BEGIN bar\n sub %eax, %edx\n# LLVM-MCA-END bar\n# LLVM-MCA-END foo\n```\n\nExample:\n```text\n# LLVM-MCA-BEGIN foo\n add %eax, %edx\n# LLVM-MCA-BEGIN bar\n sub %eax, %edx\n# LLVM-MCA-END foo\n add %eax, %edx\n# LLVM-MCA-END bar\n```\n\nExample:\n```text\nint foo(int a, int b) {\n __asm volatile(\"# LLVM-MCA-BEGIN foo\":::\"memory\");\n a += 42;\n __asm volatile(\"# LLVM-MCA-END\":::\"memory\");\n a *= b;\n return a;\n}\n```\n\nExample:\n```text\n# LLVM-MCA-<INSTRUMENT_TYPE> <data>\n ... ## asm\n```\n\nExample:\n```text\n# LLVM-MCA-LATENCY 100\nmov (%edi), %eax\n# LLVM-MCA-LATENCY\n```\n\nExample:\n```text\n# LLVM-MCA-RISCV-LMUL <M1|M2|M4|M8|MF2|MF4|MF8>\n```\n\nExample:\n```text\n# LLVM-MCA-RISCV-LMUL M2\nvadd.vv v2, v2, v2\n```\n\nExample:\n```text\nvsetvli zero, a0, e8, m1, tu, mu\n# LLVM-MCA-RISCV-LMUL M1\nvadd.vv v2, v2, v2\n```\n\nExample:\n```text\nvsetvli zero, a0, e8, m1, tu, mu\n# LLVM-MCA-RISCV-LMUL M1\nvadd.vv v2, v2, v2\nvsetvli zero, a0, e8, m8, tu, mu\n# LLVM-MCA-RISCV-LMUL M8\nvadd.vv v2, v2, v2\n```\n\nExample:\n```text\nvsetvl rd, rs1, rs2\n# LLVM-MCA-RISCV-LMUL M1\nvadd.vv v12, v12, v12\nvsetvl rd, rs1, rs2\n# LLVM-MCA-RISCV-LMUL M4\nvadd.vv v12, v12, v12\n```\n\nExample:\n```text\n$ llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=300 dot-product.s\n```\n\nExample:\n```text\nIterations: 300\nInstructions: 900\nTotal Cycles: 610\nTotal uOps: 900\n\nDispatch Width: 2\nuOps Per Cycle: 1.48\nIPC: 1.48\nBlock RThroughput: 2.0\n\n\nInstruction Info:\n[1]: #uOps\n[2]: Latency\n[3]: RThroughput\n[4]: MayLoad\n[5]: MayStore\n[6]: HasSideEffects (U)\n\n[1] [2] [3] [4] [5] [6] Instructions:\n 1 2 1.00 vmulps %xmm0, %xmm1, %xmm2\n 1 3 1.00 vhaddps %xmm2, %xmm2, %xmm3\n 1 3 1.00 vhaddps %xmm3, %xmm3, %xmm4\n\n\nResources:\n[0] - JALU0\n[1] - JALU1\n[2] - JDiv\n[3] - JFPA\n[4] - JFPM\n[5] - JFPU0\n[6] - JFPU1\n[7] - JLAGU\n[8] - JMul\n[9] - JSAGU\n[10] - JSTC\n[11] - JVALU0\n[12] - JVALU1\n[13] - JVIMUL\n\n\nResource pressure per iteration:\n[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]\n - - - 2.00 1.00 2.00 1.00 - - - - - - -\n\nResource pressure by instruction:\n[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions:\n - - - - 1.00 - 1.00 - - - - - - - vmulps %xmm0, %xmm1, %xmm2\n - - - 1.00 - 1.00 - - - - - - - - vhaddps %xmm2, %xmm2, %xmm3\n - - - 1.00 - 1.00 - - - - - - - - vhaddps %xmm3, %xmm3, %xmm4\n```\n\nExample:\n```text\nInstruction Info:\n[1]: #uOps\n[2]: Latency\n[3]: RThroughput\n[4]: MayLoad\n[5]: MayStore\n[6]: HasSideEffects (U)\n[7]: Encoding Size\n\n[1] [2] [3] [4] [5] [6] [7] Encodings: Instructions:\n 1 2 1.00 4 c5 f0 59 d0 vmulps %xmm0, %xmm1, %xmm2\n 1 4 1.00 4 c5 eb 7c da vhaddps %xmm2, %xmm2, %xmm3\n 1 4 1.00 4 c5 e3 7c e3 vhaddps %xmm3, %xmm3, %xmm4\n```\n\nExample:\n```text\n$ llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=btver2 -iterations=3 -timeline dot-product.s\n```\n\nExample:\n```text\nTimeline view:\n 012345\nIndex 0123456789\n\n[0,0] DeeER. . . vmulps %xmm0, %xmm1, %xmm2\n[0,1] D==eeeER . . vhaddps %xmm2, %xmm2, %xmm3\n[0,2] .D====eeeER . vhaddps %xmm3, %xmm3, %xmm4\n[1,0] .DeeE-----R . vmulps %xmm0, %xmm1, %xmm2\n[1,1] . D=eeeE---R . vhaddps %xmm2, %xmm2, %xmm3\n[1,2] . D====eeeER . vhaddps %xmm3, %xmm3, %xmm4\n[2,0] . DeeE-----R . vmulps %xmm0, %xmm1, %xmm2\n[2,1] . D====eeeER . vhaddps %xmm2, %xmm2, %xmm3\n[2,2] . D======eeeER vhaddps %xmm3, %xmm3, %xmm4\n\n\nAverage Wait times (based on the timeline view):\n[0]: Executions\n[1]: Average time spent waiting in a scheduler's queue\n[2]: Average time spent waiting in a scheduler's queue while ready\n[3]: Average time elapsed from WB until retire stage\n\n [0] [1] [2] [3]\n0. 3 1.0 1.0 3.3 vmulps %xmm0, %xmm1, %xmm2\n1. 3 3.3 0.7 1.0 vhaddps %xmm2, %xmm2, %xmm3\n2. 3 5.7 0.0 0.0 vhaddps %xmm3, %xmm3, %xmm4\n 9 3.3 0.5 1.4 <total>\n```\n\nExample:\n```text\nCycles with backend pressure increase [ 48.07% ]\nThroughput Bottlenecks:\n Resource Pressure [ 47.77% ]\n - JFPA [ 47.77% ]\n - JFPU0 [ 47.77% ]\n Data Dependencies: [ 0.30% ]\n - Register Dependencies [ 0.30% ]\n - Memory Dependencies [ 0.00% ]\n\nCritical sequence based on the simulation:\n\n Instruction Dependency Information\n +----< 2. vhaddps %xmm3, %xmm3, %xmm4\n |\n | < loop carried >\n |\n | 0. vmulps %xmm0, %xmm1, %xmm2\n +----> 1. vhaddps %xmm2, %xmm2, %xmm3 ## RESOURCE interference: JFPA [ probability: 74% ]\n +----> 2. vhaddps %xmm3, %xmm3, %xmm4 ## REGISTER dependency: %xmm3\n |\n | < loop carried >\n |\n +----> 1. vhaddps %xmm2, %xmm2, %xmm3 ## RESOURCE interference: JFPA [ probability: 74% ]\n```\n\nExample:\n```text\nDynamic Dispatch Stall Cycles:\nRAT - Register unavailable: 0\nRCU - Retire tokens unavailable: 0\nSCHEDQ - Scheduler full: 272 (44.6%)\nLQ - Load queue full: 0\nSQ - Store queue full: 0\nGROUP - Static restrictions on the dispatch group: 0\n\n\nDispatch Logic - number of cycles where we saw N micro opcodes dispatched:\n[# dispatched], [# cycles]\n 0, 24 (3.9%)\n 1, 272 (44.6%)\n 2, 314 (51.5%)\n\n\nSchedulers - number of cycles where we saw N micro opcodes issued:\n[# issued], [# cycles]\n 0, 7 (1.1%)\n 1, 306 (50.2%)\n 2, 297 (48.7%)\n\nScheduler's queue usage:\n[1] Resource name.\n[2] Average number of used buffer entries.\n[3] Maximum number of used buffer entries.\n[4] Total number of buffer entries.\n\n [1] [2] [3] [4]\nJALU01 0 0 20\nJFPU01 17 18 18\nJLSAGU 0 0 12\n\n\nRetire Control Unit - number of cycles where we saw N instructions retired:\n[# retired], [# cycles]\n 0, 109 (17.9%)\n 1, 102 (16.7%)\n 2, 399 (65.4%)\n\nTotal ROB Entries: 64\nMax Used ROB Entries: 35 ( 54.7% )\nAverage Used ROB Entries per cy: 32 ( 50.0% )\n\n\nRegister File statistics:\nTotal number of mappings created: 900\nMax number of mappings used: 35\n\n* Register File #1 -- JFpuPRF:\n Number of physical registers: 72\n Total number of mappings created: 900\n Max number of mappings used: 35\n\n* Register File #2 -- JIntegerPRF:\n Number of physical registers: 64\n Total number of mappings created: 0\n Max number of mappings used: 0\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.032Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":21,"totalLines":309,"estimatedTokens":1922}}381{"id":"doc-core_pipeline_llvm-eab6b0e4","source":"documentation","title":"Core Pipeline - LLVM","url":"https://llvm.org/docs/GlobalISel/Pipeline.html","text":"Example:\n```text\n./bin/llvm-extract -o - -S -b ‘foo:bb1;bb4’ <input> > extracted.ll\n```\n\nExample:\n```text\nbb1:\n ... instructions group 1 ...\n ... instructions group 2 ...\n```\n\nExample:\n```text\nbb1:\n ... instructions group 1 ...\n br %bb2\n\nbb2:\n ... instructions group 2 ...\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.043Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":23,"estimatedTokens":74}}382{"id":"doc-kernelinfo_llvm-072b7d99","source":"documentation","title":"KernelInfo - LLVM","url":"https://llvm.org/docs/KernelInfo.html","text":"Example:\n```text\n$ clang -O2 -g -fopenmp --offload-arch=native test.c -foffload-lto \\\n -Rpass=kernel-info\n```\n\nExample:\n```text\n$ opt -disable-output test-openmp-nvptx64-nvidia-cuda-sm_70.bc \\\n -pass-remarks=kernel-info -passes=kernel-info\n```\n\nExample:\n```text\n$ clang -O2 -g -fopenmp --offload-arch=native test.c -foffload-lto \\\n -Rpass=kernel-info \\\n -Xoffload-linker --lto-newpm-passes='lto<O2>'\n\n$ clang -O2 -g -fopenmp --offload-arch=native test.c -foffload-lto \\\n -Rpass=kernel-info -mllvm -no-kernel-info-end-lto \\\n -Xoffload-linker --lto-newpm-passes='module(kernel-info),lto<O2>'\n\n$ opt -disable-output test-openmp-nvptx64-nvidia-cuda-sm_70.bc \\\n -pass-remarks=kernel-info \\\n -passes='lto<O2>'\n\n$ opt -disable-output test-openmp-nvptx64-nvidia-cuda-sm_70.bc \\\n -pass-remarks=kernel-info -no-kernel-info-end-lto \\\n -passes='module(kernel-info),lto<O2>'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.115Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":32,"estimatedTokens":228}}383{"id":"doc-how_to_cross_compile_clang_llvm_using_clang_llvm-8a320e2c","source":"documentation","title":"How to cross-compile Clang/LLVM using Clang/LLVM - LLVM","url":"https://llvm.org/docs/HowToCrossCompileLLVM.html","text":"Example:\n```text\nsudo debootstrap --arch=armhf --variant=minbase --include=build-essential,symlinks stable sysroot-deb-armhf-stable\nsudo debootstrap --arch=arm64 --variant=minbase --include=build-essential,symlinks stable sysroot-deb-arm64-stable\nsudo debootstrap --arch=riscv64 --variant=minbase --include=build-essential,symlinks unstable sysroot-deb-riscv64-unstable\n```\n\nExample:\n```text\nsudo chroot sysroot-of-your-choice symlinks -cr .\n```\n\nExample:\n```text\nSYSROOT=$HOME/sysroot-deb-arm64-stable\nTARGET=aarch64-linux-gnu\nCFLAGS=\"\"\n```\n\nExample:\n```text\ncat - <<EOF > $TARGET-clang.cmake\nset(CMAKE_SYSTEM_NAME Linux)\nset(CMAKE_SYSROOT \"$SYSROOT\")\nset(CMAKE_C_COMPILER_TARGET $TARGET)\nset(CMAKE_CXX_COMPILER_TARGET $TARGET)\nset(CMAKE_C_FLAGS_INIT \"$CFLAGS\")\nset(CMAKE_CXX_FLAGS_INIT \"$CFLAGS\")\nset(CMAKE_LINKER_TYPE LLD)\nset(CMAKE_C_COMPILER clang)\nset(CMAKE_CXX_COMPILER clang++)\nset(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)\nset(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)\nset(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)\nset(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)\nEOF\n```\n\nExample:\n```text\ncmake -G Ninja \\\n -DCMAKE_BUILD_TYPE=Release \\\n -DLLVM_ENABLE_PROJECTS=\"lld;clang\" \\\n -DCMAKE_TOOLCHAIN_FILE=$(pwd)/$TARGET-clang.cmake \\\n -DLLVM_HOST_TRIPLE=$TARGET \\\n -DCMAKE_INSTALL_PREFIX=$HOME/clang-$TARGET \\\n -S llvm \\\n -B build/$TARGET\ncmake --build build/$TARGET\n```\n\nExample:\n```text\nsudo ln -s usr/include $SYSROOT/include\n```\n\nExample:\n```text\n$ file -L ./build/aarch64-linux-gnu/bin/clang\n./build/aarch64-linux-gnu/bin/clang: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=516b8b366a790fcd3563bee4aec0cdfcb90bb1c7, not stripped\n```\n\nExample:\n```text\n$ qemu-aarch64-static -L $SYSROOT ./build/aarch64-linux-gnu/bin/clang --version\nclang version 21.0.0git (https://github.com/llvm/llvm-project cedfdc6e889c5c614a953ed1f44bcb45a405f8da)\nTarget: aarch64-unknown-linux-gnu\nThread model: posix\nInstalledDir: /home/asb/llvm-project/build/aarch64-linux-gnu/bin\n```\n\nExample:\n```text\n$ export QEMU_LD_PREFIX=$SYSROOT; ./build/aarch64-linux-gnu/bin/clang --version\nclang version 21.0.0git (https://github.com/llvm/llvm-project cedfdc6e889c5c614a953ed1f44bcb45a405f8da)\nTarget: aarch64-unknown-linux-gnu\nThread model: posix\nInstalledDir: /home/asb/llvm-project/build/aarch64-linux-gnu/bin\n```\n\nExample:\n```text\ncmake --build build/$TARGET --target=install\n```\n\nExample:\n```text\ntar -czvf clang-$TARGET.tar.gz -C $HOME clang-$TARGET\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.216Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":91,"estimatedTokens":639}}384{"id":"doc-llvm_dwarfutil_a_tool_to_copy_and_manipulate_deb-90b26b61","source":"documentation","title":"llvm-dwarfutil - A tool to copy and manipulate debug info - LLVM","url":"https://llvm.org/docs/CommandGuide/llvm-dwarfutil.html","text":"Example:\n```text\n:program:`llvm-objcopy` --only-keep-debug in-file out-file.debug\n:program:`llvm-objcopy` --strip-debug in-file out-file\n:program:`llvm-objcopy` --add-gnu-debuglink=out-file.debug out-file\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.327Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":56}}385{"id":"doc-web_onnxruntime-435a60ee","source":"documentation","title":"Web | onnxruntime","url":"https://onnxruntime.ai/docs/get-started/with-javascript/web.html","text":"ONNX RuntimeInstall ONNX Runtime Get StartedPythonC++CC#Java JavaScriptWebNode.js bindingReact NativeObjective-CJulia, Ruby and Rust APIsWindowsMobileOn-Device TrainingLarge Model Training TutorialsAPI Basics Accelerate PyTorchPyTorch InferenceInference on multiple targetsAccelerate PyTorch TrainingAccelerate TensorFlowAccelerate Hugging FaceDeploy on AzureML Deploy on mobileObject detection and pose estimation with YOLOv8Mobile image recognition on AndroidImprove image resolution on mobileMobile objection detection on iOSORT Mobile Model Export Helpers WebBuild a web app with ONNX RuntimeThe 'env' Flags and Session OptionsUsing WebGPUUsing WebNNWorking with Large ModelsPerformance DiagnosisDeploying ONNX Runtime WebTroubleshootingClassify images with ONNX Runtime and Next.jsCustom Excel Functions for BERT Tasks in JavaScript Deploy on IoT and edgeIoT Deployment on Raspberry PiDeploy traditional ML Inference with C#Basic C# TutorialInference BERT NLP with C#Configure CUDA for GPU with C#Image recognition with ResNet50v2 in C#Stable Diffusion with C#Object detection in C# using OpenVINOObject detection with Faster RCNN in C# On-Device TrainingBuilding an Android ApplicationBuilding an iOS ApplicationAPI Docs Build ONNX RuntimeBuild for inferencingBuild for trainingBuild with different EPsBuild for webBuild for AndroidBuild for iOSCustom build Execution ProvidersNVIDIA - CUDANVIDIA - TensorRTNVIDIA - TensorRT RTXIntel - OpenVINO™Intel - oneDNNWindows - DirectMLQualcomm - QNNAndroid - NNAPIApple - CoreMLXNNPACKAMD - ROCmAMD - MIGraphXAMD - Vitis AICloud - AzureWebGPU Community-maintainedArm - ACLArm - Arm NNApache - TVMRockchip - RKNPUHuawei - CANNAdd a new providerEP Context Design Plugin Execution Provider LibrariesUsageDevelopmentTestingPackaging Generate API (Preview) TutorialsPhi-3.5 vision tutorialPhi-3 tutorialPhi-2 tutorialRun with LoRA adaptersDeepSeek-R1-Distill tutorialRun on Snapdragon devices API docsPython APIC# APIC APIC++ APIJava API How toInstallBuild from sourceBuild modelsBuild models for SnapdragonTroubleshootMigratePast present share buffer ReferenceConfig referenceAdapter file spec ExtensionsAdd OperatorsBuild Performance Tune performanceProfiling toolsLogging & TracingMemory consumptionThread managementI/O BindingTroubleshooting Model optimizationsQuantize ONNX modelsFloat16 and mixed precision modelsGraph optimizationsORT model formatORT model format runtime optimizationTransformers optimizerEnd to end optimization with OliveDevice tensors EcosystemAzure Container for PyTorch (ACPT) ReferenceReleasesCompatibility OperatorsOperator kernelsContrib operatorsCustom operatorsReduced operator config fileArchitectureCiting ONNX RuntimeDependency Management in ONNX Runtime ONNX Runtime Docs on GitHub This site uses Just the Docs, a documentation theme for Jekyll.\n\nExample:\n```text\n# install latest release version\nnpm install onnxruntime-web\n\n# install nightly build dev version\nnpm install onnxruntime-web@dev\n```\n\nExample:\n```text\n// use ES6 style import syntax (recommended)\nimport * as ort from 'onnxruntime-web';\n```\n\nExample:\n```text\n// or use CommonJS style import syntax\nconst ort = require('onnxruntime-web');\n```\n\nExample:\n```text\n// use ES6 style import syntax (recommended)\nimport * as ort from 'onnxruntime-web/webgpu';\n```\n\nExample:\n```text\n// or use CommonJS style import syntax\nconst ort = require('onnxruntime-web/webgpu');\n```\n\nExample:\n```text\n// use ES6 style import syntax (recommended)\nimport * as ort from 'onnxruntime-web/experimental';\n```\n\nExample:\n```text\n// or use CommonJS style import syntax\nconst ort = require('onnxruntime-web/experimental');\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:56.270Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":7,"totalLines":48,"estimatedTokens":914}}386{"id":"doc-pytorch_inference_onnxruntime-63448724","source":"documentation","title":"PyTorch Inference | onnxruntime","url":"https://onnxruntime.ai/docs/tutorials/accelerate-pytorch/pytorch.html","text":"ONNX RuntimeInstall ONNX Runtime Get StartedPythonC++CC#Java JavaScriptWebNode.js bindingReact NativeObjective-CJulia, Ruby and Rust APIsWindowsMobileOn-Device TrainingLarge Model Training TutorialsAPI Basics Accelerate PyTorchPyTorch InferenceInference on multiple targetsAccelerate PyTorch TrainingAccelerate TensorFlowAccelerate Hugging FaceDeploy on AzureML Deploy on mobileObject detection and pose estimation with YOLOv8Mobile image recognition on AndroidImprove image resolution on mobileMobile objection detection on iOSORT Mobile Model Export Helpers WebBuild a web app with ONNX RuntimeThe 'env' Flags and Session OptionsUsing WebGPUUsing WebNNWorking with Large ModelsPerformance DiagnosisDeploying ONNX Runtime WebTroubleshootingClassify images with ONNX Runtime and Next.jsCustom Excel Functions for BERT Tasks in JavaScript Deploy on IoT and edgeIoT Deployment on Raspberry PiDeploy traditional ML Inference with C#Basic C# TutorialInference BERT NLP with C#Configure CUDA for GPU with C#Image recognition with ResNet50v2 in C#Stable Diffusion with C#Object detection in C# using OpenVINOObject detection with Faster RCNN in C# On-Device TrainingBuilding an Android ApplicationBuilding an iOS ApplicationAPI Docs Build ONNX RuntimeBuild for inferencingBuild for trainingBuild with different EPsBuild for webBuild for AndroidBuild for iOSCustom build Execution ProvidersNVIDIA - CUDANVIDIA - TensorRTNVIDIA - TensorRT RTXIntel - OpenVINO™Intel - oneDNNWindows - DirectMLQualcomm - QNNAndroid - NNAPIApple - CoreMLXNNPACKAMD - ROCmAMD - MIGraphXAMD - Vitis AICloud - AzureWebGPU Community-maintainedArm - ACLArm - Arm NNApache - TVMRockchip - RKNPUHuawei - CANNAdd a new providerEP Context Design Plugin Execution Provider LibrariesUsageDevelopmentTestingPackaging Generate API (Preview) TutorialsPhi-3.5 vision tutorialPhi-3 tutorialPhi-2 tutorialRun with LoRA adaptersDeepSeek-R1-Distill tutorialRun on Snapdragon devices API docsPython APIC# APIC APIC++ APIJava API How toInstallBuild from sourceBuild modelsBuild models for SnapdragonTroubleshootMigratePast present share buffer ReferenceConfig referenceAdapter file spec ExtensionsAdd OperatorsBuild Performance Tune performanceProfiling toolsLogging & TracingMemory consumptionThread managementI/O BindingTroubleshooting Model optimizationsQuantize ONNX modelsFloat16 and mixed precision modelsGraph optimizationsORT model formatORT model format runtime optimizationTransformers optimizerEnd to end optimization with OliveDevice tensors EcosystemAzure Container for PyTorch (ACPT) ReferenceReleasesCompatibility OperatorsOperator kernelsContrib operatorsCustom operatorsReduced operator config fileArchitectureCiting ONNX RuntimeDependency Management in ONNX Runtime ONNX Runtime Docs on GitHub This site uses Just the Docs, a documentation theme for Jekyll.\n\nExample:\n```text\nimport torch\nimport torch.nn as nn\nimport torchvision.transforms as T\nfrom torchvision.models import resnet18, ResNet18_Weights\n\n\nclass Predictor(nn.Module):\n\n def __init__(self):\n super().__init__()\n weights = ResNet18_Weights.DEFAULT\n self.resnet18 = resnet18(weights=weights, progress=False).eval()\n self.transforms = weights.transforms()\n\n def forward(self, x: torch.Tensor) -> torch.Tensor:\n with torch.no_grad():\n x = self.transforms(x)\n y_pred = self.resnet18(x)\n return y_pred.argmax(dim=1)\n```\n\nExample:\n```text\nmodel_name = \"bert-large-uncased-whole-word-masking-finetuned-squad\"\n\ntokenizer = transformers.BertTokenizer.from_pretrained(model_name)\nmodel = transformers.BertForQuestionAnswering.from_pretrained(model_name)\n```\n\nExample:\n```text\n# Save the entire model to PATH\ntorch.save(model, PATH)\n\n# Load the model from PATH and set eval mode for inference\nmodel = torch.load(PATH)\nmodel.eval()\n```\n\nExample:\n```text\n# Save the model parameters\ntorch.save(model.state_dict(), PATH)\n\n# Redeclare the model and load the saved parameters\nmodel = TheModel(...)\nmodel.load_state_dict(torch.load(PATH))\nmodel.eval()\n```\n\nExample:\n```text\n# Export to TorchScript\nscript = torch.jit.script(model, example)\n\n# Save scripted model\nscript.save(PATH)\n```\n\nExample:\n```text\n# Load scripted model\nmodel = torch.jit.load(PATH)\nmodel.eval()\n```\n\nExample:\n```text\n#include <torch/script.h>\n\n...\n\n torch::jit::script::Module module;\n try {\n // Deserialize the ScriptModule\n module = torch::jit::load(PATH);\n }\n catch (const c10::Error& e) {\n ...\n }\n\n...\n```\n\nExample:\n```text\n# Specify example data\nexample = ... \n\n# Export model to ONNX format\ntorch.onnx.export(model, PATH, example)\n```\n\nExample:\n```text\n// Allocate ONNXRuntime session\n auto memory_info = Ort::MemoryInfo::CreateCpu(OrtDeviceAllocator, OrtMemTypeCPU);\n Ort::Env env;\n Ort::Session session{env, ORT_TSTR(\"model.onnx\"), Ort::SessionOptions{nullptr}};\n\n // Allocate model inputs: fill in shape and size\n std::array<float, ...> input{};\n std::array<int64_t, ...> input_shape{...};\n Ort::Value input_tensor = Ort::Value::CreateTensor<float>(memory_info, input.data(), input.size(), input_shape.data(), input_shape.size());\n const char* input_names[] = {...};\n\n // Allocate model outputs: fill in shape and size\n std::array<float, ...> output{};\n std::array<int64_t, ...> output_shape{...};\n Ort::Value output_tensor = Ort::Value::CreateTensor<float>(memory_info, output.data(), output.size(), output_shape.data(), output_shape.size());\n const char* output_names[] = {...};\n\n // Run the model\n session_.Run(Ort::RunOptions{nullptr}, input_names, &input_tensor, 1, output_names, &output_tensor, 1);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:56.281Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":9,"totalLines":121,"estimatedTokens":1406}}387{"id":"doc-vulnerabilities_api_gitlab_docs-c2760021","source":"documentation","title":"Vulnerabilities API | GitLab Docs","url":"https://docs.gitlab.com/api/vulnerabilities/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint Confirm a vulnerabilityConfirms a specified vulnerability. Returns status code 304 if the vulnerability is already confirmed.If an authenticated user does not have permission to change vulnerability status, this request results in a 403 status code.POST /vulnerabilities/:id/confirmAttributeTypeRequiredDescriptionidinteger or stringyesThe ID of a vulnerability to confirmcurl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/confirm\"Example response:{ \"id\": 2, \"title\": \"Predictable pseudorandom number generator\", \"description\": null, \"state\": \"confirmed\", \"severity\": \"medium\", \"confidence\": \"medium\", \"report_type\": \"sast\", \"project\": { \"id\": 32, \"name\": \"security-reports\", \"full_path\": \"/gitlab-examples/security/security-reports\", \"full_name\": \"gitlab-examples / security / security-reports\" }, \"author_id\": 1, \"closed_by_id\": null, \"created_at\": \"2019-10-13T15:08:40.219Z\", \"updated_at\": \"2019-10-13T15:09:40.382Z\", \"closed_at\": null }Resolve a vulnerabilityResolves a specified vulnerability. Returns status code 304 if the vulnerability is already resolved.If an authenticated user does not have permission to change vulnerability status, this request results in a 403 status code.POST /vulnerabilities/:id/resolveAttributeTypeRequiredDescriptionidinteger or stringyesThe ID of a Vulnerability to resolvecurl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/resolve\"Example response:{ \"id\": 2, \"title\": \"Predictable pseudorandom number generator\", \"description\": null, \"state\": \"resolved\", \"severity\": \"medium\", \"confidence\": \"medium\", \"report_type\": \"sast\", \"project\": { \"id\": 32, \"name\": \"security-reports\", \"full_path\": \"/gitlab-examples/security/security-reports\", \"full_name\": \"gitlab-examples / security / security-reports\" }, \"author_id\": 1, \"closed_by_id\": null, \"created_at\": \"2019-10-13T15:08:40.219Z\", \"updated_at\": \"2019-10-13T15:09:40.382Z\", \"closed_at\": null }Dismiss a vulnerabilityDismisses a specified vulnerability. Returns status code 304 if the vulnerability is already dismissed.If an authenticated user does not have permission to change vulnerability status, this request results in a 403 status code.POST /vulnerabilities/:id/dismissAttributeTypeRequiredDescriptionidinteger or stringyesThe ID of a vulnerability to dismisscurl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/dismiss\"Example response:{ \"id\": 2, \"title\": \"Predictable pseudorandom number generator\", \"description\": null, \"state\": \"closed\", \"severity\": \"medium\", \"confidence\": \"medium\", \"report_type\": \"sast\", \"project\": { \"id\": 32, \"name\": \"security-reports\", \"full_path\": \"/gitlab-examples/security/security-reports\", \"full_name\": \"gitlab-examples / security / security-reports\" }, \"author_id\": 1, \"closed_by_id\": null, \"created_at\": \"2019-10-13T15:08:40.219Z\", \"updated_at\": \"2019-10-13T15:09:40.382Z\", \"closed_at\": null }Revert a vulnerability to the detected stateReverts a specified vulnerability to the detected state. Returns status code 304 if the vulnerability is already in the detected state.If an authenticated user does not have permission to change vulnerability status, this request results in a 403 status code.POST /vulnerabilities/:id/revertAttributeTypeRequiredDescriptionidinteger or stringyesThe ID of a vulnerability to revert to the detected statecurl --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/revert\"Example response:{ \"id\": 2, \"title\": \"Predictable pseudorandom number generator\", \"description\": null, \"state\": \"detected\", \"severity\": \"medium\", \"confidence\": \"medium\", \"report_type\": \"sast\", \"project\": { \"id\": 32, \"name\": \"security-reports\", \"full_path\": \"/gitlab-examples/security/security-reports\", \"full_name\": \"gitlab-examples / security / security-reports\" }, \"author_id\": 1, \"closed_by_id\": null, \"created_at\": \"2019-10-13T15:08:40.219Z\", \"updated_at\": \"2019-10-13T15:09:40.382Z\", \"closed_at\": null }Replace Vulnerability REST API with GraphQLTo prepare for the upcoming deprecation of the Vulnerability REST API endpoint, use the examples below to perform the equivalent operations with the GraphQL API.GraphQL - Single vulnerabilityUse Query.vulnerability.{ vulnerability(id: \"gid://gitlab/Vulnerability/20345379\") { title description state severity reportType project { id name fullPath } detectedAt confirmedAt resolvedAt resolvedBy { id username } } }Example response:{ \"data\": { \"vulnerability\": { \"title\": \"Improper Input Validation in railties\", \"description\": \"A remote code execution vulnerability in development mode Rails beta3 can allow an attacker to guess the automatically generated development mode secret token. This secret token can be used in combination with other Rails internals to escalate to a remote code execution exploit.\", \"state\": \"RESOLVED\", \"severity\": \"CRITICAL\", \"reportType\": \"DEPENDENCY_SCANNING\", \"project\": { \"id\": \"gid://gitlab/Project/6102100\", \"name\": \"security-reports\", \"fullPath\": \"gitlab-examples/security/security-reports\" }, \"detectedAt\": \"2021-10-14T03:13:41Z\", \"confirmedAt\": \"2021-12-14T01:45:56Z\", \"resolvedAt\": \"2021-12-14T01:45:59Z\", \"resolvedBy\": { \"id\": \"gid://gitlab/User/480804\", \"username\": \"thiagocsf\" } } } }GraphQL - Confirm vulnerabilityUse Mutation.vulnerabilityConfirm.mutation { vulnerabilityConfirm(input: { id: \"gid://gitlab/Vulnerability/23577695\"}) { vulnerability { state } errors } }Example response:{ \"data\": { \"vulnerabilityConfirm\": { \"vulnerability\": { \"state\": \"CONFIRMED\" }, \"errors\": [] } } }GraphQL - Resolve vulnerabilityUse Mutation.vulnerabilityResolve.mutation { vulnerabilityResolve(input: { id: \"gid://gitlab/Vulnerability/23577695\"}) { vulnerability { state } errors } }Example response:{ \"data\": { \"vulnerabilityConfirm\": { \"vulnerability\": { \"state\": \"RESOLVED\" }, \"errors\": [] } } }GraphQL - Dismiss vulnerabilityUse Mutation.vulnerabilityDismiss.mutation { vulnerabilityDismiss(input: { id: \"gid://gitlab/Vulnerability/23577695\"}) { vulnerability { state } errors } }Example response:{ \"data\": { \"vulnerabilityConfirm\": { \"vulnerability\": { \"state\": \"DISMISSED\" }, \"errors\": [] } } }GraphQL - Revert vulnerability to the detected stateUse Mutation.vulnerabilityRevertToDetected.mutation { vulnerabilityRevertToDetected(input: { id: \"gid://gitlab/Vulnerability/20345379\"}) { vulnerability { state } errors } }Example response:{ \"data\": { \"vulnerabilityConfirm\": { \"vulnerability\": { \"state\": \"DETECTED\" }, \"errors\": [] } } }Retrieve a vulnerabilityConfirm a vulnerabilityResolve a vulnerabilityDismiss a vulnerabilityRevert a vulnerability to the detected stateReplace Vulnerability REST API with GraphQLGraphQL - Single vulnerabilityGraphQL - Confirm vulnerabilityGraphQL - Resolve vulnerabilityGraphQL - Dismiss vulnerabilityGraphQL - Revert vulnerability to the detected state\n\nExample:\n```plaintext\nGET /vulnerabilities/:id\n```\n\nExample:\n```shell\ncurl --request GET \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/vulnerabilities/1\"\n```\n\nExample:\n```json\n{\n \"id\": 1,\n \"title\": \"Predictable pseudorandom number generator\",\n \"description\": null,\n \"state\": \"opened\",\n \"severity\": \"medium\",\n \"confidence\": \"medium\",\n \"report_type\": \"sast\",\n \"project\": {\n \"id\": 32,\n \"name\": \"security-reports\",\n \"full_path\": \"/gitlab-examples/security/security-reports\",\n \"full_name\": \"gitlab-examples / security / security-reports\"\n },\n \"author_id\": 1,\n \"closed_by_id\": null,\n \"created_at\": \"2019-10-13T15:08:40.219Z\",\n \"updated_at\": \"2019-10-13T15:09:40.382Z\",\n \"closed_at\": null\n}\n```\n\nExample:\n```plaintext\nPOST /vulnerabilities/:id/confirm\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/confirm\"\n```\n\nExample:\n```json\n{\n \"id\": 2,\n \"title\": \"Predictable pseudorandom number generator\",\n \"description\": null,\n \"state\": \"confirmed\",\n \"severity\": \"medium\",\n \"confidence\": \"medium\",\n \"report_type\": \"sast\",\n \"project\": {\n \"id\": 32,\n \"name\": \"security-reports\",\n \"full_path\": \"/gitlab-examples/security/security-reports\",\n \"full_name\": \"gitlab-examples / security / security-reports\"\n },\n \"author_id\": 1,\n \"closed_by_id\": null,\n \"created_at\": \"2019-10-13T15:08:40.219Z\",\n \"updated_at\": \"2019-10-13T15:09:40.382Z\",\n \"closed_at\": null\n}\n```\n\nExample:\n```plaintext\nPOST /vulnerabilities/:id/resolve\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/resolve\"\n```\n\nExample:\n```json\n{\n \"id\": 2,\n \"title\": \"Predictable pseudorandom number generator\",\n \"description\": null,\n \"state\": \"resolved\",\n \"severity\": \"medium\",\n \"confidence\": \"medium\",\n \"report_type\": \"sast\",\n \"project\": {\n \"id\": 32,\n \"name\": \"security-reports\",\n \"full_path\": \"/gitlab-examples/security/security-reports\",\n \"full_name\": \"gitlab-examples / security / security-reports\"\n },\n \"author_id\": 1,\n \"closed_by_id\": null,\n \"created_at\": \"2019-10-13T15:08:40.219Z\",\n \"updated_at\": \"2019-10-13T15:09:40.382Z\",\n \"closed_at\": null\n}\n```\n\nExample:\n```plaintext\nPOST /vulnerabilities/:id/dismiss\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/dismiss\"\n```\n\nExample:\n```json\n{\n \"id\": 2,\n \"title\": \"Predictable pseudorandom number generator\",\n \"description\": null,\n \"state\": \"closed\",\n \"severity\": \"medium\",\n \"confidence\": \"medium\",\n \"report_type\": \"sast\",\n \"project\": {\n \"id\": 32,\n \"name\": \"security-reports\",\n \"full_path\": \"/gitlab-examples/security/security-reports\",\n \"full_name\": \"gitlab-examples / security / security-reports\"\n },\n \"author_id\": 1,\n \"closed_by_id\": null,\n \"created_at\": \"2019-10-13T15:08:40.219Z\",\n \"updated_at\": \"2019-10-13T15:09:40.382Z\",\n \"closed_at\": null\n}\n```\n\nExample:\n```plaintext\nPOST /vulnerabilities/:id/revert\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/vulnerabilities/5/revert\"\n```\n\nExample:\n```json\n{\n \"id\": 2,\n \"title\": \"Predictable pseudorandom number generator\",\n \"description\": null,\n \"state\": \"detected\",\n \"severity\": \"medium\",\n \"confidence\": \"medium\",\n \"report_type\": \"sast\",\n \"project\": {\n \"id\": 32,\n \"name\": \"security-reports\",\n \"full_path\": \"/gitlab-examples/security/security-reports\",\n \"full_name\": \"gitlab-examples / security / security-reports\"\n },\n \"author_id\": 1,\n \"closed_by_id\": null,\n \"created_at\": \"2019-10-13T15:08:40.219Z\",\n \"updated_at\": \"2019-10-13T15:09:40.382Z\",\n \"closed_at\": null\n}\n```\n\nExample:\n```graphql\n{\n vulnerability(id: \"gid://gitlab/Vulnerability/20345379\") {\n title\n description\n state\n severity\n reportType\n project {\n id\n name\n fullPath\n }\n detectedAt\n confirmedAt\n resolvedAt\n resolvedBy {\n id\n username\n }\n }\n}\n```\n\nExample:\n```json\n{\n \"data\": {\n \"vulnerability\": {\n \"title\": \"Improper Input Validation in railties\",\n \"description\": \"A remote code execution vulnerability in development mode Rails beta3 can allow an attacker to guess the automatically generated development mode secret token. This secret token can be used in combination with other Rails internals to escalate to a remote code execution exploit.\",\n \"state\": \"RESOLVED\",\n \"severity\": \"CRITICAL\",\n \"reportType\": \"DEPENDENCY_SCANNING\",\n \"project\": {\n \"id\": \"gid://gitlab/Project/6102100\",\n \"name\": \"security-reports\",\n \"fullPath\": \"gitlab-examples/security/security-reports\"\n },\n \"detectedAt\": \"2021-10-14T03:13:41Z\",\n \"confirmedAt\": \"2021-12-14T01:45:56Z\",\n \"resolvedAt\": \"2021-12-14T01:45:59Z\",\n \"resolvedBy\": {\n \"id\": \"gid://gitlab/User/480804\",\n \"username\": \"thiagocsf\"\n }\n }\n }\n}\n```\n\nExample:\n```graphql\nmutation {\n vulnerabilityConfirm(input: { id: \"gid://gitlab/Vulnerability/23577695\"}) {\n vulnerability {\n state\n }\n errors\n }\n}\n```\n\nExample:\n```json\n{\n \"data\": {\n \"vulnerabilityConfirm\": {\n \"vulnerability\": {\n \"state\": \"CONFIRMED\"\n },\n \"errors\": []\n }\n }\n}\n```\n\nExample:\n```graphql\nmutation {\n vulnerabilityResolve(input: { id: \"gid://gitlab/Vulnerability/23577695\"}) {\n vulnerability {\n state\n }\n errors\n }\n}\n```\n\nExample:\n```json\n{\n \"data\": {\n \"vulnerabilityConfirm\": {\n \"vulnerability\": {\n \"state\": \"RESOLVED\"\n },\n \"errors\": []\n }\n }\n}\n```\n\nExample:\n```graphql\nmutation {\n vulnerabilityDismiss(input: { id: \"gid://gitlab/Vulnerability/23577695\"}) {\n vulnerability {\n state\n }\n errors\n }\n}\n```\n\nExample:\n```json\n{\n \"data\": {\n \"vulnerabilityConfirm\": {\n \"vulnerability\": {\n \"state\": \"DISMISSED\"\n },\n \"errors\": []\n }\n }\n}\n```\n\nExample:\n```graphql\nmutation {\n vulnerabilityRevertToDetected(input: { id: \"gid://gitlab/Vulnerability/20345379\"}) {\n vulnerability {\n state\n }\n errors\n }\n}\n```\n\nExample:\n```json\n{\n \"data\": {\n \"vulnerabilityConfirm\": {\n \"vulnerability\": {\n \"state\": \"DETECTED\"\n },\n \"errors\": []\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.091Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":25,"totalLines":339,"estimatedTokens":3648}}388{"id":"doc-troubleshooting_docker_build_gitlab_docs-dbcf5453","source":"documentation","title":"Troubleshooting Docker Build | GitLab Docs","url":"https://docs.gitlab.com/ci/docker/docker_build_troubleshooting/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationGetting startedTutorialsCI/CD YAML syntax referenceRunnersPipelinesJobsControl how jobs runJob inputsFormat scripts and job logsJob execution flowCachingArtifactsSSH keysDockerRun CI/CD jobs in Docker containersUse Docker to build Docker imagesUse Docker-in-DockerAuthenticate with registryDocker layer cachingTroubleshootingUse BuildKit to build Docker imagesUse Buildah to build multi-platform Buildah in a rootless container on OpenShiftServicesGit submodulesAccess a terminal for a running jobCI/CD job logsCI/CD componentsCI/CD inputsCI/CD variablesPipeline securityGitLab Secrets ManagerExternal secretsDebuggingAuto DevOpsTestingCI/CD sustainabilityGoogle Cloud integrationMigrate to GitLab CI/CDExternal repository integrationsMobile DevOpsSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Use CI/CD to build your … /Jobs /Docker /Use Docker to build Dock… /TroubleshootingHelp us learn about your current experience with the documentation. Take the survey.Troubleshooting Docker : Cannot connect to the Docker daemon at tcp://docker:2375This error is common when you are using Docker-in-Docker v19.03 or : Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?This error occurs because Docker starts on TLS automatically.If this is your first time setting it up, see use the Docker executor with the Docker image.If you are upgrading from v18.09 or earlier, see the upgrade guide.This error can also occur with the Kubernetes executor when attempts are made to access the Docker-in-Docker service before it has fully started up. For a more detailed explanation, see issue 27215.Docker no such host errorYou might get an error that says during https://docker:2376/v1.40/containers/create: dial docker on x.x.x.x:53: no such host.This issue can occur when the service’s image name includes a registry hostname. For : :24.0.5-cli registry.hub.docker.com/library/docker:24.0.5-dindA service’s hostname is derived from the full image name. However, the shorter service hostname docker is expected. To allow service resolution and access, add an explicit alias for the service name : :24.0.5-cli /library/docker:24.0.5-dind : Cannot connect to the Docker daemon at unix:///var/run/docker.sockYou might get the following error when trying to run a docker command to access a dind service:$ docker ps Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?Make sure your job has defined these environment (optional)DOCKER_TLS_VERIFY (optional)You may also want to update the image that provides the Docker client. For example, the docker/compose images are obsolete and should be replaced with docker.As described in runner issue 30944, this error can happen if your job previously relied on environment variables derived from the deprecated Docker --link parameter, such as DOCKER_PORT_2375_TCP. Your job fails with this error CI/CD image relies on a legacy variable, such as DOCKER_PORT_2375_TCP.The runner feature flag FF_NETWORK_PER_BUILD is set to true.DOCKER_HOST is not explicitly set.Error: username or passwordThis error appears when you use the deprecated variable, response from \"https://registry-1.docker.io/v2/\": username or passwordTo prevent users from receiving this error, you CI_JOB_TOKEN instead.Change from gitlab-ci-token/CI_BUILD_TOKEN to $CI_REGISTRY_USER/$CI_REGISTRY_PASSWORD.Error during such hostThis error appears when the dind service has failed to during \"https://docker:2376/v1.24/auth\": dial docker on 127.0.0.11:53: no such hostCheck the job log to see if denied (are you root?) appears. For container :04:09.541703572Z Certificate request self-signature ok :09.541770852Z subject=CN = server :09.556183222Z /certs/server/cert.pem: OK :10.641128729Z Certificate request self-signature ok :10.641173149Z subject=CN = client :10.656089908Z /certs/client/cert.pem: OK :10.659571093Z 't find device 'ip_tables' :10.660872131Z 't change directory to '/lib/modules': No such file or directory :10.664620455Z denied (are you root?) :10.664692175Z Could not mount /sys/kernel/security. :10.664703615Z AppArmor detection and --privileged mode might break. :10.665952353Z denied (are you root?)This indicates the GitLab Runner does not have permission to start the dind that privileged = true is set in the config.toml.Make sure the CI job has the right Runner tags to use these privileged runners.Error: mountpoint does not is a known incompatibility introduced by Docker Engine 20.10.When the host uses Docker Engine 20.10 or later, then the service in a version older than 20.10 does not work as expected.While the service itself starts without problems, trying to build the container image results in the : cgroup mountpoint does not resolve this issue, update the container to version at least 20.10.x, for example opposite configuration (docker:24.0.5-dind service and Docker Engine on the host in version 19.06.x or older) works without problems. For the best strategy, you should frequently test and update job environment versions to the newest. This brings new features and improved security. For this specific case, it also makes the upgrade on the underlying Docker Engine on the runner’s host transparent for the job.Error: failed to verify : certificate signed by unknown authorityThis error can appear when Docker commands like docker build or docker pull are executed in a Docker-in-Docker environment where custom or private certificates are used (for example, Zscaler certificates):error pulling image failed after attempts=6: to verify : certificate signed by unknown authorityThis error occurs because Docker commands in a Docker-in-Docker environment use two separate build container runs the Docker client (/usr/bin/docker) and executes your job’s script commands.The service container (often named svc) runs the Docker daemon that processes most Docker commands.When your organization uses custom certificates, both containers need these certificates. Without proper certificate configuration in both containers, Docker operations that connect to external registries or services fail with certificate errors.To resolve this your root certificate as a CI/CD variable named CA_CERTIFICATE. The certificate should be in this CERTIFICATE----- (certificate content) -----END CERTIFICATE-----Configure your pipeline to install the certificate in the service container before starting the Docker daemon. For : : : tcp://localhost:2375 DOCKER_TLS_CERTDIR: \"\" CA_CERTIFICATE: \"$CA_CERTIFICATE\" :19.03-dind /bin/sh - -c - | echo \"$CA_CERTIFICATE\" > /usr/local/share/ca-certificates/custom-ca.crt && \\ update-ca-certificates && \\ dockerd-entrypoint.sh || exit docker info - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY - docker build -t \"${DOCKER_REGISTRY}/my-app:${CI_COMMIT_REF_NAME}\" . - docker push \"${DOCKER_REGISTRY}/my-app:${CI_COMMIT_REF_NAME}\"Error: connect to the Docker daemon at tcp://docker:2375Docker no such host connect to the Docker daemon at unix:///var/run/docker.sockError: username or passwordError during such : cgroup mountpoint does not : failed to verify : certificate signed by unknown authority\n\nExample:\n```plaintext\ndocker: Cannot connect to the Docker daemon at tcp://docker:2375. Is the docker daemon running?\n```\n\nExample:\n```yaml\ndefault:\n image: docker:24.0.5-cli\n services:\n - registry.hub.docker.com/library/docker:24.0.5-dind\n```\n\nExample:\n```yaml\ndefault:\n image: docker:24.0.5-cli\n services:\n - name: registry.hub.docker.com/library/docker:24.0.5-dind\n alias: docker\n```\n\nExample:\n```shell\n$ docker ps\nCannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?\n```\n\nExample:\n```plaintext\nError response from daemon: Get \"https://registry-1.docker.io/v2/\": unauthorized: incorrect username or password\n```\n\nExample:\n```plaintext\nerror during connect: Post \"https://docker:2376/v1.24/auth\": dial tcp: lookup docker on 127.0.0.11:53: no such host\n```\n\nExample:\n```plaintext\nService container logs:\n2023-08-01T16:04:09.541703572Z Certificate request self-signature ok\n2023-08-01T16:04:09.541770852Z subject=CN = docker:dind server\n2023-08-01T16:04:09.556183222Z /certs/server/cert.pem: OK\n2023-08-01T16:04:10.641128729Z Certificate request self-signature ok\n2023-08-01T16:04:10.641173149Z subject=CN = docker:dind client\n2023-08-01T16:04:10.656089908Z /certs/client/cert.pem: OK\n2023-08-01T16:04:10.659571093Z ip: can't find device 'ip_tables'\n2023-08-01T16:04:10.660872131Z modprobe: can't change directory to '/lib/modules': No such file or directory\n2023-08-01T16:04:10.664620455Z mount: permission denied (are you root?)\n2023-08-01T16:04:10.664692175Z Could not mount /sys/kernel/security.\n2023-08-01T16:04:10.664703615Z AppArmor detection and --privileged mode might break.\n2023-08-01T16:04:10.665952353Z mount: permission denied (are you root?)\n```\n\nExample:\n```plaintext\ncgroups: cgroup mountpoint does not exist: unknown\n```\n\nExample:\n```plaintext\nerror pulling image configuration: download failed after attempts=6: tls: failed to verify certificate: x509: certificate signed by unknown authority\n```\n\nExample:\n```plaintext\n-----BEGIN CERTIFICATE-----\n(certificate content)\n-----END CERTIFICATE-----\n```\n\nExample:\n```yaml\nimage_build:\n stage: build\n image:\n name: docker:19.03\n variables:\n DOCKER_HOST: tcp://localhost:2375\n DOCKER_TLS_CERTDIR: \"\"\n CA_CERTIFICATE: \"$CA_CERTIFICATE\"\n services:\n - name: docker:19.03-dind\n command:\n - /bin/sh\n - -c\n - |\n echo \"$CA_CERTIFICATE\" > /usr/local/share/ca-certificates/custom-ca.crt && \\\n update-ca-certificates && \\\n dockerd-entrypoint.sh || exit\n script:\n - docker info\n - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD $DOCKER_REGISTRY\n - docker build -t \"${DOCKER_REGISTRY}/my-app:${CI_COMMIT_REF_NAME}\" .\n - docker push \"${DOCKER_REGISTRY}/my-app:${CI_COMMIT_REF_NAME}\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.113Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":11,"totalLines":101,"estimatedTokens":2577}}389{"id":"doc-plan_limits_api_gitlab_docs-7e9b72c0","source":"documentation","title":"Plan limits API | GitLab Docs","url":"https://docs.gitlab.com/api/plan_limits/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint Update plan limitsUpdates the limits of a plan on the GitLab instance.PUT /application/plan_limitsAttributeTypeRequiredDescriptionplan_namestringyesName of the plan to update.ci_instance_level_variablesintegernoMaximum number of Instance-level CI/CD variables that can be defined.ci_pipeline_sizeintegernoMaximum number of jobs in a single pipeline.ci_active_jobsintegernoTotal number of jobs in currently active pipelines.ci_project_subscriptionsintegernoMaximum number of pipeline subscriptions to and from a project.ci_pipeline_schedulesintegernoMaximum number of pipeline schedules.ci_needs_size_limitintegernoMaximum number of needs dependencies that a job can have.ci_registered_group_runnersintegernoMaximum number of runners created or active in a group during the past seven days.ci_registered_project_runnersintegernoMaximum number of runners created or active in a project during the past seven days.dotenv_sizeintegernoMaximum size of a dotenv artifact in bytes. Introduced in GitLab 17.1.dotenv_variablesintegernoMaximum number of variables in a dotenv artifact. Introduced in GitLab 17.1.cargo_max_file_sizeintegernoMaximum Cargo package file size in bytes. Introduced in GitLab 19.3.conan_max_file_sizeintegernoMaximum Conan package file size in bytes.enforcement_limitintegernoMaximum storage size for root namespace limit enforcement in MiB.generic_packages_max_file_sizeintegernoMaximum generic package file size in bytes.helm_max_file_sizeintegernoMaximum Helm chart file size in bytes.maven_max_file_sizeintegernoMaximum Maven package file size in bytes.notification_limitintegernoMaximum storage size for root namespace limit notifications in MiB.npm_max_file_sizeintegernoMaximum NPM package file size in bytes.nuget_max_file_sizeintegernoMaximum NuGet package file size in bytes.max_pipelines_per_merge_trainintegernoMaximum number of parallel pipelines per merge train. Default Minimum Introduced in GitLab 19.0.pipeline_hierarchy_sizeintegernoMaximum number of downstream pipelines in a pipeline’s hierarchy tree. Default Values greater than 1000 are not recommended.pypi_max_file_sizeintegernoMaximum PyPI package file size in bytes.terraform_module_max_file_sizeintegernoMaximum Terraform Module package file size in bytes.storage_size_limitintegernoMaximum storage size for the root namespace in MiB.web_hook_callsintegernoMaximum number of times a webhook can be called per minute per top-level namespace. Introduced in GitLab 18.5.curl --request PUT \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/application/plan_limits?plan_name=default&conan_max_file_size=3221225472\"Example response:{ \"ci_instance_level_variables\": 25, \"ci_pipeline_size\": 0, \"ci_active_jobs\": 0, \"ci_project_subscriptions\": 2, \"ci_pipeline_schedules\": 10, \"ci_needs_size_limit\": 50, \"ci_registered_group_runners\": 1000, \"ci_registered_project_runners\": 1000, \"cargo_max_file_size\": 5368709120, \"conan_max_file_size\": 3221225472, \"dotenv_variables\": 20, \"dotenv_size\": 5120, \"generic_packages_max_file_size\": 5368709120, \"helm_max_file_size\": 5242880, \"maven_max_file_size\": 3221225472, \"npm_max_file_size\": 524288000, \"nuget_max_file_size\": 524288000, \"max_pipelines_per_merge_train\": 20, \"pipeline_hierarchy_size\": 1000, \"pypi_max_file_size\": 3221225472, \"terraform_module_max_file_size\": 1073741824 }Retrieve current plan limitsUpdate plan limits\n\nExample:\n```plaintext\nGET /application/plan_limits\n```\n\nExample:\n```shell\ncurl --request GET \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/application/plan_limits\"\n```\n\nExample:\n```json\n{\n \"ci_instance_level_variables\": 25,\n \"ci_pipeline_size\": 0,\n \"ci_active_jobs\": 0,\n \"ci_project_subscriptions\": 2,\n \"ci_pipeline_schedules\": 10,\n \"ci_needs_size_limit\": 50,\n \"ci_registered_group_runners\": 1000,\n \"ci_registered_project_runners\": 1000,\n \"dotenv_size\": 5120,\n \"dotenv_variables\": 20,\n \"cargo_max_file_size\": 5368709120,\n \"conan_max_file_size\": 3221225472,\n \"enforcement_limit\": 10000,\n \"generic_packages_max_file_size\": 5368709120,\n \"helm_max_file_size\": 5242880,\n \"notification_limit\": 10000,\n \"maven_max_file_size\": 3221225472,\n \"npm_max_file_size\": 524288000,\n \"nuget_max_file_size\": 524288000,\n \"max_pipelines_per_merge_train\": 20,\n \"pipeline_hierarchy_size\": 1000,\n \"pypi_max_file_size\": 3221225472,\n \"terraform_module_max_file_size\": 1073741824,\n \"storage_size_limit\": 15000\n}\n```\n\nExample:\n```plaintext\nPUT /application/plan_limits\n```\n\nExample:\n```shell\ncurl --request PUT \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/application/plan_limits?plan_name=default&conan_max_file_size=3221225472\"\n```\n\nExample:\n```json\n{\n \"ci_instance_level_variables\": 25,\n \"ci_pipeline_size\": 0,\n \"ci_active_jobs\": 0,\n \"ci_project_subscriptions\": 2,\n \"ci_pipeline_schedules\": 10,\n \"ci_needs_size_limit\": 50,\n \"ci_registered_group_runners\": 1000,\n \"ci_registered_project_runners\": 1000,\n \"cargo_max_file_size\": 5368709120,\n \"conan_max_file_size\": 3221225472,\n \"dotenv_variables\": 20,\n \"dotenv_size\": 5120,\n \"generic_packages_max_file_size\": 5368709120,\n \"helm_max_file_size\": 5242880,\n \"maven_max_file_size\": 3221225472,\n \"npm_max_file_size\": 524288000,\n \"nuget_max_file_size\": 524288000,\n \"max_pipelines_per_merge_train\": 20,\n \"pipeline_hierarchy_size\": 1000,\n \"pypi_max_file_size\": 3221225472,\n \"terraform_module_max_file_size\": 1073741824\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.144Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":84,"estimatedTokens":1648}}390{"id":"doc-protected_container_repositories_gitlab_docs-17364abc","source":"documentation","title":"Protected container repositories | GitLab Docs","url":"https://docs.gitlab.com/user/packages/container_registry/container_repository_protection_rules/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationGetting startedTutorialsPackages & RegistriesPackage registryContainer registryAuthenticateBuild and push imagesDependency proxy for container imagesDelete imagesProtected container repositoriesProtected container tagsImmutable container tagsReduce container registry storageReduce container registry data container images with build provenance container images from Amazon ECR to GitLabVirtual registryHarbor registryTerraform module registryEnvironmentsDeploymentsReleasesRoll out an application incrementallyFeature flagsGitLab PagesManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Deploy and release your … /Packages & Registries /Container registry /Protected container repositoriesHelp us learn about your current experience with the documentation. Take the survey.Protected container , Premium, , GitLab Self-Managed, GitLab DedicatedHistoryIntroduced in GitLab 16.7 with a feature flag named container_registry_protected_containers. Disabled by default. This feature is an experiment.Enabled on GitLab.com in GitLab 17.8.Generally available in GitLab 17.8. Feature flag container_registry_protected_containers removed.By default, any user with the Developer, Maintainer, or Owner role can push and delete container images to or from container repositories. Protect a container repository to restrict which users can make changes to container images in your container repository.When a container repository is protected, the default behavior enforces these restrictions on the container repository and its roleProtect a container repository and its container images.The Maintainer role.Push or create a new image in a container repository.The role set in the Minimum access level for push setting.Push or update an existing image in a container repository.The role set in the Minimum access level for push setting.Push, create, or update an existing image in a container repository with a deploy token.Not applicable. Deploy tokens can be used with non-protected repositories, but cannot be used to push images to protected container repositories, regardless of their scopes.You can use a wildcard (*) to protect multiple container repositories with the same container protection rule. For example, you can protect different container repositories containing temporary container images built during a CI/CD pipeline.The following table contains examples of container protection rules that match multiple container pattern with wildcardExample matching container repositoriesgroup/container-*group/container-prod, group/container-prod-sha123456789group/*containergroup/container, group/prod-container, group/prod-sha123456789-containergroup/*container*group/container, group/prod-sha123456789-container-v1You can apply several protection rules to the same container repository. A container repository is protected if at least one protection rule matches.Create a container repository protection must have the Maintainer or Owner role.To create a protection the top bar, select Search or go to and find your project.In the left sidebar, select Settings > Packages and registries.Expand Container registry.Under Protected container repositories, select Add protection rule.Complete the path pattern is a container repository path you want to protect. The pattern can include a wildcard (*).Minimum access level for push describes the minimum access level required to push (create or update) to the protected container repository path.Select Protect.The protection rule is created and the container repository is now protected.Delete a container repository protection ruleHistoryIntroduced in GitLab 17.0.Prerequisites:You must have the Maintainer or Owner role.To delete a protection the top bar, select Search or go to and find your project.In the left sidebar, select Settings > Packages and registries.Expand Container registry.Under Protected container repositories, next to the protection rule you want to delete, select Delete ( ).On the confirmation dialog, select Delete.The protection rule is deleted and the container repository is no longer protected.Create a container repository protection ruleDelete a container repository protection rule\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.228Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1130}}391{"id":"doc-troubleshooting_repository_mirroring_gitlab_docs-7f9901ce","source":"documentation","title":"Troubleshooting repository mirroring | GitLab Docs","url":"https://docs.gitlab.com/user/project/repository/mirror/troubleshooting/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeGetting startedRepositoriesProtect your repositoryBranchesCompare revisionsCommitsForksFile managementFile tree browserRepository sizeTagsCode OwnersMirroringPull mirroringPush mirroringBidirectional mirroringTroubleshootingChangelogsSnippetsPush rulesSigned commitsManaging monoreposMLOpsMerge requestsRemote developmentUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Manage your code /Repositories /Mirroring /TroubleshootingHelp us learn about your current experience with the documentation. Take the survey.Troubleshooting repository , Premium, , GitLab Self-Managed, GitLab DedicatedWhen mirroring fails, GitLab displays a warning on the project details page. For mirroring failed 1 hour ago. Select the warning text to go to the Mirroring repositories settings.Next to the affected repository, GitLab displays an Error badge. To view the error message, hover over the badge. Error messages include specific details for common issues like authentication failures or divergent branches. Other errors might come directly from Git operations.Received RST_STREAM with error code 2 with GitHubIf you receive this message while mirroring to a GitHub :Received RST_STREAM with error code 2One of these issues might be GitHub settings might be set to block pushes that expose your email address used in commits. To fix this problem, your GitHub email address to public.Turn off the Block command line pushes that expose my email setting.Your repository exceeds the GitHub file size limit of 100 MB. To fix this problem, check the file size limit configured for on GitHub, and consider using Git Large File Storage (LFS) to manage large files.Deadline ExceededWhen you upgrade GitLab, a change in how usernames are represented means that you must update your mirroring username and password to ensure that %40 characters are replaced with @.Connection only allows public key authenticationThe connection between GitLab and the remote repository is blocked. Even if a TCP check is successful, you must check any networking components in the route from GitLab to the remote server for blockage.This error can occur when a firewall performs a Deep SSH Inspection on outgoing packets.Could not read prompts disabledIf you receive this error after creating a new project using GitLab CI/CD for external Bitbucket Cloud:\"2:fetch remote: \"fatal: could not read Username for 'https://bitbucket.org': terminal prompts disabled\\n\": exit status 128.\"In Bitbucket Server (self-hosted):\"2:fetch remote: \"fatal: could not read Username for 'https://lab.example.com': terminal prompts disabled\\n\": exit status 128.Check if the repository owner is specified in the URL of your mirrored the top bar, select Search or go to and find your project.In the left sidebar, select Settings > Repository.Expand Mirroring repositories.If no repository owner is specified, delete and add the URL again in this format, replacing OWNER, ACCOUNTNAME, PATH_TO_REPO, and REPONAME with your Bitbucket ://OWNER@bitbucket.org/ACCOUNTNAME/REPONAME.gitIn Bitbucket Server (self-hosted):https://OWNER@lab.example.com/PATH_TO_REPO/REPONAME.gitWhen connecting to the Cloud or self-hosted Bitbucket repository for mirroring, the repository owner is required in the string.Push objects are missingYou might get an error that : objects are missing. Ensure LFS is properly set up or try a manual \"git lfs push --all\".This issue occurs when you use an SSH repository URL for push mirroring. Push mirroring to transfer LFS files over SSH is not supported.The workaround is to use an HTTPS repository URL instead of SSH for your push mirror.Issue 249587 exists to fix this problem.Error: Committer is not a member of teamYou might get an error that : 'noreply@example.com' is not a member of teamThis issue occurs when the source project signs commits created in the GitLab UI, and the target project has the Check whether the commit author is a GitLab user push rule turned on. Commits signed by GitLab have an instance email address as the committer, and this address does not belong to a GitLab user.GitLab 19.3 and later resolve this rules no longer check the committer email address for commits signed by GitLab. As a workaround for earlier versions, turn off the push rule on the target project.Pull mirror is missing LFS filesIn some cases, pull mirroring does not transfer LFS files. This issue occurs when you use an SSH repository URL.The workaround is to use an HTTPS repository URL instead.Pull mirroring is not triggering pipelinesPipelines might not run for multiple pipelines for mirror updates might not be enabled. This setting can only be enabled when initially configuring pull mirroring. The status is not displayed when checking the project afterwards.When mirroring is set up using CI/CD for external repositories this setting is enabled by default. If repository mirroring is manually reconfigured, triggering pipelines is off by default and this could be why pipelines stop running.rules configuration prevents any jobs from being added to the pipeline.Pipelines are triggered using the account that set up the pull mirror. If the account is no longer valid, pipelines do not run.Branch protection might prevent the account that set up mirroring from running pipelines.The repository is being updated, but neither fails nor succeeds visiblyIn rare cases, mirroring slots on Redis can become exhausted, possibly because Sidekiq workers are reaped due to out-of-memory (OoM) events. When this occurs, mirroring jobs start and complete quickly, but they neither fail nor succeed. They also do not leave a clear log. To check for this the Rails console and check Redis’ mirroring = Gitlab::Redis::SharedState.with { |redis| redis.scard('MIRROR_PULL_CAPACITY') }.to_i maximum = Gitlab::CurrentSettings.mirror_max_capacity available = maximum - currentIf the mirroring capacity is 0 or very low, you can drain all stuck jobs ::Redis::SharedState.with { |redis| redis.smembers('MIRROR_PULL_CAPACITY') }.each do |pid| Gitlab::Redis::SharedState.with { |redis| redis.srem('MIRROR_PULL_CAPACITY', pid) } endAfter you run the command, the background jobs page should show new mirroring jobs being scheduled, especially when triggered manually.Invalid URLIf you receive this error while setting up mirroring over SSH, make sure the URL is in a valid format.Mirroring does not support SCP-like clone URLs in the form of git@gitlab.com:gitlab-org/gitlab.git, with host and project path separated It requires a standard URL that includes the ssh:// protocol, like ssh://git@gitlab.com/gitlab-org/gitlab.git.Host key verification failedThis error is returned when the target host public SSH key changes. Public SSH keys rarely change. If host key verification fails, but you suspect the key is still valid, you must delete the repository mirror and create it again. For more information, see create a repository mirror.Repository mirroring disabled because mirror user was deletedYou might receive an email notification similar mirroring on <project_path> was disabled because the mirror user <username> was deleted. To re-enable mirroring, update your repository mirroring settings.This issue occurs because each mirror is tied to the user who configured it. When that user’s account is deleted, GitLab automatically disables the mirror. The same behavior applies when a group access token or project access token used to create the mirror is revoked, because the associated bot user is also deleted.You cannot reassign a mirror to a different user. To resolve this issue, set up the mirror again with a different user.For more information, see issue 488449.Transfer mirror users and tokens to a single service accountThis requires access to the GitLab Rails console.Use you have multiple users using their own GitHub credentials to set up repository mirroring, mirroring breaks when people leave the company. Use this script to migrate disparate mirroring users and tokens into a single service that change data can cause damage if not run correctly or under the right conditions. Always run commands in a test environment first and have a backup instance ready to restore.svc_user = User.find_by(username: 'ourServiceUser') token = 'githubAccessToken' Project.where(mirror: true).each do |project| import_url = project.unsafe_import_url # The expected url output is https://token@project/path.git repo_url = if import_url.include?('@') # Case url is something like https://23423432@project/path.git import_url.split('@').last elsif import_url.include?('//') # Case url is something like https://project/path.git import_url.split('//').last end next unless repo_url final_url = \"https://#{token}@#{repo_url}\" project.mirror_user = svc_user project.import_url = final_url project.username_only_import_url = final_url project.save endThe requested URL returned mirroring using the http:// or https:// protocols, be sure to specify the exact URL to the ://gitlab.example.com/group/project.gitHTTP redirects are not followed and omitting .git can result in a 301 :fetch remote: \"fatal: unable to access 'https://gitlab.com/group/project': The requested URL returned \\n\": exit status 128.Push mirror from GitLab instance to Geo secondary failsPush mirroring of a GitLab repository using the HTTP or HTTPS protocols fails when the destination is a Geo secondary node due to the proxying of the push request to the Geo primary node, and the following error is :get remote git status 128, stderr: \"fatal: unable to access 'https://gitlab.example.com/group/destination.git/': The requested URL returned \".This occurs when a Geo unified URL is configured and the target host name resolves to the secondary node’s IP address.The error can be avoided the push mirror to use the SSH protocol. However, the repository must not contain any LFS objects, which are always transferred over HTTP or HTTPS and are still redirected.Using a reverse proxy to direct all requests from the source instance to the primary Geo node.Adding a local hosts file entry on the source to force the target host name to resolve to the Geo primary node’s IP address.Configuring a pull mirror on the target instead.Pull or push mirror fails to project is not mirroredPull and push mirrors fail to update when GitLab Silent Mode is enabled. When this happens, the option to allow mirroring on the UI is disabled.An administrator can check to confirm that GitLab Silent Mode is disabled.When mirroring fails due to Silent Mode the following are the debug the mirror using the API project is not mirrored.If pull or push mirror was already set up but there are no further updates on the mirrored repository, confirm the project’s pull and push mirror details and status are not recent as shown below. This indicates mirroring was paused and disabling GitLab Silent Mode restarts it automatically.For example, if Silent Mode is what is impeding your imports, the output is similar to the following:\"id\": 1, \"update_status\": \"finished\", \"url\": \"https://test.git\" \"last_error\": null, \"last_update_at\": null, \"last_update_started_at\": \"2023-12-12T00:01:02.222Z\", \"last_successful_update_at\": nullInitial mirroring to pull mirror to get pack indexYou might get an error that states something similar to the :fetch remote: \"error: Unable to open local file /var/opt/gitlab/git-data/repositories/+gitaly/tmp/quarantine-[OMITTED].idx.temp.temp\\nerror: Unable to get pack index https://git.example.org/ebtables/objects/pack/pack-[OMITTED].idx\\nerror: Unable to find fcde2b2edba56bf408601fb721fe9b5c338d10ee under https://git.example.org/ebtables Cannot obtain needed object fcde2b2edba56bf408601fb721fe9b5c338d10ee while processing commit 2c26b46b68ffc68ff99b453c1d30413413422d70. failed.\\n\": exit status 128.This issue occurs because Gitaly does not support mirroring or importing repositories over the “dumb” HTTP protocol.To determine if a server is “smart” or “dumb”, use cURL to start a reference discovery for the git-upload-pack service and emulate a Git “smart” client:$GIT_URL=\"https://git.example.org/project\" curl --silent --dump-header - \"$GIT_URL/info/refs?service=git-upload-pack\"\\ -o /dev/null | grep -Ei \"$content-type:\"A “smart” server reports application/x-git-upload-pack-advertisement in the Content-Type response header.A “dumb” server reports text/plain in the Content-Type response header.For more information, see the Git documentation on discovering references.To resolve this, you can do either of the the source repository to a “smart” server.Mirror the repository using the SSH protocol (requires authentication).Pull mirroring fails with Could not update mainYou might get an error similar :Could not update main. Please refresh and try again.This can happen during the initial pull mirror update if the destination repository is not completely empty.For example, the destination repository might already initial README commit.A license or .gitignore.Existing branches or tags.To resolve this the destination repository as an empty repository.Make sure the repository uses the same object format as the source repository.Do not initialize the repository with a README, license, or .gitignore.Configure pull mirroring again and run Update now.As a workaround, if you must keep the existing destination repository, enable Overwrite diverged branches and ensure the mirroring user has permission to overwrite the target branch.Error: mismatched algorithmsYou might get an error similar :fetch remote: \"fatal: mismatched sha1; server sha256\": exit status 128.This error occurs when the source and destination repositories use different object formats and pull mirroring is not supported between repositories that use different object formats.For source repository uses SHA-1.The destination repository uses SHA-256 or vice versaTo resolve this issue, recreate the destination repository with the same object format as the source repository, then configure mirroring again.Error: File directory conflictYou might get an error that states something similar to the :preparing reference directory conflictThis error occurs when a tag or branch name conflict exists between the source and mirror repositories. For tag or branch named x/y exists in the mirror repository.A tag or branch named x exists in the source repository.To resolve this issue, delete the conflicting tag or branch. If you cannot identify the conflicting tag or branch, delete all tags from your mirror repository. An alternative option is to overwrite diverged branches.Deleting tags could be destructive for any work done in the mirror repository.To delete and remove all tags from the mirror a local copy of your mirrored repository, tag -l | xargs -n 1 git push --delete originIn the left sidebar, select Settings > Repository.Expand Mirroring repositories.Select Update now ( ).Push mirroring stuck with large LFS filesYou might encounter timeout issues when push mirroring a project that contains large LFS objects. This issue occurs when Git LFS operations exceed the default activity timeout. This error appears in the mirroring to status 1, stderr: \"remote: objects are missing. Ensure LFS is properly set up or try a manual \\\"git lfs push --all\\\"\"To resolve this issue, increase the LFS activity timeout value before configuring the config lfs.activitytimeout 240This command sets the timeout to 240 seconds. You can adjust this value based on your file sizes and network conditions.Received RST_STREAM with error code 2 with GitHubDeadline ExceededConnection only allows public key authenticationCould not read prompts disabledPush objects are is not a member of teamPull mirror is missing LFS filesPull mirroring is not triggering pipelinesThe repository is being updated, but neither fails nor succeeds visiblyInvalid URLHost key verification failedRepository mirroring disabled because mirror user was deletedTransfer mirror users and tokens to a single service accountThe requested URL returned mirror from GitLab instance to Geo secondary failsPull or push mirror fails to project is not mirroredInitial mirroring to pull mirror to get pack indexPull mirroring fails with Could not update directory conflictPush mirroring stuck with large LFS files\n\nExample:\n```plaintext\n13:Received RST_STREAM with error code 2\n```\n\nExample:\n```plaintext\n\"2:fetch remote: \"fatal: could not read Username for 'https://bitbucket.org':\nterminal prompts disabled\\n\": exit status 128.\"\n```\n\nExample:\n```plaintext\n\"2:fetch remote: \"fatal: could not read Username for 'https://lab.example.com':\nterminal prompts disabled\\n\": exit status 128.\n```\n\nExample:\n```plaintext\nhttps://OWNER@bitbucket.org/ACCOUNTNAME/REPONAME.git\n```\n\nExample:\n```plaintext\nhttps://OWNER@lab.example.com/PATH_TO_REPO/REPONAME.git\n```\n\nExample:\n```plaintext\nGitLab: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual \"git lfs push --all\".\n```\n\nExample:\n```plaintext\nremote: GitLab: Committer 'noreply@example.com' is not a member of team\n```\n\nExample:\n```ruby\ncurrent = Gitlab::Redis::SharedState.with { |redis| redis.scard('MIRROR_PULL_CAPACITY') }.to_i\nmaximum = Gitlab::CurrentSettings.mirror_max_capacity\navailable = maximum - current\n```\n\nExample:\n```ruby\nGitlab::Redis::SharedState.with { |redis| redis.smembers('MIRROR_PULL_CAPACITY') }.each do |pid|\n Gitlab::Redis::SharedState.with { |redis| redis.srem('MIRROR_PULL_CAPACITY', pid) }\nend\n```\n\nExample:\n```plaintext\nRepository mirroring on <project_path> was disabled because the mirror user <username> was deleted.\n\nTo re-enable mirroring, update your repository mirroring settings.\n```\n\nExample:\n```ruby\nsvc_user = User.find_by(username: 'ourServiceUser')\ntoken = 'githubAccessToken'\n\nProject.where(mirror: true).each do |project|\n import_url = project.unsafe_import_url\n\n # The expected url output is https://token@project/path.git\n repo_url = if import_url.include?('@')\n # Case 1: The url is something like https://23423432@project/path.git\n import_url.split('@').last\n elsif import_url.include?('//')\n # Case 2: The url is something like https://project/path.git\n import_url.split('//').last\n end\n\n next unless repo_url\n\n final_url = \"https://#{token}@#{repo_url}\"\n\n project.mirror_user = svc_user\n project.import_url = final_url\n project.username_only_import_url = final_url\n project.save\nend\n```\n\nExample:\n```plaintext\n13:fetch remote: \"fatal: unable to access 'https://gitlab.com/group/project': The requested URL returned error: 301\\n\": exit status 128.\n```\n\nExample:\n```plaintext\n13:get remote references: create git ls-remote: exit status 128, stderr: \"fatal: unable to access 'https://gitlab.example.com/group/destination.git/': The requested URL returned error: 302\".\n```\n\nExample:\n```json\n\"id\": 1,\n\"update_status\": \"finished\",\n\"url\": \"https://test.git\"\n\"last_error\": null,\n\"last_update_at\": null,\n\"last_update_started_at\": \"2023-12-12T00:01:02.222Z\",\n\"last_successful_update_at\": null\n```\n\nExample:\n```plaintext\n13:fetch remote: \"error: Unable to open local file /var/opt/gitlab/git-data/repositories/+gitaly/tmp/quarantine-[OMITTED].idx.temp.temp\\nerror: Unable to get pack index https://git.example.org/ebtables/objects/pack/pack-[OMITTED].idx\\nerror: Unable to find fcde2b2edba56bf408601fb721fe9b5c338d10ee under https://git.example.org/ebtables\nCannot obtain needed object fcde2b2edba56bf408601fb721fe9b5c338d10ee\nwhile processing commit 2c26b46b68ffc68ff99b453c1d30413413422d70.\nerror: fetch failed.\\n\": exit status 128.\n```\n\nExample:\n```shell\n$GIT_URL=\"https://git.example.org/project\"\ncurl --silent --dump-header - \"$GIT_URL/info/refs?service=git-upload-pack\"\\\n -o /dev/null | grep -Ei \"$content-type:\"\n```\n\nExample:\n```plaintext\n13:fetch remote: \"fatal: mismatched algorithms: client sha1; server sha256\": exit status 128.\n```\n\nExample:\n```plaintext\n13:preparing reference update: file directory conflict\n```\n\nExample:\n```shell\ngit tag -l | xargs -n 1 git push --delete origin\n```\n\nExample:\n```plaintext\npush to mirror: git push: exit status 1, stderr: \"remote: GitLab: LFS objects are missing. Ensure LFS is properly set up or try a manual \\\"git lfs push --all\\\"\"\n```\n\nExample:\n```shell\ngit config lfs.activitytimeout 240\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.248Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":21,"totalLines":150,"estimatedTokens":5139}}392{"id":"doc-troubleshooting_gitlab_backups_gitlab_docs-c6610024","source":"documentation","title":"Troubleshooting GitLab backups | GitLab Docs","url":"https://docs.gitlab.com/administration/backup_restore/troubleshooting_backup_gitlab/","text":"Example:\n```shell\nsudo gitlab-rails dbconsole --database main\n```\n\nExample:\n```shell\nsudo -u git -H bundle exec rails dbconsole -e production --database main\n```\n\nExample:\n```sql\nSELECT * FROM public.\"ci_group_variables\";\nSELECT * FROM public.\"ci_variables\";\n```\n\nExample:\n```sql\nDELETE FROM ci_group_variables;\nDELETE FROM ci_variables;\n```\n\nExample:\n```sql\nDELETE FROM ci_group_variables WHERE group_id = <GROUPID>;\nDELETE FROM ci_variables WHERE project_id = <PROJECTID>;\n```\n\nExample:\n```sql\n-- Clear project tokens\nUPDATE projects SET runners_token = null, runners_token_encrypted = null;\n-- Clear group tokens\nUPDATE namespaces SET runners_token = null, runners_token_encrypted = null;\n-- Clear instance tokens\nUPDATE application_settings SET runners_registration_token_encrypted = null;\n-- Clear key used for JWT authentication\n-- This may break the $CI_JWT_TOKEN job variable:\n-- https://gitlab.com/gitlab-org/gitlab/-/issues/325965\nUPDATE application_settings SET encrypted_ci_jwt_signing_key = null;\n-- Clear runner tokens\nUPDATE ci_runners SET token = null, token_encrypted = null;\n```\n\nExample:\n```sql\n-- Clear build tokens\nUPDATE ci_builds SET token_encrypted = null;\n```\n\nExample:\n```sql\n-- truncate web_hooks table\nTRUNCATE integrations, chat_names, issue_tracker_data, jira_tracker_data, slack_integrations, web_hooks, zentao_tracker_data, web_hook_logs CASCADE;\n```\n\nExample:\n```plaintext\nlevel=error\nmsg=\"response completed with error\"\nerr.code=unknown\nerr.detail=\"filesystem: mkdir /var/opt/gitlab/gitlab-rails/shared/registry/docker/registry/v2/repositories/...: permission denied\"\nerr.message=\"unknown error\"\n```\n\nExample:\n```shell\nsudo chown -R registry:registry /var/opt/gitlab/gitlab-rails/shared/registry/docker\n```\n\nExample:\n```shell\nsudo /opt/gitlab/bin/gitlab-backup create\n...\nDumping ...\n...\ngzip: stdout: Input/output error\n\nBackup failed\n```\n\nExample:\n```plaintext\nProblem: <class 'OSError: [Errno 36] File name too long:\n```\n\nExample:\n```shell\nbundle exec rake gitlab:cleanup:remote_upload_files RAILS_ENV=production\n```\n\nExample:\n```shell\nbundle exec rake gitlab:cleanup:remote_upload_files RAILS_ENV=production DRY_RUN=false\n```\n\nExample:\n```sql\nCREATE TEMP TABLE uploads_with_long_filenames AS\nSELECT ROW_NUMBER() OVER(ORDER BY id) row_id, id, path\nFROM uploads AS u\nWHERE LENGTH((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1]) > 246;\n\nCREATE INDEX ON uploads_with_long_filenames(row_id);\n\nSELECT\n u.id,\n u.path,\n -- Current filename\n (regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1] AS current_filename,\n -- New filename\n CONCAT(\n LEFT(SPLIT_PART((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1], '.', 1), 242),\n COALESCE(SUBSTRING((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1] FROM '\\.(?:.(?!\\.))+$'))\n ) AS new_filename,\n -- New path\n CONCAT(\n COALESCE((regexp_match(u.path, '(.*\\/).*'))[1], ''),\n CONCAT(\n LEFT(SPLIT_PART((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1], '.', 1), 242),\n COALESCE(SUBSTRING((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1] FROM '\\.(?:.(?!\\.))+$'))\n )\n ) AS new_path\nFROM uploads_with_long_filenames AS u\nWHERE u.row_id > 0 AND u.row_id <= 10000;\n```\n\nExample:\n```postgresql\n-[ RECORD 1 ]----+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------\nid | 34\npath | public/@hashed/loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisit.txt\ncurrent_filename | loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisit.txt\nnew_filename | loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelits.txt\nnew_path | public/@hashed/loremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelitsedvulputatemisitloremipsumdolorsitametconsecteturadipiscingelitseddoeiusmodtemporincididuntutlaboreetdoloremagnaaliquaauctorelits.txt\n```\n\nExample:\n```sql\nCREATE TEMP TABLE uploads_with_long_filenames AS\nSELECT ROW_NUMBER() OVER(ORDER BY id) row_id, path, id\nFROM uploads AS u\nWHERE LENGTH((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1]) > 246;\n\nCREATE INDEX ON uploads_with_long_filenames(row_id);\n\nBEGIN;\nWITH updated_uploads AS (\n UPDATE uploads\n SET\n path =\n CONCAT(\n COALESCE((regexp_match(updatable_uploads.path, '(.*\\/).*'))[1], ''),\n CONCAT(\n LEFT(SPLIT_PART((regexp_match(updatable_uploads.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1], '.', 1), 242),\n COALESCE(SUBSTRING((regexp_match(updatable_uploads.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1] FROM '\\.(?:.(?!\\.))+$'))\n )\n )\n FROM\n uploads_with_long_filenames AS updatable_uploads\n WHERE\n uploads.id = updatable_uploads.id\n AND updatable_uploads.row_id > 0 AND updatable_uploads.row_id <= 10000\n RETURNING uploads.*\n)\nSELECT id, path FROM updated_uploads;\nROLLBACK;\n```\n\nExample:\n```sql\nCREATE TEMP TABLE uploads_with_long_filenames AS\nSELECT ROW_NUMBER() OVER(ORDER BY id) row_id, path, id\nFROM uploads AS u\nWHERE LENGTH((regexp_match(u.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1]) > 246;\n\nCREATE INDEX ON uploads_with_long_filenames(row_id);\n\nUPDATE uploads\nSET\npath =\n CONCAT(\n COALESCE((regexp_match(updatable_uploads.path, '(.*\\/).*'))[1], ''),\n CONCAT(\n LEFT(SPLIT_PART((regexp_match(updatable_uploads.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1], '.', 1), 242),\n COALESCE(SUBSTRING((regexp_match(updatable_uploads.path, '[^\\\\/:*?\"<>|\\r\\n]+$'))[1] FROM '\\.(?:.(?!\\.))+$'))\n )\n )\nFROM\nuploads_with_long_filenames AS updatable_uploads\nWHERE\nuploads.id = updatable_uploads.id\nAND updatable_uploads.row_id > 0 AND updatable_uploads.row_id <= 10000;\n```\n\nExample:\n```shell\npg_dump -h /var/opt/gitlab/postgresql/ -d gitlabhq_production > gitlab-dump.tmp\n```\n\nExample:\n```shell\ngrep public/alongfilenamehere.txt gitlab-dump.tmp\n```\n\nExample:\n```plaintext\nbackup repository: manager: write bundle: local repository: create bundle:\ncreate bundle: exit status 1: stderr: \"error: pack-objects died\"\n```\n\nExample:\n```shell\nsudo find /var/opt/gitlab/git-data -name \"*.pack\" -size +10G -ls\n```\n\nExample:\n```ruby\ngitaly['configuration'] = {\n backup: {\n go_cloud_url: 's3://<bucket>?region=<region>',\n # Increase part size to raise the S3 multipart upload limit.\n # buffer_size (bytes) x 10,000 = effective maximum bundle size.\n # Example: 10485760 (10 MB) supports bundles up to ~100 GB.\n buffer_size: 10485760,\n },\n}\n```\n\nExample:\n```shell\nsudo gitlab-ctl reconfigure\nsudo gitlab-ctl restart gitaly\n```\n\nExample:\n```shell\nhelm get values gitlab > gitlab_values.yaml\n```\n\nExample:\n```yaml\ngitlab:\n gitaly:\n configuration:\n backup:\n buffer_size: 10485760\n```\n\nExample:\n```shell\nhelm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab\n```\n\nExample:\n```sql\nDROP EXTENSION IF EXISTS pg_stat_statements;\nCREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;\n```\n\nExample:\n```plaintext\nERROR: permission denied to create extension \"pg_stat_statements\"\nHINT: Must be superuser to create this extension.\nERROR: extension \"pg_stat_statements\" does not exist\n```\n\nExample:\n```plaintext\nrake aborted!\nActiveRecord::StatementInvalid: PG::InsufficientPrivilege: ERROR: must be owner of view pg_stat_statements\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:42:in `block (4 levels) in <top (required)>'\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `each'\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `block (3 levels) in <top (required)>'\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:71:in `block (3 levels) in <top (required)>'\n/opt/gitlab/embedded/bin/bundle:23:in `load'\n/opt/gitlab/embedded/bin/bundle:23:in `<main>'\nCaused by:\nPG::InsufficientPrivilege: ERROR: must be owner of view pg_stat_statements\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:42:in `block (4 levels) in <top (required)>'\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `each'\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/db.rake:41:in `block (3 levels) in <top (required)>'\n/opt/gitlab/embedded/service/gitlab-rails/lib/tasks/gitlab/backup.rake:71:in `block (3 levels) in <top (required)>'\n/opt/gitlab/embedded/bin/bundle:23:in `load'\n/opt/gitlab/embedded/bin/bundle:23:in `<main>'\nTasks: TOP => gitlab:db:drop_tables\n(See full trace by running task with --trace)\n```\n\nExample:\n```sql\nCREATE SCHEMA adm;\nCREATE EXTENSION pg_stat_statements SCHEMA adm;\n```\n\nExample:\n```sql\nCREATE SCHEMA adm;\nALTER EXTENSION pg_stat_statements SET SCHEMA adm;\n```\n\nExample:\n```sql\nSELECT * FROM adm.pg_stat_statements limit 0;\n```\n\nExample:\n```sql\nset search_path to public,adm;\n```\n\nExample:\n```sql\nCREATE EXTENSION IF NOT EXISTS pg_stat_statements WITH SCHEMA public;\n```\n\nExample:\n```sql\nCOMMENT ON EXTENSION pg_stat_statements IS 'track planning and execution statistics of all SQL statements executed';\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.312Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":36,"totalLines":322,"estimatedTokens":2434}}393{"id":"doc-protected_tags_api_gitlab_docs-fcae9625","source":"documentation","title":"Protected tags API | GitLab Docs","url":"https://docs.gitlab.com/api/protected_tags/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint ]Get a protected tag or wildcard protected tagGet a single protected tag or wildcard protected tag.GET /projects/:id/protected_tags/:nameSupported or stringYesID or URL-encoded path of the project.namestringYesName of the tag or wildcard.If successful, returns 200 OK and the following response of create access level configurations.create_access_levels[].access_levelintegerAccess level for creating tags.create_access_levels[].access_level_descriptionstringHuman-readable description of the access level.create_access_levels[].deploy_key_idintegerID of the deploy key with create access.create_access_levels[].group_idintegerID of the group with create access. Premium and Ultimate only.create_access_levels[].idintegerID of the create access level configuration.create_access_levels[].user_idintegerID of the user with create access. Premium and Ultimate only.namestringName of the protected tag.Example --request GET \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags/release-1-0\"Example response:{ \"name\": \"release-1-0\", \"create_access_levels\": [ { \"id\": 1, \"access_level\": 40, \"access_level_description\": \"Maintainers\" } ] }Protect a repository tagHistorydeploy_key_id configuration introduced in GitLab 17.5.deploy_key_id configuration moved from GitLab Premium to GitLab Free in GitLab 18.10.Protect a single repository tag, or several project repository tags, using a wildcard protected tag.POST /projects/:id/protected_tagsSupported or stringYesID or URL-encoded path of the project.namestringYesName of the tag or wildcard.allowed_to_createarrayNoArray of access levels allowed to create tags, with each described by a hash of the form {user_id: integer}, {group_id: integer}, {deploy_key_id: integer}, or {access_level: integer}. user_id, group_id, and access_level are Premium and Ultimate only.create_access_levelintegerNoAccess levels allowed to create. Default is 40 (Maintainer role).If successful, returns 201 Created and the following response of create access level configurations.create_access_levels[].access_levelintegerAccess level for creating tags.create_access_levels[].access_level_descriptionstringHuman-readable description of the access level.create_access_levels[].deploy_key_idintegerID of the deploy key with create access.create_access_levels[].group_idintegerID of the group with create access. Premium and Ultimate only.create_access_levels[].idintegerID of the create access level configuration.create_access_levels[].user_idintegerID of the user with create access. Premium and Ultimate only.namestringName of the protected tag.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --header \"Content-Type: application/json\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags\" \\ --data '{ \"allowed_to_create\" : [ { \"user_id\" : 1 }, { \"access_level\" : 30 } ], \"create_access_level\" : 30, \"name\" : \"*-stable\" }'Example response:{ \"name\": \"*-stable\", \"create_access_levels\": [ { \"id\": 1, \"access_level\": 30, \"access_level_description\": \"Developers + Maintainers\" } ] }Example with user and group accessElements in the allowed_to_create array should take the form {user_id: integer}, {group_id: integer}, {deploy_key_id: integer}, or {access_level: integer}. Each user must have access to the project and each group must have this project shared. These access levels allow more granular control over protected tag access. For more information, see add a group to protected tags.This example request demonstrates how to create a protected tag that allows creation access to a specific user and --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags\" \\ --data \"name=*-stable\" \\ --data \"allowed_to_create[][user_id]=10\" \\ --data \"allowed_to_create[][group_id]=20\"This example response protected tag with name \"*-stable\".create_access_levels with ID 1 for user with ID 10.create_access_levels with ID 2 for group with ID 20.{ \"name\": \"*-stable\", \"create_access_levels\": [ { \"id\": 1, \"access_level\": null, \"user_id\": 10, \"group_id\": null, \"access_level_description\": \"Administrator\" }, { \"id\": 2, \"access_level\": null, \"user_id\": null, \"group_id\": 20, \"access_level_description\": \"Example Create Group\" } ] }Unprotect repository tagsUnprotect the given protected tag or wildcard protected tag.DELETE /projects/:id/protected_tags/:nameSupported or stringYesID or URL-encoded path of the project.namestringYesName of the tag.If successful, returns 204 No Content.Example --request DELETE \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable\"Related topicsTags API for all tagsTags user documentationProtected tags user documentationValid access levelsList protected tagsGet a protected tag or wildcard protected tagProtect a repository tagExample with user and group accessUnprotect repository tagsRelated topics\n\nExample:\n```plaintext\nGET /projects/:id/protected_tags\n```\n\nExample:\n```shell\ncurl --request GET \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags\"\n```\n\nExample:\n```json\n[\n {\n \"name\": \"release-1-0\",\n \"create_access_levels\": [\n {\n \"id\":1,\n \"access_level\": 40,\n \"access_level_description\": \"Maintainers\"\n },\n {\n \"id\": 2,\n \"access_level\": 40,\n \"access_level_description\": \"Deploy key\",\n \"deploy_key_id\": 1\n }\n ]\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/protected_tags/:name\n```\n\nExample:\n```shell\ncurl --request GET \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags/release-1-0\"\n```\n\nExample:\n```json\n{\n \"name\": \"release-1-0\",\n \"create_access_levels\": [\n {\n \"id\": 1,\n \"access_level\": 40,\n \"access_level_description\": \"Maintainers\"\n }\n ]\n}\n```\n\nExample:\n```plaintext\nPOST /projects/:id/protected_tags\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --header \"Content-Type: application/json\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags\" \\\n --data '{\n \"allowed_to_create\" : [\n {\n \"user_id\" : 1\n },\n {\n \"access_level\" : 30\n }\n ],\n \"create_access_level\" : 30,\n \"name\" : \"*-stable\"\n}'\n```\n\nExample:\n```json\n{\n \"name\": \"*-stable\",\n \"create_access_levels\": [\n {\n \"id\": 1,\n \"access_level\": 30,\n \"access_level_description\": \"Developers + Maintainers\"\n }\n ]\n}\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags\" \\\n --data \"name=*-stable\" \\\n --data \"allowed_to_create[][user_id]=10\" \\\n --data \"allowed_to_create[][group_id]=20\"\n```\n\nExample:\n```json\n{\n \"name\": \"*-stable\",\n \"create_access_levels\": [\n {\n \"id\": 1,\n \"access_level\": null,\n \"user_id\": 10,\n \"group_id\": null,\n \"access_level_description\": \"Administrator\"\n },\n {\n \"id\": 2,\n \"access_level\": null,\n \"user_id\": null,\n \"group_id\": 20,\n \"access_level_description\": \"Example Create Group\"\n }\n ]\n}\n```\n\nExample:\n```plaintext\nDELETE /projects/:id/protected_tags/:name\n```\n\nExample:\n```shell\ncurl --request DELETE \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/protected_tags/*-stable\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.332Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":13,"totalLines":147,"estimatedTokens":2169}}394{"id":"doc-configure_the_gitlab_chart_with_external_gitlab_-6699def3","source":"documentation","title":"Configure the GitLab chart with external GitLab Pages | GitLab Docs","url":"https://docs.gitlab.com/charts/advanced/external-gitlab-pages/","text":"RequirementsInstallation methodsLinux packageHelm chartInstallConfigureGlobalscertmanager-issuer chartEnvoy Gateway chartGitLab subchartsHAProxy chartMinio chartNGINX chartOpenBao chartRegistry chartTraefik chartZoekt chartshared-secrets jobAdvancedConfigure Gateway API and Envoy Gateway extensionsCustom Docker imagesExternal databaseExternal GitalyExternal GitLab PagesExternal IngressExternal MattermostExternal object storageExternal RedisFIPS-compliant imagesGeoInternal TLS between servicesPersistent volumesRed Hat UBI-based imagesBackup and RestoreMigration guidesUninstallTroubleshootingOperatorDockerSelf-compiledCloud providersOffline GitLabReference architecturesSteps after installingUpgrade GitLabInstall GitLab RunnerConfigure GitLab RunnerGitLab Docs /Install /Installation methods /Helm chart /Configure /Advanced /External GitLab PagesHelp us learn about your current experience with the documentation. Take the survey.Configure the GitLab chart with external GitLab PagesThis document intends to provide documentation on how to configure this Helm chart with a GitLab Pages instance, configured outside of the cluster using a Linux package. Issue 418259 proposes adding documentation for a Linux package instance with an external GitLab Pages using the Helm chart.RequirementsExternal Object Storage, as recommended for production instances, should be used.Base64 encoded form of a 32-bytes-long API secret key for Pages to interact with GitLab Pages.Known limitationsGitLab Pages Access Control is not supported out of the box.Configure external GitLab Pages instanceInstall GitLab using the Linux package.Edit /etc/gitlab/gitlab.rb file and replace its contents with the following snippet. Update the values below to match your ['pages_role'] # Root domain where Pages will be served. pages_external_url '<Pages root domain>' # Example: 'http://pages.example.io' # Information regarding GitLab instance gitlab_pages['gitlab_server'] = '<GitLab URL>' # Example: 'https://gitlab.example.com' gitlab_pages['api_secret_key'] = '<Base64 encoded form of API secret key>'Apply the changes by running sudo gitlab-ctl reconfigure.Configure the chartCreate a bucket named gitlab-pages in the object storage for storing Pages deployments.Create a secret gitlab-pages-api-key with the Base64 encoded form of API secret key as value.kubectl create secret generic gitlab-pages-api-key --from-literal=\"shared_secret=<Base 64 encoded API Secret Key>\"Refer the following configuration snippet and add necessary entries to your values file.global: : '/srv/gitlab/shared/pages' host: <Pages root domain> port: '80' # Set to 443 if Pages is served over HTTPS # Set to true if Pages is served over HTTPS : true bucket: 'gitlab-pages' : gitlab-pages-api-key : true # Bypass automatic disabling of disk storageBy setting PAGES_UPDATE_LEGACY_STORAGE environment variable to true, the feature flag pages_update_legacy_storage is enabled which deploys Pages to local disk. When you migrate to object storage, remember to remove this variable.Deploy the chart using this configuration.RequirementsKnown limitationsConfigure external GitLab Pages instanceConfigure the chart\n\nExample:\n```ruby\nroles ['pages_role']\n\n# Root domain where Pages will be served.\npages_external_url '<Pages root domain>' # Example: 'http://pages.example.io'\n\n# Information regarding GitLab instance\ngitlab_pages['gitlab_server'] = '<GitLab URL>' # Example: 'https://gitlab.example.com'\ngitlab_pages['api_secret_key'] = '<Base64 encoded form of API secret key>'\n```\n\nExample:\n```shell\nkubectl create secret generic gitlab-pages-api-key --from-literal=\"shared_secret=<Base 64 encoded API Secret Key>\"\n```\n\nExample:\n```yaml\nglobal:\n pages:\n path: '/srv/gitlab/shared/pages'\n host: <Pages root domain>\n port: '80' # Set to 443 if Pages is served over HTTPS\n https: false # Set to true if Pages is served over HTTPS\n artifactsServer: true\n objectStore:\n enabled: true\n bucket: 'gitlab-pages'\n apiSecret:\n secret: gitlab-pages-api-key\n key: shared_secret\n extraEnv:\n PAGES_UPDATE_LEGACY_STORAGE: true # Bypass automatic disabling of disk storage\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.348Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":39,"estimatedTokens":1045}}395{"id":"doc-quickstart_connect_a_machine_to_arc_enabled_serv-179a2f1a","source":"documentation","title":"Quickstart - Connect a machine to Arc-enabled servers (Windows or Linux install script) - Azure Arc | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-arc/servers/learn/quick-enable-hybrid-vm","text":"Example:\n```bash\nbash ~/Install_linux_azcmagent.sh\n```\n\nExample:\n```bash\nbash ~/Install_linux_azcmagent.sh --proxy \"{proxy-url}:{proxy-port}\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.694Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":40}}396{"id":"doc-back_up_sql_server_databases_to_azure_azure_back-182d53a3","source":"documentation","title":"Back up SQL Server databases to Azure - Azure Backup | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/backup/backup-azure-sql-database","text":"Example:\n```powershell\nparam(\n [Parameter(Mandatory=$false)]\n [string] $InstanceName = \"MSSQLSERVER\"\n)\nif ($InstanceName -eq \"MSSQLSERVER\")\n{\n $fullInstance = $env:COMPUTERNAME # In case it's the default SQL Server Instance\n}\nelse\n{\n $fullInstance = $env:COMPUTERNAME + \"\\\" + $InstanceName # In case of named instance\n}\ntry\n{\n sqlcmd.exe -S $fullInstance -Q \"sp_addsrvrolemember 'NT Service\\AzureWLBackupPluginSvc', 'sysadmin'\" # Adds login with sysadmin permission if already not available\n}\ncatch\n{\n Write-Host \"An error occurred:\"\n Write-Host $_.Exception|format-list -force\n}\ntry\n{\n sqlcmd.exe -S $fullInstance -Q \"sp_addsrvrolemember 'NT AUTHORITY\\SYSTEM', 'sysadmin'\" # Adds login with sysadmin permission if already not available\n}\ncatch\n{\n Write-Host \"An error occurred:\"\n Write-Host $_.Exception|format-list -force\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.704Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":35,"estimatedTokens":220}}397{"id":"doc-tutorial_identify_performance_issues_with_load_t-b1abda0a","source":"documentation","title":"Tutorial: Identify performance issues with load testing - Azure Load Testing | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/app-testing/load-testing/tutorial-identify-bottlenecks-azure-portal","text":"Example:\n```azurecli\naz login\naz account set --subscription <your-Azure-Subscription-ID>\n```\n\nExample:\n```powershell\ngit clone https://github.com/Azure-Samples/nodejs-appsvc-cosmosdb-bottleneck.git\n```\n\nExample:\n```powershell\ncd nodejs-appsvc-cosmosdb-bottleneck\n.\\deploymentscript.ps1\n```\n\nExample:\n```azurecli\naz login\n```\n\nExample:\n```azurecli\ncd nodejs-appsvc-cosmosdb-bottleneck\n```\n\nExample:\n```azurecli\nresourceGroup=\"<load-testing-resource-group-name>\"\nlocation=\"East US\"\n\naz group create --name $resourceGroup --location $location\n```\n\nExample:\n```azurecli\n# This script requires the following Azure CLI extensions:\n# - load\n\nloadTestResource=\"<load-testing-resource-name>\"\n\naz load create --name $loadTestResource --resource-group $resourceGroup --location $location\n```\n\nExample:\n```azurecli\ntestId=\"sample-app-test\"\nwebappHostname=\"<web-app-hostname>\"\n\naz load test create --test-id $testId --load-test-resource $loadTestResource --resource-group $resourceGroup --load-test-config-file SampleApp.yaml --env webapp=$webappHostname\n```\n\nExample:\n```azurecli\naz group delete --name <yourresourcegroup>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.718Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":59,"estimatedTokens":282}}398{"id":"doc-net_on_azure_container_apps_overview_microsoft_l-65c33643","source":"documentation","title":".NET on Azure Container Apps overview | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/container-apps/dotnet-overview","text":"Example:\n```csharp\nbuilder.Services.Configure<ForwardedHeadersOptions>(options =>\n{\n options.ForwardedHeaders =\n ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;\n options.KnownNetworks.Clear();\n options.KnownProxies.Clear();\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.778Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":12,"estimatedTokens":70}}399{"id":"doc-add_tags_to_work_items_to_categorize_lists_and_b-a3793bf6","source":"documentation","title":"Add Tags to Work Items to Categorize Lists and Boards - Azure Boards | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/devops/boards/queries/add-tags-to-work-items?view=azure-devops","text":"Example:\n```text\nTF401243: Failed to save work item because too many new tags were added to the work item.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.801Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":6,"estimatedTokens":31}}400{"id":"doc-share_and_receive_data_from_azure_sql_database_a-b09adfd3","source":"documentation","title":"Share and receive data from Azure SQL Database and Azure Synapse Analytics | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/data-share/how-to-share-from-sql","text":"Example:\n```sql\ncreate user \"<share_acct_name>\" from external provider; \nexec sp_addrolemember db_datareader, \"<share_acct_name>\";\n```\n\nExample:\n```sql\ncreate user \"<share_acc_name>\" from external provider; \nexec sp_addrolemember db_datareader, \"<share_acc_name>\"; \nexec sp_addrolemember db_datawriter, \"<share_acc_name>\"; \nexec sp_addrolemember db_ddladmin, \"<share_acc_name>\";\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:49.822Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":15,"estimatedTokens":100}}401{"id":"doc-use_azure_container_storage_with_azure_elastic_s-f94c88ea","source":"documentation","title":"Use Azure Container Storage with Azure Elastic SAN | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/storage/container-storage/use-container-storage-with-elastic-san","text":"Example:\n```azurecli\naz provider register --namespace Microsoft.ElasticSan\n```\n\nExample:\n```azurecli\nexport AKS_MI_OBJECT_ID=$(az aks show --name <cluster-name> --resource-group <resource-group> --query \"identityProfile.kubeletidentity.objectId\" -o tsv)\naz role assignment create --assignee $AKS_MI_OBJECT_ID --role \"Azure Container Storage Operator\" --scope \"/subscriptions/<azure-subscription-id>\"\n```\n\nExample:\n```yaml\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azuresan-csi\nprovisioner: san.csi.azure.com\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\nallowVolumeExpansion: true\n```\n\nExample:\n```tf\nterraform {\n required_version = \">= 1.5.0\"\n required_providers {\n kubernetes = {\n source = \"hashicorp/kubernetes\"\n version = \"~> 3.0\"\n }\n }\n}\n\nprovider \"kubernetes\" {\n config_path = \"~/.kube/config\"\n}\n\nresource \"kubernetes_storage_class_v1\" \"azuresan_csi\" {\n metadata {\n name = \"azuresan-csi\"\n }\n\n storage_provisioner = \"san.csi.azure.com\"\n reclaim_policy = \"Delete\"\n volume_binding_mode = \"Immediate\"\n allow_volume_expansion = true\n}\n```\n\nExample:\n```bash\nterraform init\nterraform apply\n```\n\nExample:\n```yaml\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azuresan-csi\nprovisioner: san.csi.azure.com\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\nallowVolumeExpansion: true\nparameters:\n initialStorageTiB: \"10\"\n```\n\nExample:\n```azurecli\nexport AKS_MI_OBJECT_ID=$(az aks show --name <cluster-name> --resource-group <resource-group> --query \"identityProfile.kubeletidentity.objectId\" -o tsv)\naz role assignment create --assignee $AKS_MI_OBJECT_ID --role \"Network Contributorr\" --scope \"/subscriptions/<azure-subscription-id><your-node-resource-group>\"\n```\n\nExample:\n```yaml\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azuresan-csi\nprovisioner: san.csi.azure.com\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\nallowVolumeExpansion: true\nparameters:\n volumegroup: \"esan-vg\"\n networkEndpointType: \"privateEndpoint\"\n```\n\nExample:\n```yaml\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azuresan-csi\nprovisioner: san.csi.azure.com\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\nallowVolumeExpansion: true\nparameters:\n subscriptionId: <external-subcriptionId> # Target subscription Id for which you have admin access\n resourceGroup: <external-rg> # Existing resource group in target subscription\n```\n\nExample:\n```azurecli\nkubectl get node -o jsonpath={range .items[*]}{.spec.providerID}{\"\\n\"}{end}\n```\n\nExample:\n```azurecli\naz elastic-san create --resource-group <node-resource-group> --name <san-name> --location <node-region> --sku \"{name:Premium_LRS,tier:Premium}\" --base-size-tib 1 --extended-capacity-size-tib 1\n```\n\nExample:\n```yaml\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azuresan-csi\nprovisioner: san.csi.azure.com\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\nallowVolumeExpansion: true\nparameters:\n san: <san-name> # replace with the name of your precreated Elastic SAN\n```\n\nExample:\n```azurecli\naz network vnet list -g <node-resource-group> --query [].name -o tsv\n```\n\nExample:\n```azurecli\naz network vnet subnet list -g <node-resource-group> --vnet-name <vnet-name> --query [].name -o tsv\n```\n\nExample:\n```azurecli\naz network vnet subnet update -g <node-resource-group> --vnet-name <vnet-name> --name <subnet-name> --service-endpoints \"Microsoft.Storage\"\n```\n\nExample:\n```azurecli\naz elastic-san volume-group create --resource-group <node-resource-group> --elastic-san-name <san-name> --name <volume-group-name> --network-acls '{\"virtual-network-rules\":[{\"id\":\"<subnet-id>\",\"action\":\"Allow\"}]}'\n```\n\nExample:\n```yaml\napiVersion: storage.k8s.io/v1\nkind: StorageClass\nmetadata:\n name: azuresan-csi\nprovisioner: san.csi.azure.com\nreclaimPolicy: Delete\nvolumeBindingMode: Immediate\nallowVolumeExpansion: true\nparameters:\n san: <san-name> # replace with the name of your precreated Elastic SAN\n volumegroup: <volume-group-name> # replace with the name of your precreated volume group\n```\n\nExample:\n```azurecli\nkubectl apply -f storageclass.yaml\n```\n\nExample:\n```azurecli\nkubectl get storageclass azuresan-csi\n```\n\nExample:\n```output\nNAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE\nazuresan-csi san.csi.azure.com Delete Immediate true 10s\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n name: managedpvc\nspec:\n accessModes:\n - ReadWriteOnce\n resources:\n requests:\n storage: 1Gi\n storageClassName: azuresan-csi\n```\n\nExample:\n```azurecli\nkubectl apply -f acstor-pvc.yaml\n```\n\nExample:\n```output\npersistentvolumeclaim/managedpvc created\n```\n\nExample:\n```azurecli\nkubectl describe pvc managedpvc\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n name: fiopod\nspec:\n containers:\n - name: fio\n image: mayadata/fio\n args: [\"sleep\", \"1000000\"]\n volumeMounts:\n - mountPath: \"/volume\"\n name: iscsi-volume\n volumes:\n - name: iscsi-volume\n persistentVolumeClaim:\n claimName: managedpvc\n```\n\nExample:\n```azurecli\nkubectl apply -f acstor-pod.yaml\n```\n\nExample:\n```output\npod/fiopod created\n```\n\nExample:\n```azurecli\nkubectl describe pod fiopod\nkubectl describe pvc managedpvc\n```\n\nExample:\n```azurecli\nkubectl exec -it fiopod -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60\n```\n\nExample:\n```azurecli\naz elastic-san volume create -g <node-resource-group> -e <san-name> -v <volume-group-name> -n <volume-name> --size-gib 5\n```\n\nExample:\n```azurecli\naz elastic-san volume show --name <volume-name> --resource-group <rg-name> --elastic-san-name <san-name>\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: PersistentVolume\nmetadata:\n name: pv-san\n annotations:\n pv.kubernetes.io/provisioned-by: san.csi.azure.com\nspec:\n capacity:\n storage: 5Gi\n accessModes:\n - ReadWriteOnce\n persistentVolumeReclaimPolicy: Retain\n storageClassName: azuresan-csi\n csi:\n driver: san.csi.azure.com\n volumeHandle: #{rg}#{san}#{vg}#{vol}\n volumeAttributes:\n # iqn: \"<retrieved from pre-provisioned volume>\"\n # targetPortal: \"<retrieved from pre-provisioned volume>\"\n numsessions: \"8\"\n```\n\nExample:\n```azurecli\nkubectl apply -f pv_static.yaml\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n name: pvc-san\nspec:\n volumeMode: Filesystem\n accessModes:\n - ReadWriteOnce\n resources:\n requests:\n storage: 5Gi\n volumeName: pv-san\n storageClassName: azuresan-csi\n```\n\nExample:\n```azurecli\nkubectl apply -f pvc_static.yaml\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: Pod\nmetadata:\n name: pod-san-static\nspec:\n nodeSelector:\n kubernetes.io/os: linux\n containers:\n - image: mcr.microsoft.com/oss/nginx/nginx:1.19.5\n name: nginx\n ports:\n - containerPort: 80\n protocol: TCP\n volumeMounts:\n - mountPath: /var/www\n name: iscsi-volume\n volumes:\n - name: iscsi-volume\n persistentVolumeClaim:\n claimName: pvc-san\n```\n\nExample:\n```azurecli\nkubectl apply -f pod.yaml\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.543Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":37,"totalLines":344,"estimatedTokens":1818}}402{"id":"doc-atlasgov_programmatic_access_mongodb_atlas_for_g-0a428278","source":"documentation","title":"AtlasGov Programmatic Access - MongoDB Atlas for Government - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/government/api/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\nhttps://cloud.mongodbgov.com/api/atlas/v2\n```\n\nExample:\n```hljs-light\necho -n {clientId}:{clientSecret} | base64\n```\n\nExample:\n```hljs-light\n1curl --request POST \\2 --url https://cloud.mongodbgov.com/api/oauth/token \\3 --header 'accept: application/json' \\4 --header 'cache-control: no-cache' \\5 --header 'authorization: Basic {base64Auth}' \\6 --header 'content-type: application/x-www-form-urlencoded' \\7 --data 'grant_type=client_credentials'\n```\n\nExample:\n```hljs-dark\n{\"access_token\":\"{accessToken}\",\"expires_in\":3600,\"token_type\":\"Bearer\"}%\n```\n\nExample:\n```hljs-light\ncurl --request GET \\ --url https://cloudgov.mongodb.com/api/atlas/v2/groups \\ --header 'Authorization: Bearer {accessToken}' \\ --header 'Accept: application/vnd.atlas.2023-02-01+json' \\ --header 'Content-Type: application/json'\n```\n\nExample:\n```hljs-light\ncurl --header 'Authorization: Bearer {accessToken}' \\ --header \"Content-Type: application/json\" \\ --header \"Accept: application/vnd.atlas.2023-02-01+json\" \\ --include \\ --request POST \"https://cloudgov.mongodb.com/api/atlas/v2/groups\" \\ --data ' { \"name\": \"MyProject\", \"orgId\": \"5a0a1e7e0f2912c554080adc\" }'\n```\n\nExample:\n```hljs-light\ncurl --user \"{publicKey}:{privateKey}\" --digest \\ --header \"Accept: application/json\" \\ --header \"Content-Type: application/json\" \\ --header \"Accept: application/vnd.atlas.2025-03-12+json\" \\ # update date to desired API version --include \\ --request GET \"https://cloud.mongodbgov.com/api/atlas/v2/groups/{projectId}/databaseUsers?pretty=true\"\n```\n\nExample:\n```hljs-light\n\"regionUsageRestrictions\" : \"GOV_REGIONS_ONLY\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.213Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":43,"estimatedTokens":462}}403{"id":"doc-forward_logs_to_a_service_atlas_mongodb_docs-0cd34ce8","source":"documentation","title":"Forward Logs to a Service - Atlas - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/atlas-ui/triggers/forward-logs/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\n{\"name\": \"<name>\"}\n```\n\nExample:\n```hljs-light\n{\"name\": \"<name>\",\"log_types\": [ \"<type>\", ... ],\"log_statuses\": [ \"<status>\", ... ]}\n```\n\nExample:\n```hljs-light\n{ \"type\": \"triggers\", \"status\": \"error\", ... }\n```\n\nExample:\n```hljs-light\n{ \"type\": \"triggers\", \"status\": \"success\", ... }{ \"type\": \"functions\", \"status\": \"error\", ... }\n```\n\nExample:\n```hljs-light\n{\"name\": \"<name>\",\"log_types\": [ \"<type>\", ... ],\"log_statuses\": [ \"<status>\", ... ],\"policy\": { \"type\": \"<single|batch>\" }}\n```\n\nExample:\n```hljs-light\n{ \"name\": \"<name>\", \"log_types\": [ \"<type>\", ... ], \"log_statuses\": [ \"<status>\", ... ], \"policy\": { \"type\": \"<single|batch>\" }, \"action\": { \"type\": \"collection\", \"data_source\": \"<data source name>\", \"database\": \"<database name>\", \"collection\": \"<collection name>\" }}\n```\n\nExample:\n```hljs-light\nexports = async function(logs) {// `logs` is an array of 1-100 log objects// Use an API or library to send the logs to another service. await context.http.post({ url: \"https://api.example.com/logs\", body: logs, encodeBodyAsJSON: true });}\n```\n\nExample:\n```hljs-light\n{ \"name\": \"<name>\", \"log_types\": [ \"<type>\", ... ], \"log_statuses\": [ \"<status>\", ... ], \"policy\": { \"type\": \"<single|batch>\" }, \"action\": { \"type\": \"function\", \"name\": \"<function name>\" }}\n```\n\nExample:\n```hljs-light\nappservices push\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.215Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":9,"totalLines":48,"estimatedTokens":397}}404{"id":"doc-quick_start_atlas_kubernetes_operator_mongodb_do-3c13f8c7","source":"documentation","title":"Quick Start - Atlas Kubernetes Operator - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/operator/current/ak8so-quick-start/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\nautoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40\n```\n\nExample:\n```hljs-light\natlas kubernetes operator install --ipAccessList <IP_OR_CIDR> [options]\n```\n\nExample:\n```hljs-light\nkubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/refs/heads/main/releases/v<VERSION>/deploy/all-in-one.yaml\n```\n\nExample:\n```hljs-light\nkubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<VERSION>/deploy/namespaced/crds.yaml\n```\n\nExample:\n```hljs-light\nkubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<VERSION>/deploy/namespaced/namespaced-config.yaml\n```\n\nExample:\n```hljs-light\nkubectl create secret generic mongodb-atlas-operator-api-key \\ --from-literal=\"orgId=<atlas_organization_id>\" \\ --from-literal=\"publicApiKey=<atlas_api_public_key>\" \\ --from-literal=\"privateApiKey=<atlas_api_private_key>\" \\ -n mongodb-atlas-system\n```\n\nExample:\n```hljs-light\nkubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system\n```\n\nExample:\n```hljs-light\nkubectl create secret generic mongodb-atlas-operator-service-account \\ --from-literal=\"orgId=<atlas_organization_id>\" \\ --from-literal=\"clientId=<service_account_client_id>\" \\ --from-literal=\"clientSecret=<service_account_client_secret>\" \\ -n mongodb-atlas-system\n```\n\nExample:\n```hljs-light\nkubectl label secret mongodb-atlas-operator-service-account atlas.mongodb.com/type=credentials -n mongodb-atlas-system\n```\n\nExample:\n```hljs-light\ncat <<EOF | kubectl apply -f -apiVersion: atlas.mongodb.com/v1kind: AtlasProjectmetadata: name: my-projectspec: name: Test Atlas Operator Project projectIpAccessList: - ipAddress: <your-ip-address-range> comment: \"Adding your IP to Atlas access list\"EOF\n```\n\nExample:\n```hljs-light\ncat <<EOF | kubectl apply -f -apiVersion: atlas.mongodb.com/v1kind: AtlasDeploymentmetadata: name: my-atlas-clusterspec: projectRef: name: my-project deploymentSpec: clusterType: REPLICASET name: \"Test-cluster\" tags: - key: \"environment\" value: \"production\" replicationSpecs: - zoneName: US-Zone regionConfigs: - electableSpecs: instanceSize: M10 nodeCount: 3 providerName: AWS regionName: US_EAST_1 priority: 7EOF\n```\n\nExample:\n```hljs-light\ncat <<EOF | kubectl apply -f -apiVersion: atlas.mongodb.com/v1kind: AtlasDeploymentmetadata: name: my-atlas-clusterspec: projectRef: name: my-project deploymentSpec: clusterType: REPLICASET name: \"Test-cluster\" replicationSpecs: - regionConfigs: - regionName: US_EAST_1 providerName: TENANT backingProviderName: AWS electableSpecs: instanceSize: M0 nodeCount: 3EOF\n```\n\nExample:\n```hljs-light\nkubectl create secret generic the-user-password --from-literal=\"password=P@@sword%\"\n```\n\nExample:\n```hljs-light\nkubectl label secret the-user-password atlas.mongodb.com/type=credentials\n```\n\nExample:\n```hljs-light\ncat <<EOF | kubectl apply -f -apiVersion: atlas.mongodb.com/v1kind: AtlasDatabaseUsermetadata: name: my-database-userspec: roles: - roleName: \"readWriteAnyDatabase\" databaseName: \"admin\" projectRef: name: my-project username: theuser passwordSecretRef: name: the-user-passwordEOF\n```\n\nExample:\n```hljs-light\nkubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type==\"Ready\")].status}'\n```\n\nExample:\n```hljs-light\nkubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)';\n```\n\nExample:\n```hljs-light\n{ \"connectionStringStandard\": \"mongodb://theuser:P%40%40sword%25@test-cluster-shard-00-00.peqtm.mongodb.net:27017,test-cluster-shard-00-01.peqtm.mongodb.net:27017,test-cluster-shard-00-02.peqtm.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-pk82fl-shard-0\", \"connectionStringStandardSrv\": \"mongodb+srv://theuser:P%40%40sword%25@test-cluster.peqtm.mongodb.net\", \"password\": \"P@@sword%\", \"username\": \"theuser\" }\n```\n\nExample:\n```hljs-light\ncontainers: - name: test-app env: - name: \"CONNECTION_STRING\" valueFrom: secretKeyRef: name: test-atlas-operator-project-test-cluster-theuser key: connectionStringStandardSrv\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.217Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":19,"totalLines":98,"estimatedTokens":1168}}405{"id":"doc-set_up_data_federation_atlas_kubernetes_operator-41b2be62","source":"documentation","title":"Set Up Data Federation - Atlas Kubernetes Operator - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/operator/current/ak8so-set-up-data-federation/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\nautoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40\n```\n\nExample:\n```hljs-light\natlas cloudProviders accessRoles aws create --projectId <PROJECT-ID>\n```\n\nExample:\n```hljs-light\nAWS IAM role '<RoleID>' successfully created.Atlas AWS Account ARN: <AtlasAWSAccountARN>Unique External ID: <AtlasAssumedRoleExternalID>\n```\n\nExample:\n```hljs-light\n{ \"Version\":\"2012-10-17\", \"Statement\":[ { \"Effect\":\"Allow\", \"Principal\":{ \"AWS\":\"<atlasAWSAccountArn>\" }, \"Action\":\"sts:AssumeRole\", \"Condition\":{ \"StringEquals\":{ \"sts:ExternalId\":\"<atlasAssumedRoleExternalId>\" } } } ]}\n```\n\nExample:\n```hljs-light\ncat <<EOF | kubectl apply -f -apiVersion: atlas.mongodb.com/v1kind: AtlasDataFederationmetadata: name: my-federated-deploymentspec: projectRef: name: my-project namespace: default cloudProviderConfig: aws: roleId: 12345678 testS3Bucket: my-bucket dataProcessRegion: cloudProvider: AWS region: OREGON_USA name: my-fdi storage: databases: - collections: - dataSources: - allowInsecure: false collection: my-collection collectionRegex: database: my-database databaseRegex: defaultFormat: \".avro\" path: / provenanceFieldName: string storeName: my-data-store urls: - string: name: my-collection-mdb maxWildcardCollections: 100 name: my-database-mdb views: - name: my-view pipeline: source: my-source-collection stores: - name: my-store provider: S3 additionalStorageClasses: - STANDARD bucket: my-bucket delimiter: / includeTags: false prefix: data- public: false region: US_WEST_1EOF\n```\n\nExample:\n```hljs-light\nkubectl get atlasdatafederation my-federated-deployment -o=jsonpath='{.status.conditions[?(@.type==\"Ready\")].status}'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.223Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":33,"estimatedTokens":563}}406{"id":"doc-configure_access_to_atlas_atlas_kubernetes_opera-571e0925","source":"documentation","title":"Configure Access to Atlas - Atlas Kubernetes Operator - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/operator/current/configure-ak8so-access-to-atlas/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\nkubectl create secret generic mongodb-atlas-operator-api-key \\ --from-literal=\"orgId=<the_atlas_organization_id>\" \\ --from-literal=\"publicApiKey=<the_atlas_api_public_key>\" \\ --from-literal=\"privateApiKey=<the_atlas_api_private_key>\" \\ -n <operator_namespace>kubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system\n```\n\nExample:\n```hljs-light\nkubectl create secret generic my-project-connection \\ --from-literal=\"orgId=<the_atlas_organization_id>\" \\ --from-literal=\"publicApiKey=<the_atlas_api_public_key>\" \\ --from-literal=\"privateApiKey=<the_atlas_api_private_key>\" \\ -n <atlas_project_namespace>kubectl label secret my-project-connection atlas.mongodb.com/type=credentials -n <atlas_project_namespace>\n```\n\nExample:\n```hljs-light\nkubectl create secret generic mongodb-atlas-operator-service-account \\ --from-literal=\"orgId=<the_atlas_organization_id>\" \\ --from-literal=\"clientId=<the_service_account_client_id>\" \\ --from-literal=\"clientSecret=<the_service_account_client_secret>\" \\ -n <operator_namespace>kubectl label secret mongodb-atlas-operator-service-account atlas.mongodb.com/type=credentials -n mongodb-atlas-system\n```\n\nExample:\n```hljs-light\nkubectl create secret generic my-project-connection \\ --from-literal=\"orgId=<the_atlas_organization_id>\" \\ --from-literal=\"clientId=<the_service_account_client_id>\" \\ --from-literal=\"clientSecret=<the_service_account_client_secret>\" \\ -n <atlas_project_namespace>kubectl label secret my-project-connection atlas.mongodb.com/type=credentials -n <atlas_project_namespace>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.224Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":23,"estimatedTokens":454}}407{"id":"doc-atlasfederatedauth_custom_resource_atlas_kuberne-f64aee1f","source":"documentation","title":"AtlasFederatedAuth Custom Resource - Atlas Kubernetes Operator - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/operator/current/atlasfederatedauth-custom-resource/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\nautoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40\n```\n\nExample:\n```hljs-light\napiVersion: atlas.mongodb.com/v1kind: AtlasFederatedAuthmetadata: name: atlas-default-federated-auth namespace: mongodb-atlas-systemspec: enabled: true dataAccessIdentityProviders: - 32b6e34b3d91647abb20e7b8 - 42d8v92k5a34184rnv93f0c1 connectionSecretRef: name: my-org-secret namespace: mongodb-atlas-system domainAllowList: - my-org-domain.com domainRestrictionEnabled: true ssoDebugEnabled: false postAuthRoleGrants: - ORG_MEMBER roleMappings: - externalGroupName: org-admin roleAssignments: - role: ORG_OWNER - externalGroupName: dev-team roleAssignments: - role: ORG_GROUP_CREATOR - projectName: dev-project role: GROUP_OWNERstatus: conditions: - type: Ready status: True - type: RolesReady status: True - type: UsersReady status: True\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.224Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":303}}408{"id":"doc-atlas_administration_api_reference_atlas_mongodb-95679769","source":"documentation","title":"Atlas Administration API Reference - Atlas - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/api/atlas-admin-api-ref/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\ncurl --header 'Authorization: Bearer {ACCESS-TOKEN}' \\ --header 'Accept: application/json' \\ --include \\ --request GET \"https://cloud.mongodb.com/api/atlas/v1.0?pretty=true\"\n```\n\nExample:\n```hljs-light\n1{2 \"detail\" : \"Cannot find resource /api/atlas/v1.0/softwareComponents/version.\",3 \"error\" : 404,4 \"errorCode\" : \"RESOURCE_NOT_FOUND\",5 \"parameters\" : [ \"/api/atlas/v1.0/softwareComponents/version\" ],6 \"reason\" : \"Not Found\"7}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.233Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":161}}409{"id":"doc-external_dependencies_atlas_mongodb_docs-1509474f","source":"documentation","title":"External Dependencies - Atlas - MongoDB Docs","url":"https://www.mongodb.com/docs/atlas/atlas-ui/triggers/functions/dependencies/","text":"For AI documentation index is available at https://www.mongodb.com/docs/llms.txt — markdown versions of all pages are available by appending .md to any URL path.\n\nExample:\n```hljs-light\nnpm install <package name>\n```\n\nExample:\n```hljs-light\ntar -czf node_modules.tar.gz node_modules/\n```\n\nExample:\n```hljs-light\nexports = () => { const R = require(\"ramda\"); return R.map(x => x*2, [1,2,3]);}\n```\n\nExample:\n```hljs-light\nexports = function(arg){ const cloneDeep = require(\"lodash/cloneDeep\"); var original = { name: \"Deep\" }; var copy = cloneDeep(original); copy.name = \"John\"; console.log(`original: ${original.name}`); console.log(`copy: ${copy.name}`); return (original != copy);};\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:54.233Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":23,"estimatedTokens":180}}410{"id":"doc-functions_generatestaticparams_next_js-19e5e851","source":"documentation","title":"Functions: generateStaticParams | Next.js","url":"https://nextjs.org/docs/app/api-reference/functions/generate-static-params","text":"Example:\n```text\n// Return a list of `params` to populate the [slug] dynamic segment\nexport async function generateStaticParams() {\n const posts = await fetch('https://.../posts').then((res) => res.json())\n \n return posts.map((post) => ({\n slug: post.slug,\n }))\n}\n \n// Multiple versions of this page will be statically generated\n// using the `params` returned by `generateStaticParams`\nexport default async function Page({\n params,\n}: {\n params: Promise<{ slug: string }>\n}) {\n const { slug } = await params\n // ...\n}\n```\n\nExample:\n```text\nexport function generateStaticParams() {\n return [{ id: '1' }, { id: '2' }, { id: '3' }]\n}\n \n// Three versions of this page will be statically generated\n// using the `params` returned by `generateStaticParams`\n// - /product/1\n// - /product/2\n// - /product/3\nexport default async function Page({\n params,\n}: {\n params: Promise<{ id: string }>\n}) {\n const { id } = await params\n // ...\n}\n```\n\nExample:\n```text\nexport function generateStaticParams() {\n return [\n { category: 'a', product: '1' },\n { category: 'b', product: '2' },\n { category: 'c', product: '3' },\n ]\n}\n \n// Three versions of this page will be statically generated\n// using the `params` returned by `generateStaticParams`\n// - /products/a/1\n// - /products/b/2\n// - /products/c/3\nexport default async function Page({\n params,\n}: {\n params: Promise<{ category: string; product: string }>\n}) {\n const { category, product } = await params\n // ...\n}\n```\n\nExample:\n```text\nexport function generateStaticParams() {\n return [{ slug: ['a', '1'] }, { slug: ['b', '2'] }, { slug: ['c', '3'] }]\n}\n \n// Three versions of this page will be statically generated\n// using the `params` returned by `generateStaticParams`\n// - /product/a/1\n// - /product/b/2\n// - /product/c/3\nexport default async function Page({\n params,\n}: {\n params: Promise<{ slug: string[] }>\n}) {\n const { slug } = await params\n // ...\n}\n```\n\nExample:\n```text\nexport async function generateStaticParams() {\n const posts = await fetch('https://.../posts').then((res) => res.json())\n \n return posts.map((post) => ({\n slug: post.slug,\n }))\n}\n```\n\nExample:\n```text\nexport async function generateStaticParams() {\n const posts = await fetch('https://.../posts').then((res) => res.json())\n \n // Render the first 10 posts at build time\n return posts.slice(0, 10).map((post) => ({\n slug: post.slug,\n }))\n}\n```\n\nExample:\n```text\n// All posts besides the top 10 will be a 404\nexport const dynamicParams = false\n \nexport async function generateStaticParams() {\n const posts = await fetch('https://.../posts').then((res) => res.json())\n const topPosts = posts.slice(0, 10)\n \n return topPosts.map((post) => ({\n slug: post.slug,\n }))\n}\n```\n\nExample:\n```text\nexport async function generateStaticParams() {\n return []\n}\n```\n\nExample:\n```text\nexport const dynamic = 'force-static'\n```\n\nExample:\n```text\nexport async function generateStaticParams() {\n return [{ id: '1' }, { id: '2' }, { id: '3' }]\n}\n \nexport async function GET(\n request: Request,\n { params }: RouteContext<'/api/posts/[id]'>\n) {\n const { id } = await params\n // This will be statically generated for IDs 1, 2, and 3\n return Response.json({ id, title: `Post ${id}` })\n}\n```\n\nExample:\n```text\nexport async function generateStaticParams() {\n return [{ id: '1' }, { id: '2' }, { id: '3' }]\n}\n \nasync function getPost(id: Promise<string>) {\n 'use cache'\n const resolvedId = await id\n const response = await fetch(`https://api.example.com/posts/${resolvedId}`)\n return response.json()\n}\n \nexport async function GET(\n request: Request,\n { params }: RouteContext<'/api/posts/[id]'>\n) {\n const post = await getPost(params.then((p) => p.id))\n return Response.json(post)\n}\n```\n\nExample:\n```text\n// Generate segments for both [category] and [product]\nexport async function generateStaticParams() {\n const products = await fetch('https://.../products').then((res) => res.json())\n \n return products.map((product) => ({\n category: product.category.slug,\n product: product.id,\n }))\n}\n \nexport default function Page({\n params,\n}: {\n params: Promise<{ category: string; product: string }>\n}) {\n // ...\n}\n```\n\nExample:\n```text\n// Generate segments for [category]\nexport async function generateStaticParams() {\n const products = await fetch('https://.../products').then((res) => res.json())\n \n return products.map((product) => ({\n category: product.category.slug,\n }))\n}\n \nexport default function Layout({\n params,\n}: {\n params: Promise<{ category: string }>\n}) {\n // ...\n}\n```\n\nExample:\n```text\n// Generate segments for [product] using the `params` passed from\n// the parent segment's `generateStaticParams` function\nexport async function generateStaticParams({\n params: { category },\n}: {\n params: { category: string }\n}) {\n const products = await fetch(\n `https://.../products?category=${category}`\n ).then((res) => res.json())\n \n return products.map((product) => ({\n product: product.id,\n }))\n}\n \nexport default function Page({\n params,\n}: {\n params: Promise<{ category: string; product: string }>\n}) {\n // ...\n}\n```\n\nExample:\n```text\nexport async function generateStaticParams({\n params: { category },\n}: {\n params: Awaited<LayoutProps<'/products/[category]'>['params']>\n}) {\n const products = await fetch(\n `https://.../products?category=${category}`\n ).then((res) => res.json())\n \n return products.map((product) => ({\n product: product.id,\n }))\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.447Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":15,"totalLines":264,"estimatedTokens":1370}}411{"id":"doc-adapters_routing_with_next_routing_next_js-bdb52954","source":"documentation","title":"Adapters: Routing with @next/routing | Next.js","url":"https://nextjs.org/docs/app/api-reference/adapters/routing-with-next-routing","text":"Example:\n```text\nimport { resolveRoutes } from '@next/routing'\n \nconst pathnames = [\n ...outputs.pages,\n ...outputs.pagesApi,\n ...outputs.appPages,\n ...outputs.appRoutes,\n ...outputs.staticFiles,\n].map((output) => output.pathname)\n \nconst result = await resolveRoutes({\n url: new URL(requestUrl),\n buildId,\n basePath: config.basePath || '',\n i18n: config.i18n,\n headers: new Headers(requestHeaders),\n requestBody, // ReadableStream\n pathnames,\n routes: routing,\n invokeMiddleware: async (ctx) => {\n // platform-specific middleware invocation\n return {}\n },\n})\n \nif (result.resolvedPathname) {\n console.log('Resolved pathname:', result.resolvedPathname)\n console.log('Resolved query:', result.resolvedQuery)\n console.log('Invocation target:', result.invocationTarget)\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.468Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":35,"estimatedTokens":203}}412{"id":"doc-module_ngx_http_v2_module-ee37fe86","source":"documentation","title":"Module ngx_http_v2_module","url":"https://nginx.org/en/docs/http/ngx_http_v2_module.html","text":"Join us for the first quarterly NGINX Community Call on July 22nd to connect and discuss NGINX development.\n\nenglishрусскийnewsaboutdownloadsecuritydocumentationfaqbookscommunityenterprisecommunity forum (new)x.comblognjsingress controllergateway fabricModule ngx_http_v2_moduleKnown IssuesExample ConfigurationDirectives http2 http2_body_preread_size http2_chunk_size http2_idle_timeout http2_max_concurrent_pushes http2_max_concurrent_streams http2_max_field_size http2_max_header_size http2_max_requests http2_push http2_push_preload http2_recv_buffer_size http2_recv_timeoutEmbedded Variables The ngx_http_v2_module module (1.9.5) provides support for HTTP/2. This module is not built by default, it should be enabled with the --with-http_v2_module configuration parameter. Known Issues Before version 1.9.14, buffering of a client request body could not be disabled regardless of proxy_request_buffering, fastcgi_request_buffering, uwsgi_request_buffering, and scgi_request_buffering directive values. Before version 1.19.1, the lingering_close mechanism was not used to control closing HTTP/2 connections. Example Configuration server { listen 443 ssl; http2 on; ssl_certificate server.crt; ssl_certificate_key server.key; } Note that accepting HTTP/2 connections over TLS requires the “Application-Layer Protocol Negotiation” (ALPN) TLS extension support, which is available since OpenSSL version 1.0.2. Also note that if the ssl_prefer_server_ciphers directive is set to the value “on”, the ciphers should be configured to comply with RFC 9113, Appendix A black list and supported by clients. Directives on | off; off; , server This directive appeared in version 1.25.1. Enables the HTTP/2 protocol. size; 64k; , server This directive appeared in version 1.11.0. Sets the size of the buffer per each request in which the request body may be saved before it is started to be processed. size; 8k; , server, location Sets the maximum size of chunks into which the response body is sliced. A too low value results in higher overhead. A too high value impairs prioritization due to HOL blocking. time; 3m; , server This directive is obsolete since version 1.19.7. The keepalive_timeout directive should be used instead. Sets the timeout of inactivity after which the connection is closed. number; 10; , server This directive appeared in version 1.13.9. This directive is obsolete since version 1.25.1. Limits the maximum number of concurrent push requests in a connection. number; 128; , server Sets the maximum number of concurrent HTTP/2 streams in a connection. size; 4k; , server This directive is obsolete since version 1.19.7. The large_client_header_buffers directive should be used instead. Limits the maximum size of an HPACK-compressed request header field. The limit applies equally to both name and value. Note that if Huffman encoding is applied, the actual size of decompressed name and value strings may be larger. For most requests, the default limit should be enough. size; 16k; , server This directive is obsolete since version 1.19.7. The large_client_header_buffers directive should be used instead. Limits the maximum size of the entire request header list after HPACK decompression. For most requests, the default limit should be enough. number; 1000; , server This directive appeared in version 1.11.6. This directive is obsolete since version 1.19.7. The keepalive_requests directive should be used instead. Sets the maximum number of requests (including push requests) that can be served through one HTTP/2 connection, after which the next client request will lead to connection closing and the need of establishing a new connection. Closing connections periodically is necessary to free per-connection memory allocations. Therefore, using too high maximum number of requests could result in excessive memory usage and not recommended. uri | off; off; , server, location This directive appeared in version 1.13.9. This directive is obsolete since version 1.25.1. The early_hints directive can be used instead. Pre-emptively sends (pushes) a request to the specified uri along with the response to the original request. Only relative URIs with absolute path will be processed, for /static/css/main.css; The uri value can contain variables. Several http2_push directives can be specified on the same configuration level. The off parameter cancels the effect of the http2_push directives inherited from the previous configuration level. on | off; off; , server, location This directive appeared in version 1.13.9. This directive is obsolete since version 1.25.1. Enables automatic conversion of preload links specified in the “Link” response header fields into push requests. size; 256k; Sets the size of the per worker input buffer. time; 30s; , server This directive is obsolete since version 1.19.7. The client_header_timeout directive should be used instead. Sets the timeout for expecting more data from the client, after which the connection is closed. Embedded Variables The ngx_http_v2_module module supports the following embedded variables: $http2 negotiated protocol identifier: “h2” for HTTP/2 over TLS, “h2c” for HTTP/2 over cleartext TCP, or an empty string otherwise.\n\nExample:\n```text\nserver {\n listen 443 ssl;\n\n http2 on;\n\n ssl_certificate server.crt;\n ssl_certificate_key server.key;\n}\n```\n\nExample:\n```text\nhttp2 off;\n```\n\nExample:\n```text\nhttp2_body_preread_size 64k;\n```\n\nExample:\n```text\nhttp2_chunk_size 8k;\n```\n\nExample:\n```text\nhttp2_idle_timeout 3m;\n```\n\nExample:\n```text\nhttp2_max_concurrent_pushes 10;\n```\n\nExample:\n```text\nhttp2_max_concurrent_streams 128;\n```\n\nExample:\n```text\nhttp2_max_field_size 4k;\n```\n\nExample:\n```text\nhttp2_max_header_size 16k;\n```\n\nExample:\n```text\nhttp2_max_requests 1000;\n```\n\nExample:\n```text\nhttp2_push off;\n```\n\nExample:\n```text\nhttp2_push /static/css/main.css;\n```\n\nExample:\n```text\nhttp2_push_preload off;\n```\n\nExample:\n```text\nhttp2_recv_buffer_size 256k;\n```\n\nExample:\n```text\nhttp2_recv_timeout 30s;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.745Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":15,"totalLines":87,"estimatedTokens":1505}}413{"id":"doc-module_ngx_stream_mqtt_preread_module-741e8bc9","source":"documentation","title":"Module ngx_stream_mqtt_preread_module","url":"https://nginx.org/en/docs/stream/ngx_stream_mqtt_preread_module.html","text":"Join us for the first quarterly NGINX Community Call on July 22nd to connect and discuss NGINX development.\n\nenglishрусскийnewsaboutdownloadsecuritydocumentationfaqbookscommunityenterprisecommunity forum (new)x.comblognjsingress controllergateway fabricModule ngx_stream_mqtt_preread_moduleExample ConfigurationDirectives mqtt_prereadEmbedded Variables The ngx_stream_mqtt_preread_module module (1.23.4) allows extracting information from the CONNECT message of the Message Queuing Telemetry Transport protocol (MQTT) versions 3.1.1 and 5.0, for example, a username or a client ID. This module is available as part of our commercial subscription. Example Configuration mqtt_preread on; return $mqtt_preread_clientid; Directives on | off; off; , server Enables extracting information from the MQTT CONNECT message at the preread phase. Embedded Variables $mqtt_preread_clientid the clientid value from the CONNECT message $mqtt_preread_username the username value from the CONNECT message\n\nExample:\n```text\nmqtt_preread on;\nreturn $mqtt_preread_clientid;\n```\n\nExample:\n```text\nmqtt_preread off;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:55.816Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":16,"estimatedTokens":280}}414{"id":"doc-git_git_push_documentation-c83b2724","source":"documentation","title":"Git - git-push Documentation","url":"http://git-scm.com/docs/git-push/ru","text":"Example:\n```text\ngitpush--all--branches--mirror--tags--follow-tags--atomic-n--dry-run--receive-pack=--repo=-f--force-d--delete--prune-q--quiet-v--verbose-u--set-upstream-o--push-option=--no-signed--signed=truefalseif-asked--force-with-lease=:--force-if-includes--no-verify\n```\n\nExample:\n```text\n$ git config remotes.all-remotes \"origin gitlab backup\"\n```\n\nExample:\n```text\ngit remote add origin-push $(git config remote.origin.url)\ngit fetch origin-push\n```\n\nExample:\n```text\ngit push --force-with-lease origin-push\n```\n\nExample:\n```text\ngit fetch # обновить 'master' из внешнего репозитория\ngit tag base master # отметить нашу базовую точку\ngit rebase -i master # переписать некоторые коммиты\ngit push --force-with-lease=master:base master:master\n```\n\nExample:\n```text\n[url \"<настоящая-база-url>\"]\n\t\tinsteadOf = <другая-база-url>\n```\n\nExample:\n```text\n[url \"git://git.host.xz/\"]\n\t\tinsteadOf = host.xz:/path/to/\n\t\tinsteadOf = work:\n```\n\nExample:\n```text\n[url \"<настоящая-база-url>\"]\n\t\tpushInsteadOf = <другая-база-url>\n```\n\nExample:\n```text\n[url \"ssh://example.org/\"]\n\t\tpushInsteadOf = git://example.org/\n```\n\nExample:\n```text\n[remote \"<имя>\"]\n\t\turl = <URL>\n\t\tpushurl = <URL-отправки>\n\t\tpush = <спецификатор-ссылки>\n\t\tfetch = <спецификатор-ссылки>\n```\n\nExample:\n```text\nURL: один из вышеуказанных форматов URL\n\tPush: <спецификатор-ссылки>\n\tPull: <спецификатор-ссылки>\n```\n\nExample:\n```text\n<URL>#<голова>\n```\n\nExample:\n```text\nrefs/heads/<голова>:refs/heads/<ветка>\n```\n\nExample:\n```text\nHEAD:refs/heads/<голова>\n```\n\nExample:\n```text\n[branch \"main\"]\n remote = origin\n merge = refs/heads/main\n```\n\nExample:\n```text\n$ git config remotes.all-remotes \"r1 r2 r3\"\n```\n\nExample:\n```text\ngit push <параметры> все-внешние <аргументы>\n```\n\nExample:\n```text\ngit push <параметры> r1 <аргументы>\ngit push <параметры> r2 <аргументы>\n...\ngit push <параметры> rN <аргументы>\n```\n\nExample:\n```text\n<флаг> <сводка> <откуда> -> <куда> (<причина>)\n```\n\nExample:\n```text\n<флаг> \\t <откуда>:<куда> \\t <сводка> (<причина>)\n```\n\nExample:\n```text\nB\n /\n ---X---A\n```\n\nExample:\n```text\nB---C\n / /\n ---X---A\n```\n\nExample:\n```text\nB D\n / /\n ---X---A\n```\n\nExample:\n```text\no---o---o---A---B origin/master\n\t\t \\\n\t\t X---Y---Z dev\n```\n\nExample:\n```text\nA---B (ветка без имени)\n\t\t /\n\t o---o---o---X---Y---Z master\n```\n\nExample:\n```text\nПример:\n\n/etc/gitconfig\n push.pushoption = a\n push.pushoption = b\n\n~/.gitconfig\n push.pushoption = c\n\nrepo/.git/config\n push.pushoption =\n push.pushoption = b\n\nВ результате останется только b (a и c будут очищены).\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:42.231Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":26,"totalLines":174,"estimatedTokens":650}}415{"id":"doc-git_git_fetch_documentation-734bbf19","source":"documentation","title":"Git - git-fetch Documentation","url":"http://git-scm.com/docs/git-fetch/fr","text":"Example:\n```text\ngitfetch'gitfetch'gitfetch'--multiplegitfetch'--all\n```\n\nExample:\n```text\n[url \"<veritable-base-d-url>\"]\n\t\tinsteadOf = <autre-base-d’URL>\n```\n\nExample:\n```text\n[url \"git://git.host.xz/\"]\n\t\tinsteadOf = host.xz:/chemin/vers/\n\t\tinsteadOf = travail:\n```\n\nExample:\n```text\n[url \"<veritable-base-d’URL>\"]\n\t\tpushInsteadOf = <autre-base-d-URL>\n```\n\nExample:\n```text\n[url \"ssh://exemple.org/\"]\n\t\tpushInsteadOf = git://exemple.org/\n```\n\nExample:\n```text\n[remote \"<nom>\"]\n\t\turl = <URL>\n\t\tpushurl = <url-poussée>\n\t\tpush = <spéc-de-réf>\n\t\tfetch = <spéc-de-réf>\n```\n\nExample:\n```text\nURL: un des format d'URL ci-dessus\n\tPush: <spéc-de-réf>\n\tPull: <spéc-de-réf>\n```\n\nExample:\n```text\n<URL>#<tête>\n```\n\nExample:\n```text\nrefs/heads/<tête>:refs/heads/<branche>\n```\n\nExample:\n```text\nHEAD:refs/heads/<tête>\n```\n\nExample:\n```text\n[branch \"main\"]\n remote = origin\n merge = refs/heads/main\n```\n\nExample:\n```text\n[remote \"origin\"]\n\tfetch = +refs/heads/*:refs/remotes/origin/*\n```\n\nExample:\n```text\n# Pendant la récupération\n$ git fetch --prune <nom>\n\n# Élaguer seulement, ne pas récupére\n$ git remote prune <nom>\n```\n\nExample:\n```text\n# Ces deux ligne vont chercher les étiquettes\n$ git fetch --no-tags origin 'refs/tags/*:refs/tags/*\n$ git fetch --no-tags --prune-tags origin\n```\n\nExample:\n```text\n$ git fetch origin --prune --prune-tags\n$ git fetch origin --prune 'refs/tags/*:refs/tags/*\n$ git fetch <url-d-origin> --prune --prune-tags\n$ git fetch <url-d-origin> --prune 'refs/tags/*:refs/tags/*\n```\n\nExample:\n```text\n<drapeau> <résumé> <de> -> <à> [<raison>]\n```\n\nExample:\n```text\n<drapeau> <ancien-id-objet> <nouveau-id-objet> <référence-locale>\n```\n\nExample:\n```text\n$ git fetch origin\n```\n\nExample:\n```text\n$ git fetch origin +seen:seen maint:tmp\n```\n\nExample:\n```text\n$ git fetch git://git.kernel.org/pub/scm/git/git.git maint\n$ git log FETCH_HEAD\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:42.313Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":20,"totalLines":125,"estimatedTokens":468}}416{"id":"doc-git_git_blame_documentation-b4f23b1d","source":"documentation","title":"Git - git-blame Documentation","url":"http://git-scm.com/docs/git-blame/2.34.0","text":"Example:\n```text\ngit blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]\n\t [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]\n\t [--ignore-rev <rev>] [--ignore-revs-file <file>]\n\t [--color-lines] [--color-by-age] [--progress] [--abbrev=<n>]\n\t [<rev> | --contents <file> | --reverse <rev>..<rev>] [--] <file>\n```\n\nExample:\n```text\n$ git log --pretty=oneline -S'blame_usage'\n5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file>\nea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output\n```\n\nExample:\n```text\n# count the number of lines attributed to each author\ngit blame --line-porcelain file |\nsed -n 's/^author //p' |\nsort | uniq -c | sort -rn\n```\n\nExample:\n```text\ngit blame -L 40,60 foo\ngit blame -L 40,+21 foo\n```\n\nExample:\n```text\ngit blame -L '/^sub hello {/,/^}$/' foo\n```\n\nExample:\n```text\ngit blame v2.6.18.. -- foo\ngit blame --since=3.weeks -- foo\n```\n\nExample:\n```text\ngit log --diff-filter=A --pretty=short -- foo\n```\n\nExample:\n```text\ngit blame -C -C -f $commit^! -- foo\n```\n\nExample:\n```text\n<40-byte hex sha1> <sourceline> <resultline> <num_lines>\n```\n\nExample:\n```text\n\"filename\" <whitespace-quoted-filename-goes-here>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:42.719Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":62,"estimatedTokens":308}}417{"id":"doc-git_git_blame_documentation-6841450b","source":"documentation","title":"Git - git-blame Documentation","url":"http://git-scm.com/docs/git-blame/2.30.0","text":"Example:\n```text\ngit blame [-c] [-b] [-l] [--root] [-t] [-f] [-n] [-s] [-e] [-p] [-w] [--incremental]\n\t [-L <range>] [-S <revs-file>] [-M] [-C] [-C] [-C] [--since=<date>]\n\t [--ignore-rev <rev>] [--ignore-revs-file <file>]\n\t [--progress] [--abbrev=<n>] [<rev> | --contents <file> | --reverse <rev>..<rev>]\n\t [--] <file>\n```\n\nExample:\n```text\n$ git log --pretty=oneline -S'blame_usage'\n5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file>\nea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output\n```\n\nExample:\n```text\n# count the number of lines attributed to each author\ngit blame --line-porcelain file |\nsed -n 's/^author //p' |\nsort | uniq -c | sort -rn\n```\n\nExample:\n```text\ngit blame -L 40,60 foo\ngit blame -L 40,+21 foo\n```\n\nExample:\n```text\ngit blame -L '/^sub hello {/,/^}$/' foo\n```\n\nExample:\n```text\ngit blame v2.6.18.. -- foo\ngit blame --since=3.weeks -- foo\n```\n\nExample:\n```text\ngit log --diff-filter=A --pretty=short -- foo\n```\n\nExample:\n```text\ngit blame -C -C -f $commit^! -- foo\n```\n\nExample:\n```text\n<40-byte hex sha1> <sourceline> <resultline> <num_lines>\n```\n\nExample:\n```text\n\"filename\" <whitespace-quoted-filename-goes-here>\n```\n\nExample:\n```text\nProper Name <commit@email.xx>\n```\n\nExample:\n```text\n<proper@email.xx> <commit@email.xx>\n```\n\nExample:\n```text\nProper Name <proper@email.xx> <commit@email.xx>\n```\n\nExample:\n```text\nProper Name <proper@email.xx> Commit Name <commit@email.xx>\n```\n\nExample:\n```text\nJoe Developer <joe@example.com>\nJoe R. Developer <joe@example.com>\nJane Doe <jane@example.com>\nJane Doe <jane@laptop.(none)>\nJane D. <jane@desktop.(none)>\n```\n\nExample:\n```text\nJane Doe <jane@desktop.(none)>\nJoe R. Developer <joe@example.com>\n```\n\nExample:\n```text\nnick1 <bugs@company.xx>\nnick2 <bugs@company.xx>\nnick2 <nick2@company.xx>\nsanta <me@company.xx>\nclaus <me@company.xx>\nCTO <cto@coompany.xx>\n```\n\nExample:\n```text\n<cto@company.xx> <cto@coompany.xx>\nSome Dude <some@dude.xx> nick1 <bugs@company.xx>\nOther Author <other@author.xx> nick2 <bugs@company.xx>\nOther Author <other@author.xx> <nick2@company.xx>\nSanta Claus <santa.claus@northpole.xx> <me@company.xx>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:42.726Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":18,"totalLines":116,"estimatedTokens":550}}418{"id":"doc-git_git_show_documentation-e283fc18","source":"documentation","title":"Git - git-show Documentation","url":"http://git-scm.com/docs/git-show/2.0.5","text":"Example:\n```text\ngit show [options] <object>…\n```\n\nExample:\n```text\n<sha1> <title line>\n```\n\nExample:\n```text\ncommit <sha1>\nAuthor: <author>\n```\n\nExample:\n```text\n<title line>\n```\n\nExample:\n```text\ncommit <sha1>\nAuthor: <author>\nDate: <author date>\n```\n\nExample:\n```text\n<full commit message>\n```\n\nExample:\n```text\ncommit <sha1>\nAuthor: <author>\nCommit: <committer>\n```\n\nExample:\n```text\ncommit <sha1>\nAuthor: <author>\nAuthorDate: <author date>\nCommit: <committer>\nCommitDate: <committer date>\n```\n\nExample:\n```text\nFrom <sha1> <date>\nFrom: <author>\nDate: <author date>\nSubject: [PATCH] <title line>\n```\n\nExample:\n```text\nThe author of fe6e0ee was Junio C Hamano, 23 hours ago\nThe title was >>t4119: test autocomputing -p<n> for traditional diff input.<<\n\n--------\n+\nThe placeholders are:\n\n- '%H': commit hash\n- '%h': abbreviated commit hash\n- '%T': tree hash\n- '%t': abbreviated tree hash\n- '%P': parent hashes\n- '%p': abbreviated parent hashes\n- '%an': author name\n- '%aN': author name (respecting .mailmap, see git-shortlog[1]\n or git-blame[1])\n- '%ae': author email\n- '%aE': author email (respecting .mailmap, see\n git-shortlog[1] or git-blame[1])\n- '%ad': author date (format respects --date= option)\n- '%aD': author date, RFC2822 style\n- '%ar': author date, relative\n- '%at': author date, UNIX timestamp\n- '%ai': author date, ISO 8601 format\n- '%cn': committer name\n- '%cN': committer name (respecting .mailmap, see\n git-shortlog[1] or git-blame[1])\n- '%ce': committer email\n- '%cE': committer email (respecting .mailmap, see\n git-shortlog[1] or git-blame[1])\n- '%cd': committer date\n- '%cD': committer date, RFC2822 style\n- '%cr': committer date, relative\n- '%ct': committer date, UNIX timestamp\n- '%ci': committer date, ISO 8601 format\n- '%d': ref names, like the --decorate option of git-log[1]\n- '%e': encoding\n- '%s': subject\n- '%f': sanitized subject line, suitable for a filename\n- '%b': body\n- '%B': raw body (unwrapped subject and body)\n- '%N': commit notes\n- '%GG': raw verification message from GPG for a signed commit\n- '%G?': show \"G\" for a Good signature, \"B\" for a Bad signature, \"U\" for a good,\n untrusted signature and \"N\" for no signature\n- '%GS': show the name of the signer for a signed commit\n- '%GK': show the key used to sign a signed commit\n- '%gD': reflog selector, e.g., `refs/stash@{1}`\n- '%gd': shortened reflog selector, e.g., `stash@{1}`\n- '%gn': reflog identity name\n- '%gN': reflog identity name (respecting .mailmap, see\n git-shortlog[1] or git-blame[1])\n- '%ge': reflog identity email\n- '%gE': reflog identity email (respecting .mailmap, see\n git-shortlog[1] or git-blame[1])\n- '%gs': reflog subject\n- '%Cred': switch color to red\n- '%Cgreen': switch color to green\n- '%Cblue': switch color to blue\n- '%Creset': reset color\n- '%C(...)': color specification, as described in color.branch.* config option;\n adding `auto,` at the beginning will emit color only when colors are\n enabled for log output (by `color.diff`, `color.ui`, or `--color`, and\n respecting the `auto` settings of the former if we are going to a\n terminal). `auto` alone (i.e. `%C(auto)`) will turn on auto coloring\n on the next placeholders until the color is switched again.\n- '%m': left, right or boundary mark\n- '%n': newline\n- '%%': a raw '%'\n- '%x00': print a byte from a hex code\n- '%w([<w>[,<i1>[,<i2>]]])': switch line wrapping, like the -w option of\n git-shortlog[1].\n- '%<(<N>[,trunc|ltrunc|mtrunc])': make the next placeholder take at\n least N columns, padding spaces on the right if necessary.\n Optionally truncate at the beginning (ltrunc), the middle (mtrunc)\n or the end (trunc) if the output is longer than N columns.\n Note that truncating only works correctly with N >= 2.\n- '%<|(<N>)': make the next placeholder take at least until Nth\n columns, padding spaces on the right if necessary\n- '%>(<N>)', '%>|(<N>)': similar to '%<(<N>)', '%<|(<N>)'\n respectively, but padding spaces on the left\n- '%>>(<N>)', '%>>|(<N>)': similar to '%>(<N>)', '%>|(<N>)'\n respectively, except that if the next placeholder takes more spaces\n than given and there are spaces on its left, use those spaces\n- '%><(<N>)', '%><|(<N>)': similar to '% <(<N>)', '%<|(<N>)'\n respectively, but padding both sides (i.e. the text is centered)\n\nNOTE: Some placeholders may depend on other options given to the\nrevision traversal engine. For example, the `%g*` reflog options will\ninsert an empty string unless we are traversing reflog entries (e.g., by\n`git log -g`). The `%d` placeholder will use the \"short\" decoration\nformat if `--decorate` was not already provided on the command line.\n\nIf you add a `+` (plus sign) after '%' of a placeholder, a line-feed\nis inserted immediately before the expansion if and only if the\nplaceholder expands to a non-empty string.\n\nIf you add a `-` (minus sign) after '%' of a placeholder, line-feeds that\nimmediately precede the expansion are deleted if and only if the\nplaceholder expands to an empty string.\n\nIf you add a ` ` (space) after '%' of a placeholder, a space\nis inserted immediately before the expansion if and only if the\nplaceholder expands to a non-empty string.\n\n* 'tformat:'\n+\nThe 'tformat:' format works exactly like 'format:', except that it\nprovides \"terminator\" semantics instead of \"separator\" semantics. In\nother words, each commit has the message terminator character (usually a\nnewline) appended, rather than a separator placed between entries.\nThis means that the final entry of a single-line format will be properly\nterminated with a new line, just as the \"oneline\" format does.\nFor example:\n+\n---------------------\n$ git log -2 --pretty=format:%h 4da45bef \\\n | perl -pe '$_ .= \" -- NO NEWLINE\\n\" unless /\\n/'\n4da45be\n7134973 -- NO NEWLINE\n\n$ git log -2 --pretty=tformat:%h 4da45bef \\\n | perl -pe '$_ .= \" -- NO NEWLINE\\n\" unless /\\n/'\n4da45be\n7134973\n---------------------\n+\nIn addition, any unrecognized string that has a `%` in it is interpreted\nas if it has `tformat:` in front of it. For example, these two are\nequivalent:\n+\n---------------------\n$ git log -2 --pretty=tformat:%h 4da45bef\n$ git log -2 --pretty=%h 4da45bef\n---------------------\n\n\n\nCOMMON DIFF OPTIONS\n-------------------\n\n:git-log: 1\n// Please don't remove this comment as asciidoc behaves badly when\n// the first non-empty line is ifdef/ifndef. The symptom is that\n// without this comment the <git-diff-core> attribute conditionally\n// defined below ends up being defined unconditionally.\n// Last checked with asciidoc 7.0.2.\n\n:git-diff-core: 1\n\n\n-p::\n-u::\n--patch::\n\tGenerate patch (see section on generating patches).\n\t{git-diff? This is the default.}\n\n-s::\n--no-patch::\n\tSuppress diff output. Useful for commands like `git show` that\n\tshow the patch by default, or to cancel the effect of `--patch`.\n\n-U<n>::\n--unified=<n>::\n\tGenerate diffs with <n> lines of context instead of\n\tthe usual three.\n\tImplies `-p`.\n\n--raw::\n\tGenerate the raw format.\n\t{git-diff-core? This is the default.}\n\n--patch-with-raw::\n\tSynonym for `-p --raw`.\n\n--minimal::\n\tSpend extra time to make sure the smallest possible\n\tdiff is produced.\n\n--patience::\n\tGenerate a diff using the \"patience diff\" algorithm.\n\n--histogram::\n\tGenerate a diff using the \"histogram diff\" algorithm.\n\n--diff-algorithm={patience|minimal|histogram|myers}::\n\tChoose a diff algorithm. The variants are as follows:\n+\n--\n`default`, `myers`;;\n\tThe basic greedy diff algorithm. Currently, this is the default.\n`minimal`;;\n\tSpend extra time to make sure the smallest possible diff is\n\tproduced.\n`patience`;;\n\tUse \"patience diff\" algorithm when generating patches.\n`histogram`;;\n\tThis algorithm extends the patience algorithm to \"support\n\tlow-occurrence common elements\".\n--\n+\nFor instance, if you configured diff.algorithm variable to a\nnon-default value and want to use the default one, then you\nhave to use `--diff-algorithm=default` option.\n\n--stat[=<width>[,<name-width>[,<count>]]]::\n\tGenerate a diffstat. By default, as much space as necessary\n\twill be used for the filename part, and the rest for the graph\n\tpart. Maximum width defaults to terminal width, or 80 columns\n\tif not connected to a terminal, and can be overridden by\n\t`<width>`. The width of the filename part can be limited by\n\tgiving another width `<name-width>` after a comma. The width\n\tof the graph part can be limited by using\n\t`--stat-graph-width=<width>` (affects all commands generating\n\ta stat graph) or by setting `diff.statGraphWidth=<width>`\n\t(does not affect `git format-patch`).\n\tBy giving a third parameter `<count>`, you can limit the\n\toutput to the first `<count>` lines, followed by `...` if\n\tthere are more.\n+\nThese parameters can also be set individually with `--stat-width=<width>`,\n`--stat-name-width=<name-width>` and `--stat-count=<count>`.\n\n--numstat::\n\tSimilar to `--stat`, but shows number of added and\n\tdeleted lines in decimal notation and pathname without\n\tabbreviation, to make it more machine friendly. For\n\tbinary files, outputs two `-` instead of saying\n\t`0 0`.\n\n--shortstat::\n\tOutput only the last line of the `--stat` format containing total\n\tnumber of modified files, as well as number of added and deleted\n\tlines.\n\n--dirstat[=<param1,param2,...>]::\n\tOutput the distribution of relative amount of changes for each\n\tsub-directory. The behavior of `--dirstat` can be customized by\n\tpassing it a comma separated list of parameters.\n\tThe defaults are controlled by the `diff.dirstat` configuration\n\tvariable (see git-config[1]).\n\tThe following parameters are available:\n+\n--\n`changes`;;\n\tCompute the dirstat numbers by counting the lines that have been\n\tremoved from the source, or added to the destination. This ignores\n\tthe amount of pure code movements within a file. In other words,\n\trearranging lines in a file is not counted as much as other changes.\n\tThis is the default behavior when no parameter is given.\n`lines`;;\n\tCompute the dirstat numbers by doing the regular line-based diff\n\tanalysis, and summing the removed/added line counts. (For binary\n\tfiles, count 64-byte chunks instead, since binary files have no\n\tnatural concept of lines). This is a more expensive `--dirstat`\n\tbehavior than the `changes` behavior, but it does count rearranged\n\tlines within a file as much as other changes. The resulting output\n\tis consistent with what you get from the other `--*stat` options.\n`files`;;\n\tCompute the dirstat numbers by counting the number of files changed.\n\tEach changed file counts equally in the dirstat analysis. This is\n\tthe computationally cheapest `--dirstat` behavior, since it does\n\tnot have to look at the file contents at all.\n`cumulative`;;\n\tCount changes in a child directory for the parent directory as well.\n\tNote that when using `cumulative`, the sum of the percentages\n\treported may exceed 100%. The default (non-cumulative) behavior can\n\tbe specified with the `noncumulative` parameter.\n<limit>;;\n\tAn integer parameter specifies a cut-off percent (3% by default).\n\tDirectories contributing less than this percentage of the changes\n\tare not shown in the output.\n--\n+\nExample: The following will count changed files, while ignoring\ndirectories with less than 10% of the total amount of changed files,\nand accumulating child directory counts in the parent directories:\n`--dirstat=files,10,cumulative`.\n\n--summary::\n\tOutput a condensed summary of extended header information\n\tsuch as creations, renames and mode changes.\n\n--patch-with-stat::\n\tSynonym for `-p --stat`.\n\n\n-z::\n\tWhen `--raw`, `--numstat`, `--name-only` or `--name-status` has been\n\tgiven, do not munge pathnames and use NULs as output field terminators.\n+\nWithout this option, each pathname output will have TAB, LF, double quotes,\nand backslash characters replaced with `\\t`, `\\n`, `\\\"`, and `\\\\`,\nrespectively, and the pathname will be enclosed in double quotes if\nany of those replacements occurred.\n\n--name-only::\n\tShow only names of changed files.\n\n--name-status::\n\tShow only names and status of changed files. See the description\n\tof the `--diff-filter` option on what the status letters mean.\n\n--submodule[=<format>]::\n\tSpecify how differences in submodules are shown. When `--submodule`\n\tor `--submodule=log` is given, the 'log' format is used. This format lists\n\tthe commits in the range like git-submodule[1] `summary` does.\n\tOmitting the `--submodule` option or specifying `--submodule=short`,\n\tuses the 'short' format. This format just shows the names of the commits\n\tat the beginning and end of the range. Can be tweaked via the\n\t`diff.submodule` configuration variable.\n\n--color[=<when>]::\n\tShow colored diff.\n\t`--color` (i.e. without '=<when>') is the same as `--color=always`.\n\t'<when>' can be one of `always`, `never`, or `auto`.\n\n--no-color::\n\tTurn off colored diff.\n\tIt is the same as `--color=never`.\n\n--word-diff[=<mode>]::\n\tShow a word diff, using the <mode> to delimit changed words.\n\tBy default, words are delimited by whitespace; see\n\t`--word-diff-regex` below. The <mode> defaults to 'plain', and\n\tmust be one of:\n+\n--\ncolor::\n\tHighlight changed words using only colors. Implies `--color`.\nplain::\n\tShow words as `[-removed-]` and `{+added+}`. Makes no\n\tattempts to escape the delimiters if they appear in the input,\n\tso the output may be ambiguous.\nporcelain::\n\tUse a special line-based format intended for script\n\tconsumption. Added/removed/unchanged runs are printed in the\n\tusual unified diff format, starting with a `+`/`-`/` `\n\tcharacter at the beginning of the line and extending to the\n\tend of the line. Newlines in the input are represented by a\n\ttilde `~` on a line of its own.\nnone::\n\tDisable word diff again.\n--\n+\nNote that despite the name of the first mode, color is used to\nhighlight the changed parts in all modes if enabled.\n\n--word-diff-regex=<regex>::\n\tUse <regex> to decide what a word is, instead of considering\n\truns of non-whitespace to be a word. Also implies\n\t`--word-diff` unless it was already enabled.\n+\nEvery non-overlapping match of the\n<regex> is considered a word. Anything between these matches is\nconsidered whitespace and ignored(!) for the purposes of finding\ndifferences. You may want to append `|[^[:space:]]` to your regular\nexpression to make sure that it matches all non-whitespace characters.\nA match that contains a newline is silently truncated(!) at the\nnewline.\n+\nThe regex can also be set via a diff driver or configuration option, see\ngitattributes[1] or git-config[1]. Giving it explicitly\noverrides any diff driver or configuration setting. Diff drivers\noverride configuration settings.\n\n--color-words[=<regex>]::\n\tEquivalent to `--word-diff=color` plus (if a regex was\n\tspecified) `--word-diff-regex=<regex>`.\n\n--no-renames::\n\tTurn off rename detection, even when the configuration\n\tfile gives the default to do so.\n\n--check::\n\tWarn if changes introduce whitespace errors. What are\n\tconsidered whitespace errors is controlled by `core.whitespace`\n\tconfiguration. By default, trailing whitespaces (including\n\tlines that solely consist of whitespaces) and a space character\n\tthat is immediately followed by a tab character inside the\n\tinitial indent of the line are considered whitespace errors.\n\tExits with non-zero status if problems are found. Not compatible\n\twith --exit-code.\n\n--full-index::\n\tInstead of the first handful of characters, show the full\n\tpre- and post-image blob object names on the \"index\"\n\tline when generating patch format output.\n\n--binary::\n\tIn addition to `--full-index`, output a binary diff that\n\tcan be applied with `git-apply`.\n\n--abbrev[=<n>]::\n\tInstead of showing the full 40-byte hexadecimal object\n\tname in diff-raw format output and diff-tree header\n\tlines, show only a partial prefix. This is\n\tindependent of the `--full-index` option above, which controls\n\tthe diff-patch output format. Non default number of\n\tdigits can be specified with `--abbrev=<n>`.\n\n-B[<n>][/<m>]::\n--break-rewrites[=[<n>][/<m>]]::\n\tBreak complete rewrite changes into pairs of delete and\n\tcreate. This serves two purposes:\n+\nIt affects the way a change that amounts to a total rewrite of a file\nnot as a series of deletion and insertion mixed together with a very\nfew lines that happen to match textually as the context, but as a\nsingle deletion of everything old followed by a single insertion of\neverything new, and the number `m` controls this aspect of the -B\noption (defaults to 60%). `-B/70%` specifies that less than 30% of the\noriginal should remain in the result for Git to consider it a total\nrewrite (i.e. otherwise the resulting patch will be a series of\ndeletion and insertion mixed together with context lines).\n+\nWhen used with -M, a totally-rewritten file is also considered as the\nsource of a rename (usually -M only considers a file that disappeared\nas the source of a rename), and the number `n` controls this aspect of\nthe -B option (defaults to 50%). `-B20%` specifies that a change with\naddition and deletion compared to 20% or more of the file's size are\neligible for being picked up as a possible source of a rename to\nanother file.\n\n-M[<n>]::\n--find-renames[=<n>]::\n\tDetect renames.\n\tIf `n` is specified, it is a threshold on the similarity\n\tindex (i.e. amount of addition/deletions compared to the\n\tfile's size). For example, `-M90%` means Git should consider a\n\tdelete/add pair to be a rename if more than 90% of the file\n\thasn't changed. Without a `%` sign, the number is to be read as\n\ta fraction, with a decimal point before it. I.e., `-M5` becomes\n\t0.5, and is thus the same as `-M50%`. Similarly, `-M05` is\n\tthe same as `-M5%`. To limit detection to exact renames, use\n\t`-M100%`. The default similarity index is 50%.\n\n-C[<n>]::\n--find-copies[=<n>]::\n\tDetect copies as well as renames. See also `--find-copies-harder`.\n\tIf `n` is specified, it has the same meaning as for `-M<n>`.\n\n--find-copies-harder::\n\tFor performance reasons, by default, `-C` option finds copies only\n\tif the original file of the copy was modified in the same\n\tchangeset. This flag makes the command\n\tinspect unmodified files as candidates for the source of\n\tcopy. This is a very expensive operation for large\n\tprojects, so use it with caution. Giving more than one\n\t`-C` option has the same effect.\n\n-D::\n--irreversible-delete::\n\tOmit the preimage for deletes, i.e. print only the header but not\n\tthe diff between the preimage and `/dev/null`. The resulting patch\n\tis not meant to be applied with `patch` or `git apply`; this is\n\tsolely for people who want to just concentrate on reviewing the\n\ttext after the change. In addition, the output obviously lack\n\tenough information to apply such a patch in reverse, even manually,\n\thence the name of the option.\n+\nWhen used together with `-B`, omit also the preimage in the deletion part\nof a delete/create pair.\n\n-l<num>::\n\tThe `-M` and `-C` options require O(n^2) processing time where n\n\tis the number of potential rename/copy targets. This\n\toption prevents rename/copy detection from running if\n\tthe number of rename/copy targets exceeds the specified\n\tnumber.\n\n--diff-filter=[(A|C|D|M|R|T|U|X|B)...[*]]::\n\tSelect only files that are Added (`A`), Copied (`C`),\n\tDeleted (`D`), Modified (`M`), Renamed (`R`), have their\n\ttype (i.e. regular file, symlink, submodule, ...) changed (`T`),\n\tare Unmerged (`U`), are\n\tUnknown (`X`), or have had their pairing Broken (`B`).\n\tAny combination of the filter characters (including none) can be used.\n\tWhen `*` (All-or-none) is added to the combination, all\n\tpaths are selected if there is any file that matches\n\tother criteria in the comparison; if there is no file\n\tthat matches other criteria, nothing is selected.\n\n-S<string>::\n\tLook for differences that change the number of occurrences of\n\tthe specified string (i.e. addition/deletion) in a file.\n\tIntended for the scripter's use.\n+\nIt is useful when you're looking for an exact block of code (like a\nstruct), and want to know the history of that block since it first\ncame into being: use the feature iteratively to feed the interesting\nblock in the preimage back into `-S`, and keep going until you get the\nvery first version of the block.\n\n-G<regex>::\n\tLook for differences whose patch text contains added/removed\n\tlines that match <regex>.\n+\nTo illustrate the difference between `-S<regex> --pickaxe-regex` and\n`-G<regex>`, consider a commit with the following diff in the same\nfile:\n+\n----\n+ return !regexec(regexp, two->ptr, 1, ®match, 0);\n...\n- hit = !regexec(regexp, mf2.ptr, 1, ®match, 0);\n----\n+\nWhile `git log -G\"regexec\\(regexp\"` will show this commit, `git log\n-S\"regexec\\(regexp\" --pickaxe-regex` will not (because the number of\noccurrences of that string did not change).\n+\nSee the 'pickaxe' entry in gitdiffcore[7] for more\ninformation.\n\n--pickaxe-all::\n\tWhen `-S` or `-G` finds a change, show all the changes in that\n\tchangeset, not just the files that contain the change\n\tin <string>.\n\n--pickaxe-regex::\n\tTreat the <string> given to `-S` as an extended POSIX regular\n\texpression to match.\n\n-O<orderfile>::\n\tOutput the patch in the order specified in the\n\t<orderfile>, which has one shell glob pattern per line.\n\tThis overrides the `diff.orderfile` configuration variable\n\t(see git-config[1]). To cancel `diff.orderfile`,\n\tuse `-O/dev/null`.\n\n-R::\n\tSwap two inputs; that is, show differences from index or\n\ton-disk file to tree contents.\n\n--relative[=<path>]::\n\tWhen run from a subdirectory of the project, it can be\n\ttold to exclude changes outside the directory and show\n\tpathnames relative to it with this option. When you are\n\tnot in a subdirectory (e.g. in a bare repository), you\n\tcan name which subdirectory to make the output relative\n\tto by giving a <path> as an argument.\n\n-a::\n--text::\n\tTreat all files as text.\n\n--ignore-space-at-eol::\n\tIgnore changes in whitespace at EOL.\n\n-b::\n--ignore-space-change::\n\tIgnore changes in amount of whitespace. This ignores whitespace\n\tat line end, and considers all other sequences of one or\n\tmore whitespace characters to be equivalent.\n\n-w::\n--ignore-all-space::\n\tIgnore whitespace when comparing lines. This ignores\n\tdifferences even if one line has whitespace where the other\n\tline has none.\n\n--ignore-blank-lines::\n\tIgnore changes whose lines are all blank.\n\n--inter-hunk-context=<lines>::\n\tShow the context between diff hunks, up to the specified number\n\tof lines, thereby fusing hunks that are close to each other.\n\n-W::\n--function-context::\n\tShow whole surrounding functions of changes.\n\n--exit-code::\n\tMake the program exit with codes similar to diff(1).\n\tThat is, it exits with 1 if there were differences and\n\t0 means no differences.\n\n--quiet::\n\tDisable all output of the program. Implies `--exit-code`.\n\n--ext-diff::\n\tAllow an external diff helper to be executed. If you set an\n\texternal diff driver with gitattributes[5], you need\n\tto use this option with git-log[1] and friends.\n\n--no-ext-diff::\n\tDisallow external diff drivers.\n\n--textconv::\n--no-textconv::\n\tAllow (or disallow) external text conversion filters to be run\n\twhen comparing binary files. See gitattributes[5] for\n\tdetails. Because textconv filters are typically a one-way\n\tconversion, the resulting diff is suitable for human\n\tconsumption, but cannot be applied. For this reason, textconv\n\tfilters are enabled by default only for git-diff[1] and\n\tgit-log[1], but not for git-format-patch[1] or\n\tdiff plumbing commands.\n\n--ignore-submodules[=<when>]::\n\tIgnore changes to submodules in the diff generation. <when> can be\n\teither \"none\", \"untracked\", \"dirty\" or \"all\", which is the default.\n\tUsing \"none\" will consider the submodule modified when it either contains\n\tuntracked or modified files or its HEAD differs from the commit recorded\n\tin the superproject and can be used to override any settings of the\n\t'ignore' option in git-config[1] or gitmodules[5]. When\n\t\"untracked\" is used submodules are not considered dirty when they only\n\tcontain untracked content (but they are still scanned for modified\n\tcontent). Using \"dirty\" ignores all changes to the work tree of submodules,\n\tonly changes to the commits stored in the superproject are shown (this was\n\tthe behavior until 1.7.0). Using \"all\" hides all changes to submodules.\n\n--src-prefix=<prefix>::\n\tShow the given source prefix instead of \"a/\".\n\n--dst-prefix=<prefix>::\n\tShow the given destination prefix instead of \"b/\".\n\n--no-prefix::\n\tDo not show any source or destination prefix.\n\nFor more detailed explanation on these common options, see also\ngitdiffcore[7].\n\n\nGenerating patches with -p\n--------------------------\n\nWhen \"git-diff-index\", \"git-diff-tree\", or \"git-diff-files\" are run\nwith a '-p' option, \"git diff\" without the '--raw' option, or\n\"git log\" with the \"-p\" option, they\ndo not produce the output described above; instead they produce a\npatch file. You can customize the creation of such patches via the\nGIT_EXTERNAL_DIFF and the GIT_DIFF_OPTS environment variables.\n\nWhat the -p option produces is slightly different from the traditional\ndiff format:\n\n1. It is preceded with a \"git diff\" header that looks like this:\n\n diff --git a/file1 b/file2\n+\nThe `a/` and `b/` filenames are the same unless rename/copy is\ninvolved. Especially, even for a creation or a deletion,\n`/dev/null` is _not_ used in place of the `a/` or `b/` filenames.\n+\nWhen rename/copy is involved, `file1` and `file2` show the\nname of the source file of the rename/copy and the name of\nthe file that rename/copy produces, respectively.\n\n2. It is followed by one or more extended header lines:\n\n old mode <mode>\n new mode <mode>\n deleted file mode <mode>\n new file mode <mode>\n copy from <path>\n copy to <path>\n rename from <path>\n rename to <path>\n similarity index <number>\n dissimilarity index <number>\n index <hash>..<hash> <mode>\n+\nFile modes are printed as 6-digit octal numbers including the file type\nand file permission bits.\n+\nPath names in extended headers do not include the `a/` and `b/` prefixes.\n+\nThe similarity index is the percentage of unchanged lines, and\nthe dissimilarity index is the percentage of changed lines. It\nis a rounded down integer, followed by a percent sign. The\nsimilarity index value of 100% is thus reserved for two equal\nfiles, while 100% dissimilarity means that no line from the old\nfile made it into the new one.\n+\nThe index line includes the SHA-1 checksum before and after the change.\nThe <mode> is included if the file mode does not change; otherwise,\nseparate lines indicate the old and the new mode.\n\n3. TAB, LF, double quote and backslash characters in pathnames\n are represented as `\\t`, `\\n`, `\\\"` and `\\\\`, respectively.\n If there is need for such substitution then the whole\n pathname is put in double quotes.\n\n4. All the `file1` files in the output refer to files before the\n commit, and all the `file2` files refer to files after the commit.\n It is incorrect to apply each change to each file sequentially. For\n example, this patch will swap a and b:\n\n diff --git a/a b/b\n rename from a\n rename to b\n diff --git a/b b/a\n rename from b\n rename to a\n\n\ncombined diff format\n--------------------\n\nAny diff-generating command can take the `-c` or `--cc` option to\nproduce a 'combined diff' when showing a merge. This is the default\nformat when showing merges with git-diff[1] or\ngit-show[1]. Note also that you can give the `-m' option to any\nof these commands to force generation of diffs with individual parents\nof a merge.\n\nA 'combined diff' format looks like this:\n\n------------\ndiff --combined describe.c\nindex fabadb8,cc95eb0..4866510\n--- a/describe.c\n+++ b/describe.c\n@@@ -98,20 -98,12 +98,20 @@@\n\treturn (a_date > b_date) ? -1 : (a_date == b_date) ? 0 : 1;\n }\n\n- static void describe(char *arg)\n -static void describe(struct commit *cmit, int last_one)\n++static void describe(char *arg, int last_one)\n {\n +\tunsigned char sha1[20];\n +\tstruct commit *cmit;\n\tstruct commit_list *list;\n\tstatic int initialized = 0;\n\tstruct commit_name *n;\n\n +\tif (get_sha1(arg, sha1) < 0)\n +\t\tusage(describe_usage);\n +\tcmit = lookup_commit_reference(sha1);\n +\tif (!cmit)\n +\t\tusage(describe_usage);\n +\n\tif (!initialized) {\n\t\tinitialized = 1;\n\t\tfor_each_ref(get_name);\n------------\n\n1. It is preceded with a \"git diff\" header, that looks like\n this (when '-c' option is used):\n\n diff --combined file\n+\nor like this (when '--cc' option is used):\n\n diff --cc file\n\n2. It is followed by one or more extended header lines\n (this example shows a merge with two parents):\n\n index <hash>,<hash>..<hash>\n mode <mode>,<mode>..<mode>\n new file mode <mode>\n deleted file mode <mode>,<mode>\n+\nThe `mode <mode>,<mode>..<mode>` line appears only if at least one of\nthe <mode> is different from the rest. Extended headers with\ninformation about detected contents movement (renames and\ncopying detection) are designed to work with diff of two\n<tree-ish> and are not used by combined diff format.\n\n3. It is followed by two-line from-file/to-file header\n\n --- a/file\n +++ b/file\n+\nSimilar to two-line header for traditional 'unified' diff\nformat, `/dev/null` is used to signal created or deleted\nfiles.\n\n4. Chunk header format is modified to prevent people from\n accidentally feeding it to `patch -p1`. Combined diff format\n was created for review of merge commit changes, and was not\n meant for apply. The change is similar to the change in the\n extended 'index' header:\n\n @@@ <from-file-range> <from-file-range> <to-file-range> @@@\n+\nThere are (number of parents + 1) `@` characters in the chunk\nheader for combined diff format.\n\nUnlike the traditional 'unified' diff format, which shows two\nfiles A and B with a single column that has `-` (minus --\nappears in A but removed in B), `+` (plus -- missing in A but\nadded to B), or `\" \"` (space -- unchanged) prefix, this format\ncompares two or more files file1, file2,... with one file X, and\nshows how X differs from each of fileN. One column for each of\nfileN is prepended to the output line to note how X's line is\ndifferent from it.\n\nA `-` character in the column N means that the line appears in\nfileN but it does not appear in the result. A `+` character\nin the column N means that the line appears in the result,\nand fileN does not have that line (in other words, the line was\nadded, from the point of view of that parent).\n\nIn the above example output, the function signature was changed\nfrom both files (hence two `-` removals from both file1 and\nfile2, plus `++` to mean one line that was added does not appear\nin either file1 or file2). Also eight other lines are the same\nfrom file1 but do not appear in file2 (hence prefixed with `+`).\n\nWhen shown by `git diff-tree -c`, it compares the parents of a\nmerge commit with the merge result (i.e. file1..fileN are the\nparents). When shown by `git diff-files -c`, it compares the\ntwo unresolved merge parents with the working tree file\n(i.e. file1 is stage 2 aka \"our version\", file2 is stage 3 aka\n\"their version\").\n\n\n\nEXAMPLES\n--------\n\n`git show v1.0.0`::\n\tShows the tag `v1.0.0`, along with the object the tags\n\tpoints at.\n\n`git show v1.0.0^{tree}`::\n\tShows the tree pointed to by the tag `v1.0.0`.\n\n`git show -s --format=%s v1.0.0^{commit}`::\n\tShows the subject of the commit pointed to by the\n\ttag `v1.0.0`.\n\n`git show next~10:Documentation/README`::\n\tShows the contents of the file `Documentation/README` as\n\tthey were current in the 10th last commit of the branch\n\t`next`.\n\n`git show master:Makefile master:t/Makefile`::\n\tConcatenates the contents of said Makefiles in the head\n\tof the branch `master`.\n\nDiscussion\n----------\n\nAt the core level, Git is character encoding agnostic.\n\n - The pathnames recorded in the index and in the tree objects\n are treated as uninterpreted sequences of non-NUL bytes.\n What readdir(2) returns are what are recorded and compared\n with the data Git keeps track of, which in turn are expected\n to be what lstat(2) and creat(2) accepts. There is no such\n thing as pathname encoding translation.\n\n - The contents of the blob objects are uninterpreted sequences\n of bytes. There is no encoding translation at the core\n level.\n\n - The commit log messages are uninterpreted sequences of non-NUL\n bytes.\n\nAlthough we encourage that the commit log messages are encoded\nin UTF-8, both the core and Git Porcelain are designed not to\nforce UTF-8 on projects. If all participants of a particular\nproject find it more convenient to use legacy encodings, Git\ndoes not forbid it. However, there are a few things to keep in\nmind.\n\n. 'git commit' and 'git commit-tree' issues\n a warning if the commit log message given to it does not look\n like a valid UTF-8 string, unless you explicitly say your\n project uses a legacy encoding. The way to say this is to\n have i18n.commitencoding in `.git/config` file, like this:\n+\n------------\n[i18n]\n\tcommitencoding = ISO-8859-1\n------------\n+\nCommit objects created with the above setting record the value\nof `i18n.commitencoding` in its `encoding` header. This is to\nhelp other people who look at them later. Lack of this header\nimplies that the commit log message is encoded in UTF-8.\n\n. 'git log', 'git show', 'git blame' and friends look at the\n `encoding` header of a commit object, and try to re-code the\n log message into UTF-8 unless otherwise specified. You can\n specify the desired output encoding with\n `i18n.logoutputencoding` in `.git/config` file, like this:\n+\n------------\n[i18n]\n\tlogoutputencoding = ISO-8859-1\n------------\n+\nIf you do not have this configuration variable, the value of\n`i18n.commitencoding` is used instead.\n\nNote that we deliberately chose not to re-code the commit log\nmessage when a commit is made to force UTF-8 at the commit\nobject level, because re-coding to UTF-8 is not necessarily a\nreversible operation.\n\n\nGIT\n---\nPart of the git[1] suite\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:42.749Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":964,"estimatedTokens":8452}}419{"id":"doc-git_git_reflog_documentation-dd8d873c","source":"documentation","title":"Git - git-reflog Documentation","url":"http://git-scm.com/docs/git-reflog/2.0.5","text":"Example:\n```text\ngit reflog <subcommand> <options>\n```\n\nExample:\n```text\ngit reflog expire [--dry-run] [--stale-fix] [--verbose]\n\t[--expire=<time>] [--expire-unreachable=<time>] [--all] <refs>…\ngit reflog delete ref@{specifier}…\ngit reflog [show] [log-options] [<ref>]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:43.715Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":14,"estimatedTokens":72}}420{"id":"doc-git_git_format_patch_documentation-edccef5c","source":"documentation","title":"Git - git-format-patch Documentation","url":"http://git-scm.com/docs/git-format-patch/sv","text":"Example:\n```text\ngit format-patch [-k] [(-o|--output-directory) <kat> | --stdout]\n\t\t [--no-thread | --thread[=<stil>]]\n\t\t [(--attach|--inline)[=<gräns>] | --no-attach]\n\t\t [-s | --signoff]\n\t\t [--signature=<signature> | --no-signature]\n\t\t [--signature-file=<fil>]\n\t\t [-n | --numbered | -N | --no-numbered]\n\t\t [--start-number <n>] [--numbered-files]\n\t\t [--in-reply-to=<meddelande-id>] [--suffix=.<sfx>]\n\t\t [--ignore-if-in-upstream] [--always]\n\t\t [--cover-from-description=<läge>]\n\t\t [--rfc[=<rfc>]] [--subject-prefix=<ärende-prefix>]\n\t\t [(--reroll-count|-v) <n>]\n\t\t [--to=<mejl>] [--cc=<mejl>]\n\t\t [--[no-]cover-letter] [--quiet]\n\t\t [--[no-]encode-email-headers]\n\t\t [--no-notes | --notes[=<ref>]]\n\t\t [--interdiff=<föregående>]\n\t\t [--range-diff=<föregående> [--creation-factor=<procent>]]\n\t\t [--filename-max-length=<n>]\n\t\t [--progress]\n\t\t [<common-diff-options>]\n\t\t [ <sedan> | <revision-intervall> ]\n```\n\nExample:\n```text\n[format]\n\theaders = \"Organization: git-foo\\n\"\n\tsubjectPrefix = CHANGE\n\tsuffix = .txt\n\tnumbered = auto\n\tto = <email>\n\tcc = <email>\n\tattach [ = mime-boundary-string ]\n\tsignOff = true\n\toutputDirectory = <directory>\n\tcoverLetter = auto\n\tcoverFromDescription = auto\n```\n\nExample:\n```text\narch/arm-konfigurationsfiler bantades ner med hjälp av ett python-skript\n(Se kommentaren i incheckning c2330e286f68f1c408b4aa6515ba49d57f05beae)\n\narch/arm config files were slimmed down using a python script\n(See commit c2330e286f68f1c408b4aa6515ba49d57f05beae comment)\n\nGör samma sak för ia64 så att vi kan få ett elegant och prydligt utseende\n...\n```\n\nExample:\n```text\n...\n> Så vi borde göra si och så.\n\nDet låter rimligt för mig. Hur är det med den här patchen?\n\n-- >8 --\nSubject: [IA64] Lägg till ia64-konfigurationsfiler på Uwe Kleine-König-dieten\n\narch/arm-konfigurationsfiler bantades ner med hjälp av ett python-skript\n...\n```\n\nExample:\n```text\n$ git fetch <projekt> master:test-apply\n$ git switch test-apply\n$ git restore --source=HEAD --staged --worktree :/\n$ git am a.patch\n```\n\nExample:\n```text\nmailnews.send_plaintext_flowed => false\n\tmailnews.wraplength => 0\n```\n\nExample:\n```text\nmail.html_compose => false\n\tmail.identity.default.compose_html => false\n\tmail.identity.id?.compose_html => false\n```\n\nExample:\n```text\n---P---X---Y---Z---A---B---C\n```\n\nExample:\n```text\nbase-commit: P\nprerequisite-patch-id: X\nprerequisite-patch-id: Y\nprerequisite-patch-id: Z\n```\n\nExample:\n```text\n---P---X---A---M---C\n \\ /\n Y---Z---B\n```\n\nExample:\n```text\n$ git format-patch -k --stdout R1..R2 | git am -3 -k\n```\n\nExample:\n```text\n$ git format-patch origin\n```\n\nExample:\n```text\n$ git format-patch --root origin\n```\n\nExample:\n```text\n$ git format-patch -M -B origin\n```\n\nExample:\n```text\n$ git format-patch -3\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:44.682Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":15,"totalLines":136,"estimatedTokens":708}}421{"id":"doc-git_git_fsck_documentation-664ccabe","source":"documentation","title":"Git - git-fsck Documentation","url":"http://git-scm.com/docs/git-fsck/2.6.7","text":"Example:\n```text\ngit fsck [--tags] [--root] [--unreachable] [--cache] [--no-reflogs]\n\t [--[no-]full] [--strict] [--verbose] [--lost-found]\n\t [--[no-]dangling] [--[no-]progress] [--connectivity-only] [<object>*]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:44.848Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":57}}422{"id":"doc-git_git_fast_import_documentation-bec209db","source":"documentation","title":"Git - git-fast-import Documentation","url":"http://git-scm.com/docs/git-fast-import/2.24.0","text":"Example:\n```text\nfrontend | git fast-import [<options>]\n```\n\nExample:\n```text\n'commit' SP <ref> LF\n\tmark?\n\toriginal-oid?\n\t('author' (SP <name>)? SP LT <email> GT SP <when> LF)?\n\t'committer' (SP <name>)? SP LT <email> GT SP <when> LF\n\t('encoding' SP <encoding>)?\n\tdata\n\t('from' SP <commit-ish> LF)?\n\t('merge' SP <commit-ish> LF)*\n\t(filemodify | filedelete | filecopy | filerename | filedeleteall | notemodify)*\n\tLF?\n```\n\nExample:\n```text\nfrom refs/heads/branch^0\n```\n\nExample:\n```text\n'M' SP <mode> SP <dataref> SP <path> LF\n```\n\nExample:\n```text\n'M' SP <mode> SP 'inline' SP <path> LF\n\tdata\n```\n\nExample:\n```text\n'D' SP <path> LF\n```\n\nExample:\n```text\n'C' SP <path> SP <path> LF\n```\n\nExample:\n```text\n'R' SP <path> SP <path> LF\n```\n\nExample:\n```text\n'deleteall' LF\n```\n\nExample:\n```text\n'N' SP <dataref> SP <commit-ish> LF\n```\n\nExample:\n```text\n'N' SP 'inline' SP <commit-ish> LF\n\tdata\n```\n\nExample:\n```text\n'mark' SP ':' <idnum> LF\n```\n\nExample:\n```text\n'original-oid' SP <object-identifier> LF\n```\n\nExample:\n```text\n'tag' SP <name> LF\n\tmark?\n\t'from' SP <commit-ish> LF\n\toriginal-oid?\n\t'tagger' (SP <name>)? SP LT <email> GT SP <when> LF\n\tdata\n```\n\nExample:\n```text\n'reset' SP <ref> LF\n\t('from' SP <commit-ish> LF)?\n\tLF?\n```\n\nExample:\n```text\nreset refs/tags/938\nfrom :938\n```\n\nExample:\n```text\n'blob' LF\n\tmark?\n\toriginal-oid?\n\tdata\n```\n\nExample:\n```text\n'data' SP <count> LF\n\t<raw> LF?\n```\n\nExample:\n```text\n'data' SP '<<' <delim> LF\n\t<raw> LF\n\t<delim> LF\n\tLF?\n```\n\nExample:\n```text\n'alias' LF\n\tmark\n\t'to' SP <commit-ish> LF\n\tLF?\n```\n\nExample:\n```text\n'checkpoint' LF\n\tLF?\n```\n\nExample:\n```text\n'progress' SP <any> LF\n\tLF?\n```\n\nExample:\n```text\nfrontend | git fast-import | sed 's/^progress //'\n```\n\nExample:\n```text\n'get-mark' SP ':' <idnum> LF\n```\n\nExample:\n```text\n'cat-blob' SP <dataref> LF\n```\n\nExample:\n```text\n<sha1> SP 'blob' SP <size> LF\n<contents> LF\n```\n\nExample:\n```text\n'ls' SP <path> LF\n```\n\nExample:\n```text\n'ls' SP <dataref> SP <path> LF\n```\n\nExample:\n```text\n<mode> SP ('blob' | 'tree' | 'commit') SP <dataref> HT <path> LF\n```\n\nExample:\n```text\nmissing SP <path> LF\n```\n\nExample:\n```text\n'feature' SP <feature> ('=' <argument>)? LF\n```\n\nExample:\n```text\n'option' SP <option> LF\n```\n\nExample:\n```text\nmkfifo fast-import-output\nfrontend <fast-import-output |\ngit fast-import >fast-import-output\n```\n\nExample:\n```text\n$ cat >in <<END_OF_INPUT\n# my very first test commit\ncommit refs/heads/master\ncommitter Shawn O. Pearce <spearce> 19283 -0400\n# who is that guy anyway?\ndata <<EOF\nthis is my commit\nEOF\nM 644 inline .gitignore\ndata <<EOF\n.gitignore\nEOF\nM 777 inline bob\nEND_OF_INPUT\n```\n\nExample:\n```text\n$ git fast-import <in\nfatal: Corrupt mode: M 777 inline bob\nfast-import: dumping crash report to .git/fast_import_crash_8434\n```\n\nExample:\n```text\n$ cat .git/fast_import_crash_8434\nfast-import crash report:\n fast-import process: 8434\n parent process : 1391\n at Sat Sep 1 00:58:12 2007\n```\n\nExample:\n```text\nfatal: Corrupt mode: M 777 inline bob\n```\n\nExample:\n```text\nMost Recent Commands Before Crash\n---------------------------------\n # my very first test commit\n commit refs/heads/master\n committer Shawn O. Pearce <spearce> 19283 -0400\n # who is that guy anyway?\n data <<EOF\n M 644 inline .gitignore\n data <<EOF\n* M 777 inline bob\n```\n\nExample:\n```text\nActive Branch LRU\n-----------------\n active_branches = 1 cur, 5 max\n```\n\nExample:\n```text\npos clock name\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n 1) 0 refs/heads/master\n```\n\nExample:\n```text\nInactive Branches\n-----------------\nrefs/heads/master:\n status : active loaded dirty\n tip commit : 0000000000000000000000000000000000000000\n old tree : 0000000000000000000000000000000000000000\n cur tree : 0000000000000000000000000000000000000000\n commit clock: 0\n last pack :\n```\n\nExample:\n```text\n-------------------\nEND OF CRASH REPORT\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:44.926Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":42,"totalLines":287,"estimatedTokens":970}}423{"id":"doc-git_git_commit_tree_documentation-8dd7e2a2","source":"documentation","title":"Git - git-commit-tree Documentation","url":"http://git-scm.com/docs/git-commit-tree/pt_BR","text":"Example:\n```text\ngit commit-tree <tree> [(-p <origem>)…]\ngit commit-tree [(-p <origem>)…] [-S[<keyid>]] [(-m <mensagem>)…]\n\t\t [(-F <arquivo>)…] <árvore>\n```\n\nExample:\n```text\n[i18n]\n\tcommitEncoding = ISO-8859-1\n```\n\nExample:\n```text\n[i18n]\n\tlogOutputEncoding = ISO-8859-1\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.003Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":20,"estimatedTokens":74}}424{"id":"doc-git_git_bundle_documentation-aaf3f782","source":"documentation","title":"Git - git-bundle Documentation","url":"http://git-scm.com/docs/git-bundle/uk","text":"Example:\n```text\ngit bundle create [-q | --quiet | --progress]\n\t\t [--version=<version>] <file> <git-rev-list-args>\ngit bundle verify [-q | --quiet] <file>\ngit bundle list-heads <file> [<refname>…]\ngit bundle unbundle [--progress] <file> [<refname>…]\n```\n\nExample:\n```text\n$ git bundle create master.bundle master\n$ echo master | git bundle create master.bundle --stdin\n$ git bundle create master-and-next.bundle master next\n$ (echo master; echo next) | git bundle create master-and-next.bundle --stdin\n```\n\nExample:\n```text\n$ git bundle create recent-master.bundle master~10..master\n$ git bundle create recent-updates.bundle master~10..master next~5..next\n```\n\nExample:\n```text\n$ git bundle create HEAD.bundle $(git rev-parse HEAD)\nфатальний результат: Відмова у створенні порожнього набору.\n$ git bundle create master-yesterday.bundle master~10..master~5\nфатальний результат: Відмова у створенні порожнього набору.\n```\n\nExample:\n```text\n$ git bundle create full.bundle new\n```\n\nExample:\n```text\n$ git bundle create full.bundle old..new\n```\n\nExample:\n```text\n$ git bundle create backup.bundle --all\n```\n\nExample:\n```text\n$ git clone backup.bundle <new directory>\n```\n\nExample:\n```text\nmachineA$ cd R1\nmachineA$ git bundle create file.bundle master\nmachineA$ git tag -f lastR2bundle master\n```\n\nExample:\n```text\nmachineB$ git clone -b master /home/me/tmp/file.bundle R2\n```\n\nExample:\n```text\n[remote \"origin\"]\n url = /home/me/tmp/file.bundle\n fetch = refs/heads/*:refs/remotes/origin/*\n```\n\nExample:\n```text\nmachineA$ cd R1\nmachineA$ git bundle create file.bundle lastR2bundle..master\nmachineA$ git tag -f lastR2bundle master\n```\n\nExample:\n```text\nmachineB$ cd R2\nmachineB$ git pull\n```\n\nExample:\n```text\n$ git bundle create mybundle v1.0.0..master\n```\n\nExample:\n```text\n$ git bundle create mybundle --since=10.days master\n```\n\nExample:\n```text\n$ git bundle create mybundle -10 master\n```\n\nExample:\n```text\n$ git bundle verify mybundle\n```\n\nExample:\n```text\n$ git fetch mybundle master:localRef\n```\n\nExample:\n```text\n$ git ls-remote mybundle\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.025Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":19,"totalLines":114,"estimatedTokens":518}}425{"id":"doc-git_git_bundle_documentation-636b5d5c","source":"documentation","title":"Git - git-bundle Documentation","url":"http://git-scm.com/docs/git-bundle/2.18.0","text":"Example:\n```text\ngit bundle create <file> <git-rev-list-args>\ngit bundle verify <file>\ngit bundle list-heads <file> [<refname>…]\ngit bundle unbundle <file> [<refname>…]\n```\n\nExample:\n```text\nmachineA$ cd R1\nmachineA$ git bundle create file.bundle master\nmachineA$ git tag -f lastR2bundle master\n```\n\nExample:\n```text\nmachineB$ git clone -b master /home/me/tmp/file.bundle R2\n```\n\nExample:\n```text\n[remote \"origin\"]\n url = /home/me/tmp/file.bundle\n fetch = refs/heads/*:refs/remotes/origin/*\n```\n\nExample:\n```text\nmachineA$ cd R1\nmachineA$ git bundle create file.bundle lastR2bundle..master\nmachineA$ git tag -f lastR2bundle master\n```\n\nExample:\n```text\nmachineB$ cd R2\nmachineB$ git pull\n```\n\nExample:\n```text\n$ git bundle create mybundle v1.0.0..master\n```\n\nExample:\n```text\n$ git bundle create mybundle --since=10.days master\n```\n\nExample:\n```text\n$ git bundle create mybundle -10 master\n```\n\nExample:\n```text\n$ git bundle verify mybundle\n```\n\nExample:\n```text\n$ git fetch mybundle master:localRef\n```\n\nExample:\n```text\n$ git ls-remote mybundle\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.034Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":12,"totalLines":71,"estimatedTokens":268}}426{"id":"doc-memory_model_relaxation_annotations_llvm-0c098d88","source":"documentation","title":"Memory Model Relaxation Annotations - LLVM","url":"https://llvm.org/docs/MemoryModelRelaxationAnnotations.html","text":"Example:\n```text\n!0 = !{!\"scope\", !\"workgroup\"} # scope:workgroup\n!1 = !{!\"scope\", !\"device\"} # scope:device\n!2 = !{!\"scope\", !\"system\"} # scope:system\n```\n\nExample:\n```text\n!0 = !{!\"scope\", !\"workgroup\"}\n!1 = !{!\"sync-as\", !\"private\"}\n!2 = !{!0, !2}\n```\n\nExample:\n```text\nstore %ptr1 # foo:bar\nstore %ptr1 !mmra !{!\"foo\", !\"bar\"}\n```\n\nExample:\n```text\nA: store %ptr1 # foo:bar\nB: store %ptr2 # foo:baz\nX: store atomic release %ptr3 # foo:bar\n```\n\nExample:\n```text\nfence release # foo:bar\nstore atomic %ptr1 # foo:bux\n```\n\nExample:\n```text\nA: store ptr addrspace(1) %ptr2 # sync-as:1 vulkan:nonprivate\nB: store atomic release ptr addrspace(1) %ptr3 # sync-as:0 vulkan:nonprivate\n```\n\nExample:\n```text\nA: store ptr addrspace(1) %ptr2 # sync-as:1 vulkan:nonprivate\nB: store atomic release ptr addrspace(1) %ptr3 # sync-as:1 vulkan:nonprivate\n```\n\nExample:\n```text\nA: store ptr addrspace(1) %ptr2 # sync-as:1 vulkan:nonprivate\nB: store atomic release ptr addrspace(1) %ptr3 # vulkan:nonprivate\n```\n\nExample:\n```text\nA: store ptr addrspace(1) %ptr2 # sync-as:1\nB: store atomic release ptr addrspace(1) %ptr3 # sync-as:2\n```\n\nExample:\n```text\nThread T1:\n A: store %ptr1 # vulkan:nonprivate\n B: store %ptr2 # vulkan:private\n X: store atomic release %ptr3 # vulkan:nonprivate\n\nThread T2:\n Y: load atomic acquire %ptr3 # vulkan:nonprivate\n C: load %ptr2 # vulkan:private\n D: load %ptr1 # vulkan:nonprivate\n```\n\nExample:\n```text\nThread T1:\nA: store %ptr1 # vulkan:nonprivate\nX: store atomic release %ptr2 # vulkan:nonprivate\n\nThread T2:\nY: load atomic acquire %ptr2 # foo:bar\nB: load %ptr1\n```\n\nExample:\n```text\n# let 1 = global address space\n# let 3 = local address space\n\nThread T1:\nA: store %ptr1 # sync-as:1\nB: store %ptr2 # sync-as:3\nX: store atomic release ptr addrspace(0) %ptr3 # sync-as:3\n\nThread T2:\nY: load atomic acquire ptr addrspace(0) %ptr3 # sync-as:3\nC: load %ptr2 # sync-as:3\nD: load %ptr1 # sync-as:1\n```\n\nExample:\n```text\nfence release # sync-as:1\n```\n\nExample:\n```text\nA: store release %ptr1 # foo:x, foo:y, bar:x\nB: store release %ptr2 # foo:x, bar:y\n\n# Unique prefixes P = [foo, bar]\n# \"foo:x\" is common to A and B so it's added to U.\n# \"bar:x\" != \"bar:y\" so it's not added to U.\nU: store release %ptr3 # foo:x\n```\n\nExample:\n```text\nA: store release %ptr1 # foo:x, foo:y\nB: store release %ptr2 # foo:x, bux:y\n\n# Unique prefixes P = [foo, bux]\n# \"foo:x\" is common to A and B so it's added to U.\n# No tags have the prefix \"bux\" in A.\nU: store release %ptr3 # foo:x\n```\n\nExample:\n```text\nA: store release %ptr1\nB: store release %ptr2 # foo:x, bar:y\n\n# Unique prefixes P = [foo, bar]\n# No tags with \"foo\" or \"bar\" in A, so no tags added.\nU: store release %ptr3\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.354Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":135,"estimatedTokens":764}}427{"id":"doc-llvm_developer_policy_llvm-8b87f419","source":"documentation","title":"LLVM Developer Policy - LLVM","url":"https://llvm.org/docs/DeveloperPolicy.html","text":"Example:\n```text\nThis project is participating in the LLVM Incubator process: as such, it is\nnot part of any official LLVM release. While incubation status is not\nnecessarily a reflection of the completeness or stability of the code, it\ndoes indicate that the project is not yet endorsed as a component of LLVM.\n```\n\nExample:\n```text\n---- LLVM Exceptions to the Apache 2.0 License ----\n\nAs an exception, if, as a result of your compiling your source code, portions\nof this Software are embedded into an Object form of such source code, you\nmay redistribute such embedded portions in such Object form without complying\nwith the conditions of Sections 4(a), 4(b) and 4(d) of the License.\n\nIn addition, if you combine or link compiled forms of this Software with\nsoftware that is licensed under the GPLv2 (\"Combined Software\") and if a\ncourt of competent jurisdiction determines that the patent provision (Section\n3), the indemnity provision (Section 9) or other Section of the License\nconflicts with the conditions of the GPLv2, you may retroactively and\nprospectively choose to deem waived or otherwise exclude such Section(s) of\nthe License, but only in their entirety and only with respect to the Combined\nSoftware.\n```\n\nExample:\n```text\nQ1: If I own a patent and contribute to a Work, and, at the time my\ncontribution is included in that Work, none of my patent's claims are subject\nto Apache's Grant of Patent License, is there a way any of those claims would\nlater become subject to the Grant of Patent License solely due to subsequent\ncontributions by other parties who are not licensees of that patent.\n\nA1: No.\n\nQ2: If at any time after my contribution, I am able to license other patent\nclaims that would have been subject to Apache's Grant of Patent License if\nthey were licensable by me at the time of my contribution, do those other\nclaims become subject to the Grant of Patent License?\n\nA2: Yes.\n\nQ3: If I own or control a licensable patent and contribute code to a specific\nApache product, which of my patent claims are subject to Apache's Grant of\nPatent License?\n\nA3: The only patent claims that are licensed to the ASF are those you own or\nhave the right to license that read on your contribution or on the\ncombination of your contribution with the specific Apache product to which\nyou contributed as it existed at the time of your contribution. No additional\npatent claims become licensed as a result of subsequent combinations of your\ncontribution with any other software. Note, however, that licensable patent\nclaims include those that you acquire in the future, as long as they read on\nyour original contribution as made at the original time. Once a patent claim\nis subject to Apache's Grant of Patent License, it is licensed under the\nterms of that Grant to the ASF and to recipients of any software distributed\nby the ASF for any Apache software product whatsoever.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:53.370Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":62,"estimatedTokens":727}}428{"id":"doc-amd_vitis_ai_onnxruntime-ff54b4ae","source":"documentation","title":"AMD - Vitis AI | onnxruntime","url":"https://onnxruntime.ai/docs/execution-providers/Vitis-AI-ExecutionProvider.html","text":"ONNX RuntimeInstall ONNX Runtime Get StartedPythonC++CC#Java JavaScriptWebNode.js bindingReact NativeObjective-CJulia, Ruby and Rust APIsWindowsMobileOn-Device TrainingLarge Model Training TutorialsAPI Basics Accelerate PyTorchPyTorch InferenceInference on multiple targetsAccelerate PyTorch TrainingAccelerate TensorFlowAccelerate Hugging FaceDeploy on AzureML Deploy on mobileObject detection and pose estimation with YOLOv8Mobile image recognition on AndroidImprove image resolution on mobileMobile objection detection on iOSORT Mobile Model Export Helpers WebBuild a web app with ONNX RuntimeThe 'env' Flags and Session OptionsUsing WebGPUUsing WebNNWorking with Large ModelsPerformance DiagnosisDeploying ONNX Runtime WebTroubleshootingClassify images with ONNX Runtime and Next.jsCustom Excel Functions for BERT Tasks in JavaScript Deploy on IoT and edgeIoT Deployment on Raspberry PiDeploy traditional ML Inference with C#Basic C# TutorialInference BERT NLP with C#Configure CUDA for GPU with C#Image recognition with ResNet50v2 in C#Stable Diffusion with C#Object detection in C# using OpenVINOObject detection with Faster RCNN in C# On-Device TrainingBuilding an Android ApplicationBuilding an iOS ApplicationAPI Docs Build ONNX RuntimeBuild for inferencingBuild for trainingBuild with different EPsBuild for webBuild for AndroidBuild for iOSCustom build Execution ProvidersNVIDIA - CUDANVIDIA - TensorRTNVIDIA - TensorRT RTXIntel - OpenVINO™Intel - oneDNNWindows - DirectMLQualcomm - QNNAndroid - NNAPIApple - CoreMLXNNPACKAMD - ROCmAMD - MIGraphXAMD - Vitis AICloud - AzureWebGPU Community-maintainedArm - ACLArm - Arm NNApache - TVMRockchip - RKNPUHuawei - CANNAdd a new providerEP Context Design Plugin Execution Provider LibrariesUsageDevelopmentTestingPackaging Generate API (Preview) TutorialsPhi-3.5 vision tutorialPhi-3 tutorialPhi-2 tutorialRun with LoRA adaptersDeepSeek-R1-Distill tutorialRun on Snapdragon devices API docsPython APIC# APIC APIC++ APIJava API How toInstallBuild from sourceBuild modelsBuild models for SnapdragonTroubleshootMigratePast present share buffer ReferenceConfig referenceAdapter file spec ExtensionsAdd OperatorsBuild Performance Tune performanceProfiling toolsLogging & TracingMemory consumptionThread managementI/O BindingTroubleshooting Model optimizationsQuantize ONNX modelsFloat16 and mixed precision modelsGraph optimizationsORT model formatORT model format runtime optimizationTransformers optimizerEnd to end optimization with OliveDevice tensors EcosystemAzure Container for PyTorch (ACPT) ReferenceReleasesCompatibility OperatorsOperator kernelsContrib operatorsCustom operatorsReduced operator config fileArchitectureCiting ONNX RuntimeDependency Management in ONNX Runtime ONNX Runtime Docs on GitHub This site uses Just the Docs, a documentation theme for Jekyll.\n\nExample:\n```text\n// ...\n#include <onnxruntime_cxx_api.h>\n// include user header files\n// ...\n\nstd::basic_string<ORTCHAR_T> model_file = \"resnet50.onnx\" // Replace resnet50.onnx with your model name\nOrt::Env env(ORT_LOGGING_LEVEL_WARNING, \"resnet50_pt\");\nauto session_options = Ort::SessionOptions();\n\nauto options = std::unorderd_map<std::string,std::string>({});\n// optional, eg: cache path : /tmp/my_cache/abcdefg // Replace abcdefg with your model name, eg. onnx_model_md5\noptions[\"cache_dir\"] = \"/tmp/my_cache\";\noptions[\"cache_key\"] = \"abcdefg\"; // Replace abcdefg with your model name, eg. onnx_model_md5\noptions[\"log_level\"] = \"info\";\n\n// Create an inference session using the Vitis AI execution provider\nsession_options.AppendExecutionProvider_VitisAI(options);\n\nauto session = Ort::Session(env, model_file.c_str(), session_options);\n\n// get inputs and outputs\nOrt::AllocatorWithDefaultOptions allocator;\nstd::vector<std::string> input_names;\nstd::vector<std::int64_t> input_shapes;\nauto input_count = session.GetInputCount();\nfor (std::size_t i = 0; i < input_count; i++) {\n input_names.emplace_back(session.GetInputNameAllocated(i, allocator).get());\n input_shapes = session.GetInputTypeInfo(i).GetTensorTypeAndShapeInfo().GetShape();\n}\nstd::vector<std::string> output_names;\nauto output_count = session.GetOutputCount();\nfor (std::size_t i = 0; i < output_count; i++) {\n output_names.emplace_back(session.GetOutputNameAllocated(i, allocator).get());\n}\n// Create input tensors and populate input data\nstd::vector<Ort::Value> input_tensors;\n...\n\nauto output_tensors = session.Run(Ort::RunOptions(), input_names.data(), input_tensors.data(),\n input_count, output_names.data(), output_count);\n// postprocess output data\n// ...\n```\n\nExample:\n```text\nimport onnxruntime\n\n# Add user imports\n# ...\n\n# Load inputs and do preprocessing\n# ...\n\n# Create an inference session using the Vitis AI execution provider\nsession = onnxruntime.InferenceSession(\n '[model_file].onnx',\n providers=[\"VitisAIExecutionProvider\"],\n provider_options=[{\"log_level\": \"info\"}])\n\ninput_shape = session.get_inputs()[0].shape\ninput_name = session.get_inputs()[0].name\n\n# Load inputs and do preprocessing by input_shape\ninput_data = [...]\nresult = session.run([], {input_name: input_data})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:56.305Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":73,"estimatedTokens":1287}}429{"id":"doc-build_from_source_onnxruntime-38481283","source":"documentation","title":"Build from source | onnxruntime","url":"https://onnxruntime.ai/docs/genai/howto/build-from-source.html","text":"ONNX RuntimeInstall ONNX Runtime Get StartedPythonC++CC#Java JavaScriptWebNode.js bindingReact NativeObjective-CJulia, Ruby and Rust APIsWindowsMobileOn-Device TrainingLarge Model Training TutorialsAPI Basics Accelerate PyTorchPyTorch InferenceInference on multiple targetsAccelerate PyTorch TrainingAccelerate TensorFlowAccelerate Hugging FaceDeploy on AzureML Deploy on mobileObject detection and pose estimation with YOLOv8Mobile image recognition on AndroidImprove image resolution on mobileMobile objection detection on iOSORT Mobile Model Export Helpers WebBuild a web app with ONNX RuntimeThe 'env' Flags and Session OptionsUsing WebGPUUsing WebNNWorking with Large ModelsPerformance DiagnosisDeploying ONNX Runtime WebTroubleshootingClassify images with ONNX Runtime and Next.jsCustom Excel Functions for BERT Tasks in JavaScript Deploy on IoT and edgeIoT Deployment on Raspberry PiDeploy traditional ML Inference with C#Basic C# TutorialInference BERT NLP with C#Configure CUDA for GPU with C#Image recognition with ResNet50v2 in C#Stable Diffusion with C#Object detection in C# using OpenVINOObject detection with Faster RCNN in C# On-Device TrainingBuilding an Android ApplicationBuilding an iOS ApplicationAPI Docs Build ONNX RuntimeBuild for inferencingBuild for trainingBuild with different EPsBuild for webBuild for AndroidBuild for iOSCustom build Execution ProvidersNVIDIA - CUDANVIDIA - TensorRTNVIDIA - TensorRT RTXIntel - OpenVINO™Intel - oneDNNWindows - DirectMLQualcomm - QNNAndroid - NNAPIApple - CoreMLXNNPACKAMD - ROCmAMD - MIGraphXAMD - Vitis AICloud - AzureWebGPU Community-maintainedArm - ACLArm - Arm NNApache - TVMRockchip - RKNPUHuawei - CANNAdd a new providerEP Context Design Plugin Execution Provider LibrariesUsageDevelopmentTestingPackaging Generate API (Preview) TutorialsPhi-3.5 vision tutorialPhi-3 tutorialPhi-2 tutorialRun with LoRA adaptersDeepSeek-R1-Distill tutorialRun on Snapdragon devices API docsPython APIC# APIC APIC++ APIJava API How toInstallBuild from sourceBuild modelsBuild models for SnapdragonTroubleshootMigratePast present share buffer ReferenceConfig referenceAdapter file spec ExtensionsAdd OperatorsBuild Performance Tune performanceProfiling toolsLogging & TracingMemory consumptionThread managementI/O BindingTroubleshooting Model optimizationsQuantize ONNX modelsFloat16 and mixed precision modelsGraph optimizationsORT model formatORT model format runtime optimizationTransformers optimizerEnd to end optimization with OliveDevice tensors EcosystemAzure Container for PyTorch (ACPT) ReferenceReleasesCompatibility OperatorsOperator kernelsContrib operatorsCustom operatorsReduced operator config fileArchitectureCiting ONNX RuntimeDependency Management in ONNX Runtime ONNX Runtime Docs on GitHub This site uses Just the Docs, a documentation theme for Jekyll.\n\nExample:\n```text\ngit clone https://github.com/microsoft/onnxruntime-genai\ncd onnxruntime-genai\n```\n\nExample:\n```text\npython build.py --config Release\n```\n\nExample:\n```text\npython build.py --use_dml --config Release\n```\n\nExample:\n```text\npython build.py --use_trt_rtx --config Release --cuda_home <cuda_path>\n```\n\nExample:\n```text\npython build.py --use_cuda --config Release\n```\n\nExample:\n```text\npython build.py --build_java --config Release\n```\n\nExample:\n```text\npip install ninja\n```\n\nExample:\n```text\npython build.py --build_java --android --android_home <path to your Android SDK> --android_ndk_path <path to your NDK installation> --android_abi [armeabi-v7a|arm64-v8a|x86|x86_64] --config Release\n```\n\nExample:\n```text\n# Change dir to the folder containing the onnxruntime-genai wheel\n# Example for Linux: cd build/Linux/Release/wheel/\npip install *.whl\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:56.328Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":9,"totalLines":51,"estimatedTokens":927}}430{"id":"doc-migrating_from_the_dast_version_4_browser_based_-688d3275","source":"documentation","title":"Migrating from the DAST version 4 browser-based analyzer to DAST version 5 | GitLab Docs","url":"https://docs.gitlab.com/user/application_security/dast/browser_based_4_to_5_migration_guide/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationGetting startedTutorialsApplication securityComplianceDetectSecurity configurationRoll out security scanningSARIF reportsSecurity scanning resultsContainer scanningDependency scanning and container scanningDependency listContinuous vulnerability scanningStatic application security testing (SAST)Infrastructure as Code (IaC) scanningSecret detectionDynamic Application Security Testing (DAST)DASTConfigurationVulnerability up DAST to scan your web applicationTroubleshootingMigrating from the DAST version 4 browser-based analyzer to DAST version 5Migrating from the DAST proxy-based analyzer to DAST version 5API security testingProfilesDAST on-demand scanAPI securityWeb API fuzz testingCoverage-guided fuzz testing (deprecated)Offline environmentsScanner maintenanceTriageAnalyzeRemediateGitLab advisory databaseCVE ID requestsPoliciesSecurity glossaryDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Secure your application /Detect /Dynamic Application Secu… /DAST /Migrating from the DAST version 4 browser-based analyzer to DAST version 5Help us learn about your current experience with the documentation. Take the survey.Migrating from the DAST version 4 browser-based analyzer to DAST version : GitLab.com, GitLab Self-Managed, GitLab DedicatedHistoryThe DAST proxy-based analyzer was deprecated in GitLab 16.6 and removed in 17.0.DAST version 5 replaces DAST version 4. This document serves as a guide to migrate from the DAST version 4 browser-based analyzer to DAST version 5.Follow this migration guide if all the following conditions use GitLab DAST to run a DAST scan in a CI/CD pipeline.The DAST CI/CD job is configured by including either of the DAST templates DAST.gitlab-ci.yml or DAST.latest.gitlab-ci.yml.The CI/CD variable DAST_VERSION is not set or is set to 4 or less.The CI/CD variable DAST_BROWSER_SCAN is set to true.Migrate to DAST version 5 by reading the following sections and making the recommended changes.DAST analyzer versionsDAST comes in two major and 5. Effective from GitLab 17.0 the DAST templates DAST.gitlab-ci.yml and DAST.latest.gitlab-ci.yml use DAST version 5 by default. You can continue using DAST version 4, but you should do so only as an interim measure while migrating to DAST version 5. For details, see Continuing to use version 4.Each DAST major version runs different version 4 can run either the proxy-based or browser-based analyzer, and uses the proxy-based analyzer by default.DAST version 5 runs only the browser-based analyzer.DAST version 5 uses a set of new CI/CD variables. Aliases have been created for the DAST version 4 variables’ names.Changes to DAST_WEBSITE to DAST_TARGET_URL.When you start using new templates that set DAST_VERSION to 5, make sure the CI/CD variable DAST_VERSION is not set.Continuing to use version 4You can use the DAST version 4 proxy-based analyzer until GitLab 18.0. Bugs and vulnerabilities in this legacy analyzer will not be fixed.Changes to continue using DAST version 4, set the CI/CD variable DAST_VERSION variable to 4.ArtifactsGitLab 17.0 automatically publishes artifacts produced by DAST version 5 to the DAST CI job.Changes to artifacts from the CI job definition if you have overridden it to expose the file log, crawl graph, or authentication report.CI/CD variables DAST_BROWSER_FILE_LOG_PATH and DAST_FILE_LOG_PATH are no longer required.Vulnerability check coverageBrowser-based DAST version 4 uses proxy-based analyzer checks for active checks not included in the browser-based analyzer. Browser-based DAST version 5 does not include the proxy-based analyzer, so there is a gap in check coverage when migrating to version 5.There is one proxy-based active check that the browser-based analyzer does not cover. Migration of the remaining active check is proposed in epic 13411. If you prefer to remain on DAST version 4 until the last check is migrated, see Continuing to use version 4.Remaining : Cross-site Scripting (XSS)Follow the progress of the remaining check in the epic Remaining active checks for BBD.Changes to CI/CD variablesThe following table outlines migration actions required for each browser-based analyzer DAST version 4 CI/CD variable. See configuration for more information on configuring the browser-based analyzer.DAST version 4 CI/CD variableRequired actionNotesDAST_ADVERTISE_SCANRenameTo DAST_REQUEST_ADVERTISE_SCANDAST_AFTER_LOGIN_ACTIONSRenameTo DAST_AUTH_AFTER_LOGIN_ACTIONSDAST_AUTH_COOKIESRenameTo DAST_AUTH_COOKIE_NAMESDAST_AUTH_DISABLE_CLEAR_FIELDSRenameTo DAST_AUTH_CLEAR_INPUT_FIELDSDAST_AUTH_REPORTNo action requiredDAST_AUTH_TYPENo action requiredDAST_AUTH_URLNo action requiredDAST_AUTH_VERIFICATION_LOGIN_FORMRenameTo DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORMDAST_AUTH_VERIFICATION_SELECTORRenameTo DAST_AUTH_SUCCESS_IF_ELEMENT_FOUNDDAST_AUTH_VERIFICATION_URLRenameTo DAST_AUTH_SUCCESS_IF_AT_URLDAST_BROWSER_PATH_TO_LOGIN_FORMRenameTo DAST_AUTH_BEFORE_LOGIN_ACTIONSDAST_BROWSER_ACTION_STABILITY_TIMEOUTReplaceWith DAST_PAGE_DOM_READY_TIMEOUTDAST_BROWSER_ACTION_TIMEOUTRemoveNot supportedDAST_BROWSER_ALLOWED_HOSTSRenameTo DAST_SCOPE_ALLOW_HOSTSDAST_BROWSER_CACHERenameTo DAST_USE_CACHEDAST_BROWSER_COOKIESRenameTo DAST_REQUEST_COOKIESDAST_BROWSER_CRAWL_GRAPHRenameTo DAST_CRAWL_GRAPHDAST_BROWSER_CRAWL_TIMEOUTRenameTo DAST_CRAWL_TIMEOUTDAST_BROWSER_DEVTOOLS_LOGRenameTo DAST_LOG_DEVTOOLS_CONFIGDAST_BROWSER_DOM_READY_AFTER_TIMEOUTRenameTo DAST_PAGE_DOM_STABLE_WAITDAST_BROWSER_ELEMENT_TIMEOUTRenameTo DAST_PAGE_ELEMENT_READY_TIMEOUTDAST_BROWSER_EXCLUDED_ELEMENTSRenameTo DAST_SCOPE_EXCLUDE_ELEMENTSDAST_BROWSER_EXCLUDED_HOSTSRenameTo DAST_SCOPE_EXCLUDE_HOSTSDAST_BROWSER_EXTRACT_ELEMENT_TIMEOUTRenameTo DAST_CRAWL_EXTRACT_ELEMENT_TIMEOUTDAST_BROWSER_FILE_LOGRenameTo DAST_LOG_FILE_CONFIGDAST_BROWSER_FILE_LOG_PATHRemoveNo longer requiredDAST_BROWSER_IGNORED_HOSTSRenameTo DAST_SCOPE_IGNORE_HOSTSDAST_BROWSER_INCLUDE_ONLY_RULESRenameTo DAST_CHECKS_TO_RUNDAST_BROWSER_LOGRenameTo DAST_LOG_CONFIGDAST_BROWSER_LOG_CHROMIUM_OUTPUTRenameTo DAST_LOG_BROWSER_OUTPUTDAST_BROWSER_MAX_ACTIONSRenameTo DAST_CRAWL_MAX_ACTIONSDAST_BROWSER_MAX_DEPTHRenameTo DAST_CRAWL_MAX_DEPTHDAST_BROWSER_MAX_RESPONSE_SIZE_MBRenameTo DAST_PAGE_MAX_RESPONSE_SIZE_MBDAST_BROWSER_NAVIGATION_STABILITY_TIMEOUTRenameTo DAST_PAGE_DOM_READY_TIMEOUTDAST_BROWSER_NAVIGATION_TIMEOUTRenameTo DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUTDAST_BROWSER_NUMBER_OF_BROWSERSRenameTo DAST_CRAWL_WORKER_COUNTDAST_BROWSER_PAGE_LOADING_SELECTORRenameTo DAST_PAGE_IS_LOADING_ELEMENTDAST_BROWSER_PAGE_READY_SELECTORRenameTo DAST_PAGE_IS_READY_ELEMENTDAST_BROWSER_PASSIVE_CHECK_WORKERSRenameTo DAST_PASSIVE_SCAN_WORKER_COUNTDAST_BROWSER_SCANRemoveNo longer requiredDAST_BROWSER_SEARCH_ELEMENT_TIMEOUTRenameTo DAST_CRAWL_SEARCH_ELEMENT_TIMEOUTDAST_BROWSER_STABILITY_TIMEOUTRenameTo DAST_PAGE_READY_AFTER_ACTION_TIMEOUTDAST_EXCLUDE_RULESRenameTo DAST_CHECKS_TO_EXCLUDEDAST_EXCLUDE_URLSRenameTo DAST_SCOPE_EXCLUDE_URLSDAST_FF_ENABLE_BASRemoveNot supportedDAST_FILE_LOG_PATHRemoveNo longer requiredDAST_FIRST_SUBMIT_FIELDRenameTo DAST_AUTH_FIRST_SUBMIT_FIELDDAST_FULL_SCAN_ENABLEDRenameTo DAST_FULL_SCANDAST_PASSWORDRenameTo DAST_AUTH_PASSWORDDAST_PASSWORD_FIELDRenameTo DAST_AUTH_PASSWORD_FIELDDAST_PATHSRenameTo DAST_TARGET_PATHSDAST_PATHS_FILERenameTo DAST_TARGET_PATHS_FROM_FILEDAST_PKCS12_CERTIFICATE_BASE64No action requiredDAST_PKCS12_PASSWORDNo action requiredDAST_REQUEST_HEADERSNo action requiredDAST_SKIP_TARGET_CHECKRenameTo DAST_TARGET_CHECK_SKIPDAST_SUBMIT_FIELDRenameTo DAST_AUTH_SUBMIT_FIELDDAST_TARGET_AVAILABILITY_TIMEOUTRenameTo DAST_TARGET_CHECK_TIMEOUTDAST_USERNAMERenameTo DAST_AUTH_USERNAMEDAST_USERNAME_FIELDRenameTo DAST_AUTH_USERNAME_FIELDDAST_WEBSITERenameTo DAST_TARGET_URLGitLab your instance to version 17.0 or later before removing DAST_WEBSITE. This variable is required if you use the DAST.gitlab-ci.yml file included with pre-17.0 versions of GitLab.DAST analyzer versionsContinuing to use version 4ArtifactsVulnerability check coverageChanges to CI/CD variables\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.869Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":2084}}431{"id":"doc-migrating_to_dependency_scanning_using_sbom_gitl-658e18ec","source":"documentation","title":"Migrating to dependency scanning using SBOM | GitLab Docs","url":"https://docs.gitlab.com/user/application_security/dependency_scanning/migration_guide_to_sbom_based_scans/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationGetting startedTutorialsApplication securityComplianceDetectSecurity configurationRoll out security scanningSARIF reportsSecurity scanning resultsContainer scanningDependency scanningDependency scanning by using SBOMMigrating to dependency scanning using SBOMContinuous dependency scanningLegacy Dependency scanningAnalyze dependency behaviorAgentic breaking change scanning and container scanningDependency listContinuous vulnerability scanningStatic application security testing (SAST)Infrastructure as Code (IaC) scanningSecret detectionDynamic Application Security Testing (DAST)API securityWeb API fuzz testingCoverage-guided fuzz testing (deprecated)Offline environmentsScanner maintenanceTriageAnalyzeRemediateGitLab advisory databaseCVE ID requestsPoliciesSecurity glossaryDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Secure your application /Detect /Dependency scanning /Migrating to dependency scanning using SBOMHelp us learn about your current experience with the documentation. Take the survey.Migrating to dependency scanning using : GitLab.com, GitLab Self-Managed, GitLab DedicatedHistoryThe dependency scanning feature based on the Gemnasium analyzer is deprecated in GitLab 17.9 and is proposed for removal in GitLab 20.0. However, the removal timeline is not finalized, and you can continue using Gemnasium as needed.The dependency scanning feature is upgrading to the GitLab SBOM Vulnerability Scanner. As part of this change, the dependency scanning using SBOM feature and the new dependency scanning analyzer replace the legacy dependency scanning feature based on the Gemnasium analyzer. However, existing projects are not migrated automatically because of the significant changes introduced in this transition.Follow this migration guide if you use GitLab dependency scanning and any of the following conditions dependency scanning CI/CD jobs are configured by including one of the dependency scanning CI/CD templates. /Dependency-Scanning.gitlab-ci.yml - /Dependency-Scanning.latest.gitlab-ci.ymlThe dependency scanning CI/CD jobs are configured by using Scan Execution Policies.The dependency scanning CI/CD jobs are configured by using Pipeline Execution Policies.Prepare for migrationAssess your migration effort, identify your path, verify prerequisites, and determine which projects are affected.Estimate migration effortThe Dependency Scanning migration evaluator generates a tailored migration checklist based on how dependency scanning is configured in your projects. It asks about your enablement path, language ecosystems, CI/CD customizations, and (for self-managed instances) Package Metadata Database sync status. The evaluator effort estimate (minimal, moderate, significant, or complex).A checklist of the migration steps that apply to your setup, with direct links to the relevant sections of this guide.Flags for situations that need extra attention (like projects that must move from a scan execution policy to a pipeline execution policy).The evaluator runs entirely in your browser and does not send data anywhere.Identify your migration pathExisting configurations are not migrated automatically. To adopt the new feature, you must update your configuration.Use the following list to find the migration path that applies to template (Jobs/Dependency-Scanning.gitlab-ci.yml): Switch to the v2 template by following the generic migration steps, then apply any language-specific instructions for the ecosystems used in your projects.Latest template (Jobs/Dependency-Scanning.latest.gitlab-ci.yml): Same as the stable template. Switch to the v2 template by following the generic migration steps, then apply any language-specific instructions.CI/CD main component already uses the new analyzer but older versions (v0 and v1) lag behind on the analyzer version and on supported inputs. Bump the include to the v2 version and apply any language-specific instructions. If you use a specialized Android, Rust, Swift, or CocoaPods component, migrate to the main component.Scan Execution Policies (SEP) or Pipeline Execution Policies (PEP): Edit the policy to reference the v2 template, then follow the generic migration steps and any language-specific instructions for projects in scope. SEP and PEP are built on top of the CI/CD templates, so the template changes propagate automatically to all projects in scope after the SEP is updated. For PEP, update the policy’s CI/CD configuration directly to reference the v2 template.Verify Metadata Database synchronizationThe new dependency scanning analyzer requires Package Metadata Database (PMDB) synchronized for the package types used by your projects. On GitLab.com, the instance already synchronizes data for all supported package types. On GitLab Self-Managed and GitLab Dedicated, an administrator configures synchronization.Before you migrate, an administrator that PMDB synchronization is enabled and that the package types used by your projects are selected. For more information, see choose package registry metadata to sync.For offline or firewalled instances, follow enabling the Package Metadata Database.If PMDB synchronization is not complete for a package type that your projects use, the new analyzer cannot resolve advisories for the corresponding components, and security findings may be missing after the migration.Identify affected projectsIdentify projects that use the legacy dependency scanning feature. The security inventory provides visibility of scanner coverage across groups and projects. This step is the recommended starting point.You can also locate legacy usage in your CI/CD of the legacy templates Jobs/Dependency-Scanning.gitlab-ci.yml or Jobs/Dependency-Scanning.latest.gitlab-ci.yml in .gitlab-ci.yml files.References to the same templates in the scan execution policies and pipeline execution policies.Job names from the legacy analyzer (gemnasium-dependency_scanning, gemnasium-maven-dependency_scanning, gemnasium-python-dependency_scanning) in .gitlab-ci.yml files, policy YAML, or downstream jobs that use them in the changesThe transition from the Gemnasium analyzer to the new dependency scanning analyzer is a significant technical evolution. Most projects do not need to change anything beyond the CI/CD configuration switch described in migrate to dependency scanning using SBOM. The changes described in this section help you understand why some projects (notably Gradle, Maven, and Python without a lockfile) require additional steps.Key language support and file new analyzer is not constrained to the Python and Java versions supported by the Gemnasium analyzer, and benefits from increased file coverage.Increased new analyzer prefers existing lockfiles or dependency graph exports and only runs ecosystem-specific resolution jobs for projects that lack them.Smaller attack surface and more flexible analyzer image only parses lockfiles and graph exports. Ecosystem-specific settings (private registries, custom CA bundles, JVM options) apply only to the relevant dependency resolution job. You can override the resolution images to match your build environment.A new approach to security scanningWhen using the legacy dependency scanning feature, all scanning work happens in your CI/CD pipeline. When running a scan, the Gemnasium analyzer handles two critical tasks identifies your project’s dependencies and immediately performs a security analysis of those dependencies using a local copy of the GitLab advisory database and its specific security scanning engine. Then, it outputs results into various reports (CycloneDX SBOM and dependency scanning security report).On the other hand, the dependency scanning using SBOM feature relies on a decomposed dependency analysis approach that separates dependency detection from other analyses, like static reachability or vulnerability scanning. While these tasks are still executed in the same CI/CD job, they function as decoupled, reusable components. For instance, the vulnerability scanning analysis reuses the unified engine, the GitLab SBOM vulnerability scanner, that also supports GitLab continuous vulnerability scanning features. This also opens up opportunity for future integration points, enabling more flexible vulnerability scanning workflows.Read more about how dependency scanning using SBOM scans an application.Dependency detection for Gradle, Maven, and PythonThe new analyzer changes how dependencies are discovered for Gradle, Maven, and Python projects. Instead of building your application to determine dependencies, the analyzer uses a multi-tiered detection model that follows the “accuracy is a dial” or dependency graph a supported file is committed to the repository or passed as a job artifact (like maven.graph.json, dependencies.lock, requirements.txt, Pipfile.lock), the analyzer uses it directly. This is the most accurate option.Dependency no supported file exists for Maven, Gradle, or Python projects, the analyzer attempts to generate one automatically. Resolution jobs run in the .pre stage with minimal ecosystem images and native commands (like mvn , pip-compile, gradle dependencies). The dependency-scanning job uses the generated artifacts.Manifest no lockfile or dependency graph file exist, the analyzer parses supported manifest files (like pom.xml, requirements.txt, build.gradle, build.gradle.kts) to extract direct dependencies only. Transitive dependencies are not detected and exact resolved versions cannot be determined.In GitLab 19.0 and later, dependency resolution and manifest fallback are enabled by default.For the most accurate results, commit a lockfile or dependency graph export to your repository, or generate one in a preceding CI/CD job using your project’s actual build environment. The following sections describe the options available for each language and package manager.Accessing scan resultsThe v2 template produces the same gl-dependency-scanning-report.json job artifact as the legacy template. Downstream jobs that consume this artifact (with dependencies:) continue to work after the migration, though the producing job name changes from gemnasium-dependency_scanning (and its Maven and Python variants) to dependency-scanning.Migrate to dependency scanning using SBOMHow you migrate depends on how dependency scanning is enabled in your projects. Each subsection covers the customizations to remove, references to update, and minimal before-and-after example.To find the subsection that applies to you, see identify your migration path. For multi-language projects, complete the steps for each language in language-specific instructions.Migrate using the stable CI/CD templateTo avoid disrupting existing pipelines, the stable template (Jobs/Dependency-Scanning.gitlab-ci.yml) runs the legacy Gemnasium analyzer and is not updated to use the new analyzer. To adopt the new analyzer, switch the include to the v2 template (Jobs/Dependency-Scanning.v2.gitlab-ci.yml).Compared to the stable template, the v2 the new dependency-scanning job instead of the legacy gemnasium-dependency_scanning, gemnasium-maven-dependency_scanning, and gemnasium-python-dependency_scanning jobs.Does not predefine the legacy job names. Customizations that override gemnasium-* jobs (for example, by extending them in your .gitlab-ci.yml) no longer apply and must be removed or rewritten.Continues to produce the gl-dependency-scanning-report.json job artifact. Downstream jobs that consume this artifact through to work after the migration, but must reference the new dependency-scanning job name instead of the legacy gemnasium-* job names.Accepts the same CI/CD variables, with some changes documented in Changes to CI/CD variables.Prerequisites:The Developer, Maintainer, or Owner role for the project.To migrate using the stable CI/CD customizations that override the legacy gemnasium-* jobs in your .gitlab-ci.yml or in any included files. The v2 template does not define these job names, so overrides might cause the pipeline to fail due to invalid CI/CD configuration.Update the include statement to reference the v2 template.Update downstream jobs that reference the legacy job names in use dependency-scanning instead.Apply any language-specific instructions for the ecosystems in your project.Before:include: - /Dependency-Scanning.gitlab-ci.yml # Customization that targets the legacy job name. : # Downstream job that consumes the legacy report. : deploy ./publish.sh gl-dependency-scanning-report.jsonAfter:include: - /Dependency-Scanning.v2.gitlab-ci.yml : debug : deploy ./publish.sh gl-dependency-scanning-report.jsonIf your pipeline needs to run custom jobs before dependency resolution (for example, to authenticate to a private registry or prepare a build cache), see adjust resolution job ordering.Migrate using the latest CI/CD templateThe latest template (Jobs/Dependency-Scanning.latest.gitlab-ci.yml) runs the legacy Gemnasium analyzer by default. As a transitional step, it supports an opt-in to the new analyzer through the DS_ENFORCE_NEW_ANALYZER CI/CD variable, but only at version v1 of the new analyzer and without dependency resolution jobs.Prerequisites:The Developer, Maintainer, or Owner role for the project.For Maven, Gradle, and Python projects, you must a lockfile or dependency graph export to the repository or generated by a preceding CI/CD job.Enable manifest fallback.For full parity with the v2 template (v2 analyzer, dependency resolution, manifest fallback), switch to the v2 template by following the stable template steps. The migration work is the customizations targeting the legacy gemnasium-* jobs, update the include statement, and update downstream jobs.If you already opted in to use the new DS analyzer through DS_ENFORCE_NEW_ANALYZER, the transition is simpler. Review the changes the new template introduces before finalizing your migration.If your pipeline needs to run custom jobs before dependency resolution (for example, to authenticate to a private registry or prepare a build cache), see adjust resolution job ordering.Migrate using the CI/CD componentOn GitLab Self-Managed, review the current limitations for using GitLab.com CI/CD components.The v2 release of the main dependency scanning CI/CD component is on par with the v2 template. It runs the new analyzer in its v2 version and supports the same inputs. Older releases (v0 and v1) lag behind on the analyzer version and on supported features, so projects that include v0 or v1 must bump the include to v2.Prerequisites:The Developer, Maintainer, or Owner role for the project.To migrate using the CI/Cd the component include statement to reference version 2 of the main component.Replace any inputs that have been renamed or removed in v2. The v2 release of the main component exposes the same input set as the v2 CI/CD template; see the available spec inputs reference for the full list.Apply any language-specific instructions for the ecosystems in your project.If you use a specialized component for Android, Rust, Swift, or CocoaPods, migrate to the main component. The main component now covers all supported languages and package managers. The specialized components are no longer needed.Before:include: - component: $CI_SERVER_FQDN/components/dependency-scanning/main@1After:include: - component: $CI_SERVER_FQDN/components/dependency-scanning/main@2If your pipeline needs to run custom jobs before dependency resolution (for example, to authenticate to a private registry or prepare a build cache), see adjust resolution job ordering.Migrate using scan execution policiesScan execution policies enforce a CI/CD template across the projects targeted by the policy. For dependency scanning, the policy’s template field selects which template runs. The new analyzer is available through the v2 template edition.The policy’s behavior on each targeted project mirrors that of a project that includes the corresponding CI/CD template directly. After the policy is updated to reference v2, the steps for the stable CI/CD template apply to each project in customizations that target the legacy gemnasium-* jobs and update any downstream jobs that consume them.Prerequisites:The Owner role for the group, or a custom role with the manage_security_policy_link permission.To migrate using scan execution the scan execution policy and set for the dependency_scanning action.In each project covered by the policy, remove customizations that override the legacy gemnasium-* jobs and update downstream jobs that reference them.Apply any language-specific instructions for the ecosystems in projects covered by the policy.Before:scan_execution_policy: - dependency scanning :scan_execution_policy: - dependency scanning not covered by dependency resolution or manifest fallbackScan execution policies use the build support capability from the legacy Gemnasium analyzer to provide a default build environment. The new analyzer relies on dependency resolution or manifest fallback to detect dependencies for projects without a committed lockfile or dependency graph export.These mechanisms cover most projects that previously relied on build support. A few situations still benefit from the additional flexibility of a pipeline execution project’s ecosystem is outside the current coverage of dependency resolution and manifest fallback (for example, Scala/sbt).Dependency resolution needs a setup step that goes beyond the available CI/CD variables (for example, authenticating against a private registry with non-standard credentials).For those projects, use a pipeline execution policy, where you can customize the CI/CD jobs more freely and create a lockfile or dependency graph export manually.Migrate using pipeline execution policiesPipeline execution policies enforce a complete CI/CD configuration that typically includes a dependency scanning template or the CI/CD component, along with project-specific customizations. The migration steps that apply depend on what the policy’s CI/CD configuration includes.Prerequisites:The Owner role for the group, or a custom role with the manage_security_policy_link permission.To migrate using pipeline execution which template or component your policy the policy includes the stable CI/CD template, follow migrate using the stable CI/CD template.If the policy includes the latest CI/CD template, follow migrate using the latest CI/CD template.If the policy includes the CI/CD component, follow migrate using the CI/CD component.Apply those steps to the policy’s CI/CD configuration/Apply any language-specific instructions for the ecosystems in projects covered by the policy.CI/CD variables set for projects, groups, or instances (and variables defined in the policy’s own ) continue to apply to the new dependency-scanning job and to the resolution jobs that run before it. For variables whose status has changed in v2, see changes to CI/CD variables.If your pipeline needs to run custom jobs before dependency resolution (for example, to authenticate to a private registry or prepare a build cache), see adjust resolution job ordering.Other considerationsThe following customizations apply regardless of how dependency scanning is enabled in your projects.Adjust resolution job orderingBy default, dependency resolution jobs run in the .pre stage. If your pipeline has custom jobs that must complete before dependency scanning runs (for example, a .pre job that authenticates to a private registry or primes a build cache), the resolution jobs run in parallel with those custom jobs rather than after them. Resolution jobs cannot see artifacts the custom jobs produce.To preserve the intended ordering, move the resolution jobs to a later stage by using the resolution_jobs_stage input on the v2 template or : - .pre - prepare - test /Dependency-Scanning.v2.gitlab-ci.yml : prepare : .pre ./scripts/login-private-registry.sh - ./scripts/build-dependency-cache.shThe resolution jobs then run in the prepare stage after the custom .pre job completes. Dor the full list of inputs that control resolution job behavior, see available CI/CD inputs.Language-specific instructionsAs you migrate to the new dependency scanning analyzer, you’ll need to make specific adjustments based on your project’s programming languages and package managers. These instructions apply whenever you use the new dependency scanning analyzer, regardless of how you’ve configured it to run - whether through CI/CD templates, Scan Execution Policies, or the dependency scanning CI/CD component. In the following sections, you’ll find detailed instructions for each supported language and package manager. Each instruction has explanations dependency detection is changingWhat specific files you need to provideHow to generate these files if they’re not already part of your workflowShare any feedback on the new dependency scanning analyzer in this feedback issue.BundlerPrevious scanning based on the Gemnasium analyzer supports Bundler projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the Gemfile.lock file (gems.locked alternate filename is also supported). The combination of supported versions of Bundler and the Gemfile.lock file are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer also extracts the project dependencies by parsing the Gemfile.lock file (gems.locked alternate filename is also supported) and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a Bundler projectMigrate a Bundler project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.No additional steps are needed to migrate a Bundler project to use the dependency scanning analyzer.CocoaPodsPrevious scanning based on the Gemnasium analyzer does not support CocoaPods projects when using the CI/CD templates or the Scan Execution Policies. Support for CocoaPods is only available on the experimental CocoaPods CI/CD component.New new dependency scanning analyzer extracts the project dependencies by parsing the Podfile.lock file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a CocoaPods projectMigrate a CocoaPods project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a CocoaPods project to use the dependency scanning analyzer.ComposerPrevious scanning based on the Gemnasium analyzer supports Composer projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the composer.lock file. The combination of supported versions of Composer and the composer.lock file are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer also extracts the project dependencies by parsing the composer.lock file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a Composer projectMigrate a Composer project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a Composer project to use the dependency scanning analyzer.ConanPrevious scanning based on the Gemnasium analyzer supports Conan projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the conan.lock file. The combination of supported versions of Conan and the conan.lock file are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer also extracts the project dependencies by parsing the conan.lock file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a Conan projectMigrate a Conan project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a Conan project to use the dependency scanning analyzer.GoPrevious scanning based on the Gemnasium analyzer supports Go projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by using the go.mod and go.sum file. This analyzer attempts to execute the go list command to increase the accuracy of the detected dependencies, which requires a functional Go environment. In case of failure, it falls back to parsing the go.sum file. The combination of supported versions of Go, the go.mod, and the go.sum files are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not attempt to execute the go list command in the project to extract the dependencies and it no longer falls back to parsing the go.sum file. Instead, the project must provide at least a go.mod file and ideally a go.graph file generated with the go mod graph command from the Go Toolchains. The go.graph file is required to increase the accuracy of the detected components and to generate the dependency graph to enable features like the dependency path. These files are processed by the dependency-scanning CI/CD job to generate a CycloneDX SBOM report artifact. This approach does not require GitLab to support specific versions of Go. Dependency resolution is not supported for Go projects.Migrate a Go projectMigrate a Go project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate a Go that your project provides a go.mod and a go.graph files. Configure the go mod graph command from the Go Toolchains in a preceding CI/CD job (for ) to dynamically generate the go.graph file and export it as an artifact prior to running the dependency scanning job.See the enablement instructions for Go for more details and examples.GradlePrevious scanning based on the Gemnasium analyzer supports Gradle projects using the gemnasium-maven-dependency_scanning CI/CD job to extract the project dependencies by building the application from the build.gradle and build.gradle.kts files. The combinations of supported versions for Java, Kotlin, and Gradle are complex, as detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not build the project to extract the dependencies. Instead, it uses a multi-tiered detection a supported lockfile or graph export exists in the repository or a job artifact (like, gradle.lockfile), the analyzer uses it directly.If no supported lockfile or graph export is detected but a supported build file exists (like, build.gradle), a dependency resolution job runs in the .pre stage. It automatically executes gradle dependencies to generate a dependency graph export for the dependency-scanning job.If dependency resolution is not available or fails, manifest fallback parses build.gradle and build.gradle.kts directly to extract direct dependencies only. Manifest fallback accuracy is reduced for projects that declare dependencies through gradle.properties or gradle/libs.versions.toml, because version variables are not always resolved.Migrate a Gradle projectMigrate a Gradle project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate a Gradle project, choose one of the following the most accurate results, ensure that your project provides a dependency graph export file. Configure the Gradle dependencies task in a preceding CI/CD job (for ) to dynamically generate the gradle.graph.txt file and export it as an artifact prior to running the dependency scanning job. Alternatively, you can select another supported lockfile or graph export. When you generate a lockfile or graph export dynamically, disable automatic dependency resolution by adding gradle to the DS_DISABLED_RESOLUTION_JOBS CI/CD variable value.Rely on dependency resolution to automatically generate the gradle.graph.txt file. Verify that the resolution image can successfully generate the graph export.Defer to manifest fallback for baseline coverage of direct dependencies declared in build.gradle or build.gradle.kts.See the enablement instructions for Gradle for more details and examples.MavenPrevious scanning based on the Gemnasium analyzer supports Maven projects using the gemnasium-maven-dependency_scanning CI/CD job to extract the project dependencies by building the application from the pom.xml file. The combinations of supported versions for Java, Kotlin, and Maven are complex, as detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not build the project to extract the dependencies. Instead, it uses a multi-tiered detection a maven.graph.json graph export file generated with the Maven dependency plugin exists in the repository or a job artifact, the analyzer uses it directly.If no graph export is detected but a supported pom.xml file exists, a dependency resolution job runs in the .pre stage. It automatically executes mvn to generate a dependency graph export for the dependency-scanning job.If dependency resolution is not available or fails, manifest fallback parses the pom.xml directly to extract direct dependencies only.Migrate a Maven projectMigrate a Maven project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate a Maven project, choose one of the following the most accurate results, ensure that your project provides a maven.graph.json file. Configure the Maven dependency plugin in a preceding CI/CD job (for ) to dynamically generate the maven.graph.json file and export it as an artifact prior to running the dependency scanning job. When you generate a graph export dynamically, disable automatic dependency resolution by adding maven to the DS_DISABLED_RESOLUTION_JOBS CI/CD variable value.Rely on dependency resolution to automatically generate the maven.graph.json file. Verify that the resolution image can successfully generate the graph export.Defer to manifest fallback for baseline coverage of direct dependencies declared in pom.xml.See the enablement instructions for Maven for more details and examples.npmPrevious scanning based on the Gemnasium analyzer supports npm projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the package-lock.json or npm-shrinkwrap.json.lock files. The combination of supported versions of npm and the package-lock.json or npm-shrinkwrap.json.lock files are detailed in the dependency scanning (Gemnasium-based) documentation. This analyzer may scan JavaScript files vendored in a npm project using the Retire.JS scanner.New new dependency scanning analyzer also extracts the project dependencies by parsing the package-lock.json or npm-shrinkwrap.json.lock files and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job. This analyzer does not scan vendored JavaScript files. For more information, see the Dependency Scanning for JavaScript vendored libraries deprecation announcement for context and available actions. Support for a replacement feature is proposed in epic 7186.Migrate an npm projectMigrate an npm project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate an npm project to use the dependency scanning analyzer.NuGetPrevious scanning based on the Gemnasium analyzer supports NuGet projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the packages.lock.json file. The combination of supported versions of NuGet and the packages.lock.json file are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer also extracts the project dependencies by parsing the packages.lock.json file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a NuGet projectMigrate a NuGet project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a NuGet project to use the dependency scanning analyzer.pipPrevious scanning based on the Gemnasium analyzer supports pip projects using the gemnasium-python-dependency_scanning CI/CD job to extract the project dependencies by building the application from the requirements.txt file (requirements.pip and requires.txt alternate filenames are also supported). The PIP_REQUIREMENTS_FILE environment variable can also be used to specify a custom filename. The combinations of supported versions for Python and pip are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not build the project to extract the dependencies. Instead, it uses a multi-tiered detection a supported lockfile or graph export exists in the repository or a job artifact (for example, requirements.txt generated with pip-compile), the analyzer uses it directly.If no supported lockfile or graph export is detected but a supported build file exists (for example, requirements.in), a dependency resolution job runs in the .pre stage. It automatically executes pip-compile to generate a lockfile for the dependency-scanning job.If dependency resolution is not available or fails, manifest fallback parses the requirements.txt file directly to extract direct dependencies only.Migrate a pip projectMigrate a pip project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate a pip project, choose one of the following the most accurate results, ensure that your project provides a lockfile. Configure the pip-compile command line tool in your project and either commit the requirements.txt lockfile into your repository or use it in a preceding CI/CD job (for ) to dynamically generate the requirements.txt file and export it as an artifact prior to running the dependency scanning job. Alternatively, you can select another supported lockfile or graph export. When you generate a lockfile or graph export dynamically, disable automatic dependency resolution by adding python to the DS_DISABLED_RESOLUTION_JOBS CI/CD variable value.Rely on dependency resolution to automatically generate the pipcompile.lock.txt file. Verify that the resolution image can successfully generate the lockfile.Defer to manifest fallback for baseline coverage of direct dependencies declared in requirements.txt.See the enablement instructions for pip for more details and examples.PipenvPrevious scanning based on the Gemnasium analyzer supports Pipenv projects using the gemnasium-python-dependency_scanning CI/CD job to extract the project dependencies by building the application from the Pipfile file or from a Pipfile.lock file if present. The combinations of supported versions for Python and Pipenv are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not build the Pipenv project to extract the dependencies. Instead, the project must provide at least a Pipfile.lock file and ideally a pipenv.graph.json file generated by the pipenv graph command. The pipenv.graph.json file is required to generate the dependency graph and enable features like the dependency path. These files are processed by the dependency-scanning CI/CD job to generate a CycloneDX SBOM report artifact. This approach does not require GitLab to support specific versions of Python and Pipenv. Dependency resolution is not supported for projects using a Pipfile without a Pipfile.lock file.Migrate a Pipenv projectMigrate a Pipenv project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate a Pipenv that your project provides a Pipfile.lock file. Configure the pipenv lock command in your project and either commit the Pipfile.lock file into your repository or use it in a preceding CI/CD job (for ) to dynamically generate the Pipfile.lock file and export it as an artifact prior to running the dependency scanning job. Alternatively, you can select another supported lockfile or graph export.PoetryPrevious scanning based on the Gemnasium analyzer supports Poetry projects using the gemnasium-python-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the poetry.lock file. The combination of supported versions of Poetry and the poetry.lock file are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer also extracts the project dependencies by parsing the poetry.lock file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a Poetry projectMigrate a Poetry project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a Poetry project to use the dependency scanning analyzer.pnpmPrevious scanning based on the Gemnasium analyzer supports pnpm projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the pnpm-lock.yaml file. The combination of supported versions of pnpm and the pnpm-lock.yaml file are detailed in the dependency scanning (Gemnasium-based) documentation. This analyzer may scan JavaScript files vendored in a npm project using the Retire.JS scanner.New new dependency scanning analyzer also extracts the project dependencies by parsing the pnpm-lock.yaml file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job. This analyzer does not scan vendored JavaScript files. For more information, see the Dependency Scanning for JavaScript vendored libraries deprecation announcement for context and available actions. Support for a replacement feature is proposed in epic 7186.Migrate a pnpm projectMigrate a pnpm project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.No additional steps are required to migrate a pnpm project to use the dependency scanning analyzer.sbtPrevious scanning based on the Gemnasium analyzer supports sbt projects using the gemnasium-maven-dependency_scanning CI/CD job to extract the project dependencies by building the application from the build.sbt file. The combinations of supported versions for Java, Scala, and sbt are complex, as detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not build the project to extract the dependencies. Instead, the project must provide a dependencies-compile.dot file generated with the sbt-dependency-graph plugin (included in sbt >= 1.4.0). This file is processed by the dependency-scanning CI/CD job to generate a CycloneDX SBOM report artifact. This approach does not require GitLab to support specific versions of Java, Scala, and sbt. Dependency resolution is not supported for sbt projects.Migrate an sbt projectMigrate an sbt project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate an sbt that your project provides a dependencies-compile.dot file. Configure the sbt-dependency-graph plugin in a preceding CI/CD job (for ) to dynamically generate the dependencies-compile.dot file and export it as an artifact prior to running the dependency scanning job.See the enablement instructions for sbt for more details and examples.setuptoolsPrevious scanning based on the Gemnasium analyzer supports setuptools projects using the gemnasium-python-dependency_scanning CI/CD job to extract the project dependencies by building the application from the setup.py file. The combinations of supported versions for Python and setuptools are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer does not build a setuptools project to extract the dependencies. Instead, it uses a multi-tiered detection a supported lockfile or graph export exists in the repository or a job artifact (for example, requirements.txt generated with pip-compile), the analyzer uses it directly.If no supported lockfile or graph export is detected but a supported build file exists (for example, setup.py), a dependency resolution job runs in the .pre stage. It automatically executes pip-compile to generate a lockfile for the dependency-scanning job.Migrate a setuptools projectMigrate a setuptools project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.To migrate a setuptools project, choose one of the following the most accurate results, ensure that your project provides a requirements.txt lockfile. Configure the pip-compile command line tool in your project and integrate the command line tool into your development workflow. This means committing the requirements.txt file into your repository and updating it as you’re making changes to your project dependencies.Use the command line tool in a build CI/CD job to dynamically generate the requirements.txt file and export it as an artifact prior to running the dependency scanning job.Enable dependency resolution to automatically generate a requirements.txt lockfile from your manifest files.See the enablement instructions for pip for more details and examples.SwiftPrevious scanning based on the Gemnasium analyzer does not support Swift projects when using the CI/CD templates or the Scan Execution Policies. Support for Swift is only available on the experimental Swift CI/CD component.New new dependency scanning analyzer also extracts the project dependencies by parsing the Package.resolved file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a Swift projectMigrate a Swift project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a Swift project to use the dependency scanning analyzer.uvPrevious scanning based on the Gemnasium analyzer supports uv projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the uv.lock file. The combination of supported versions of uv and the uv.lock file are detailed in the dependency scanning (Gemnasium-based) documentation.New new dependency scanning analyzer also extracts the project dependencies by parsing the uv.lock file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job.Migrate a uv projectMigrate a uv project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a uv project to use the dependency scanning analyzer.YarnPrevious scanning based on the Gemnasium analyzer supports Yarn projects using the gemnasium-dependency_scanning CI/CD job and its ability to extract the project dependencies by parsing the yarn.lock file. The combination of supported versions of Yarn and the yarn.lock files are detailed in the dependency scanning (Gemnasium-based) documentation. This analyzer may provide remediation data to resolve a vulnerability via merge request for Yarn dependencies. This analyzer may scan JavaScript files vendored in a Yarn project using the Retire.JS scanner.New new dependency scanning analyzer also extracts the project dependencies by parsing the yarn.lock file and generates a CycloneDX SBOM report artifact with the dependency-scanning CI/CD job. This analyzer does not provide remediation data for Yarn dependencies. For more information, see the Resolve a vulnerability for dependency scanning on Yarn projects deprecation announcement. Support for a replacement feature is proposed in epic 759. This analyzer does not scan vendored JavaScript files. For more information, see the Dependency Scanning for JavaScript vendored libraries deprecation announcement for context and available actions. Support for a replacement feature is proposed in epic 7186.Migrate a Yarn projectMigrate a Yarn project to use the new dependency scanning analyzer.Prerequisites:Complete the generic migration steps required for all projects.The Developer, Maintainer, or Owner role for the project.There are no additional steps to migrate a Yarn project to use the dependency scanning analyzer. If you previously relied on the Resolve a vulnerability through merge request feature or on vendored JavaScript scanning, see the deprecation announcements linked under New behavior above for context and available actions.Changes to CI/CD variablesThe following table lists the CI/CD variables previously used with the legacy dependency scanning feature based on the Gemnasium analyzer and their status with the new dependency scanning variableStatus with the new analyzerADDITIONAL_CA_CERT_BUNDLEKept. Prefer additional_ca_cert_bundle spec input.AST_ENABLE_MR_PIPELINESKept.DEPENDENCY_SCANNING_DISABLEDKept.DS_ANALYZER_IMAGEKept.DS_EXCLUDED_ANALYZERSRemoved.DS_EXCLUDED_PATHSKept. Prefer excluded_paths spec input.DS_GRADLE_RESOLUTION_POLICYRemoved.DS_IMAGE_SUFFIXRemoved.DS_INCLUDE_DEV_DEPENDENCIESKept. Prefer include_dev_dependencies spec input.DS_JAVA_VERSIONRemoved.DS_MAX_DEPTHKept. Prefer max_scan_depth spec input.DS_PIP_DEPENDENCY_PATHKept. Applies only to Python dependency resolution.DS_PIP_VERSIONRemoved.DS_REMEDIATERemoved.DS_REMEDIATE_TIMEOUTRemoved.GEMNASIUM_DB_LOCAL_PATHRemoved.GEMNASIUM_DB_REF_NAMERemoved.GEMNASIUM_DB_REMOTE_URLRemoved.GEMNASIUM_DB_UPDATE_DISABLEDRemoved.GEMNASIUM_IGNORED_SCOPESRemoved.GEMNASIUM_LIBRARY_SCAN_ENABLEDRemoved.GOARCHRemoved.GOFLAGSRemoved.GOOSRemoved.GOPRIVATERemoved.GRADLE_CLI_OPTSKept. Applies only to Gradle dependency resolution.GRADLE_PLUGIN_INIT_PATHRemoved.MAVEN_CLI_OPTSReplaced by MAVEN_ARGS.PIP_EXTRA_INDEX_URLKept. Applies only to Python dependency resolution.PIP_INDEX_URLKept. Applies only to Python dependency resolution.PIP_REQUIREMENTS_FILEReplaced by DS_PIP_MANIFEST_FILE_NAME_PATTERN.PIPENV_PYPI_MIRRORRemoved.SBT_CLI_OPTSRemoved.SEARCH_IGNORE_HIDDEN_DIRSKept.SECURE_ANALYZERS_PREFIXKept. Prefer analyzer_image_prefix spec input.SECURE_LOG_LEVELKept. Prefer analyzer_log_level spec input.Variables marked Removed are ignored by the new analyzer. Remove them from your CI/CD configuration unless they are also used by other jobs.Variables marked Replaced by <new-name> still work but are deprecated. They are planned for removal in the next major version of GitLab. Update your CI/CD configuration to use the new variable name.Variables marked Kept are accepted by the new analyzer and behave as documented in the available CI/CD variables reference. Some kept variables now apply only to dependency resolution jobs and are noted as such in the table.To smooth the transition for existing user configurations (like scan execution policies), the v2 template is backwards compatible with these CI/CD variables. When set, they take precedence over their corresponding introduced in this new template.When you use the v2 CI/CD template directly in .gitlab-ci.yml, prefer spec inputs over CI/CD variables to configure the analyzer. Spec inputs are validated at pipeline creation time, provide clearer error messages, and are scoped to the template include. Use CI/CD variables when you configure dependency scanning through scan execution policies or security configuration profiles, where spec inputs are not available yet.New CI/CD variables introduced with the v2 templateThe v2 template adds the following variables. For details, see the available spec inputs and available CI/CD variables references.VariableSpec input equivalentPurposeANALYZER_ARTIFACT_DIR(none)Directory where CycloneDX SBOM reports are saved.DS_API_SCAN_DOWNLOAD_DELAYapi_scan_download_delayInitial delay before downloading vulnerability scan results.DS_API_TIMEOUTapi_timeoutTimeout for the dependency scanning SBOM scan API.DS_DISABLED_RESOLUTION_JOBSdisabled_resolution_jobsComma-separated list of dependency resolution jobs to disable (maven, gradle, python).DS_ENABLE_MANIFEST_FALLBACKenable_manifest_fallbackEnable manifest fallback when no lockfile or dependency graph export is available.DS_ENABLE_VULNERABILITY_SCANenable_vulnerability_scanToggle vulnerability scanning of generated SBOMs.DS_FF_LINK_COMPONENTS_TO_GIT_FILES(none)(Beta) Link components in the dependency list to files committed to the repository instead of dynamically generated files.DS_GRADLE_RESOLUTION_IMAGEgradle_resolution_imageImage used by the Gradle dependency resolution job.DS_MAVEN_RESOLUTION_IMAGEmaven_resolution_imageImage used by the Maven dependency resolution job.DS_MAVEN_DEPENDENCY_PLUGIN_VERSIONmaven_dependency_plugin_versionThe version of maven-dependency-plugin used during Maven dependency resolution.DS_PIP_MANIFEST_FILE_NAME_PATTERNpip_manifest_file_name_patternGlob pattern for pip manifest files.DS_PIPCOMPILE_LOCKFILE_FILE_NAME_PATTERNpipcompile_lockfile_file_name_patternGlob pattern for pip-compile lockfiles.DS_PYTHON_RESOLUTION_IMAGEpython_resolution_imageImage used by the Python dependency resolution job.DS_STATIC_REACHABILITY_ENABLEDenable_static_reachabilityEnable static reachability.Prepare for migrationEstimate migration effortIdentify your migration pathVerify Metadata Database synchronizationIdentify affected projectsUnderstand the changesA new approach to security scanningDependency detection for Gradle, Maven, and PythonAccessing scan resultsMigrate to dependency scanning using SBOMMigrate using the stable CI/CD templateMigrate using the latest CI/CD templateMigrate using the CI/CD componentMigrate using scan execution policiesProjects not covered by dependency resolution or manifest fallbackMigrate using pipeline execution policiesOther considerationsAdjust resolution job orderingLanguage-specific instructionsBundlerMigrate a Bundler projectCocoaPodsMigrate a CocoaPods projectComposerMigrate a Composer projectConanMigrate a Conan projectGoMigrate a Go projectGradleMigrate a Gradle projectMavenMigrate a Maven projectnpmMigrate an npm projectNuGetMigrate a NuGet projectpipMigrate a pip projectPipenvMigrate a Pipenv projectPoetryMigrate a Poetry projectpnpmMigrate a pnpm projectsbtMigrate an sbt projectsetuptoolsMigrate a setuptools projectSwiftMigrate a Swift projectuvMigrate a uv projectYarnMigrate a Yarn projectChanges to CI/CD variablesNew CI/CD variables introduced with the v2 template\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Dependency-Scanning.gitlab-ci.yml\n - template: Jobs/Dependency-Scanning.latest.gitlab-ci.yml\n```\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Dependency-Scanning.gitlab-ci.yml\n\n# Customization that targets the legacy job name.\ngemnasium-dependency_scanning:\n variables:\n SECURE_LOG_LEVEL: debug\n\n# Downstream job that consumes the legacy report.\nexport-security-report:\n stage: deploy\n needs:\n - job: gemnasium-dependency_scanning\n artifacts: true\n script:\n - ./publish.sh gl-dependency-scanning-report.json\n```\n\nExample:\n```yaml\ninclude:\n - template: Jobs/Dependency-Scanning.v2.gitlab-ci.yml\n inputs:\n analyzer_log_level: debug\n\nexport-security-report:\n stage: deploy\n needs:\n - job: dependency-scanning\n artifacts: true\n script:\n - ./publish.sh gl-dependency-scanning-report.json\n```\n\nExample:\n```yaml\ninclude:\n - component: $CI_SERVER_FQDN/components/dependency-scanning/main@1\n```\n\nExample:\n```yaml\ninclude:\n - component: $CI_SERVER_FQDN/components/dependency-scanning/main@2\n```\n\nExample:\n```yaml\nscan_execution_policy:\n - name: Enforce dependency scanning\n enabled: true\n rules:\n - type: pipeline\n branch_type: all\n actions:\n - scan: dependency_scanning\n```\n\nExample:\n```yaml\nscan_execution_policy:\n - name: Enforce dependency scanning\n enabled: true\n rules:\n - type: pipeline\n branch_type: all\n actions:\n - scan: dependency_scanning\n template: v2\n```\n\nExample:\n```yaml\nstages:\n - .pre\n - prepare\n - test\n\ninclude:\n - template: Jobs/Dependency-Scanning.v2.gitlab-ci.yml\n inputs:\n resolution_jobs_stage: prepare\n\nprivate-registry-cache-build:\n stage: .pre\n script:\n - ./scripts/login-private-registry.sh\n - ./scripts/build-dependency-cache.sh\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.885Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":102,"estimatedTokens":13522}}432{"id":"doc-evaluate_gitlab_sast_gitlab_docs-5c6fd737","source":"documentation","title":"Evaluate GitLab SAST | GitLab Docs","url":"https://docs.gitlab.com/user/application_security/sast/evaluation_guide/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationGetting startedTutorialsApplication securityComplianceDetectSecurity configurationRoll out security scanningSARIF reportsSecurity scanning resultsContainer scanningDependency scanning and container scanningDependency listContinuous vulnerability scanningStatic application security testing (SAST)GitLab Advanced SASTSAST rulesEvaluate SASTCustomize rulesetsSAST analyzersSAST troubleshootingInfrastructure as Code (IaC) scanningSecret detectionDynamic Application Security Testing (DAST)API securityWeb API fuzz testingCoverage-guided fuzz testing (deprecated)Offline environmentsScanner maintenanceTriageAnalyzeRemediateGitLab advisory databaseCVE ID requestsPoliciesSecurity glossaryDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Secure your application /Detect /Static application secur… /Evaluate SASTHelp us learn about your current experience with the documentation. Take the survey.Evaluate GitLab : GitLab.com, GitLab Self-Managed, GitLab DedicatedYou might choose to evaluate GitLab SAST before using it in your organization. Consider the following guidance as you plan and conduct your evaluation.Important conceptsGitLab SAST is designed to help teams collaboratively improve the security of the code they write. The steps you take to scan your code and view the results are centered around the source code repository being scanned.Scanning processGitLab SAST automatically selects the right scanning technology to use depending on which programming languages are found in your project. For all languages except Groovy, GitLab SAST scans your source code directly without requiring a compilation or build step. This makes it easier to enable scanning across a variety of projects. For details, see Supported languages and frameworks.When vulnerabilities are reportedGitLab SAST analyzers and their rules are designed to minimize noise for development and security teams.For details on when the GitLab Advanced SAST analyzer reports vulnerabilities, see Vulnerability detection criteria.Other platform featuresSAST is integrated with other security and compliance features in GitLab Ultimate. If you’re comparing GitLab SAST to another product, you may find that some of its features are included in a related GitLab feature area instead of scanning scans your Infrastructure as Code (IaC) definitions for security problems.Secret detection finds leaked secrets in your code.Security policies allow you to force scans to run or require that vulnerabilities are fixed.Vulnerability management and reporting manages the vulnerabilities that exist in the codebase and integrates with issue trackers.GitLab Duo vulnerability explanation and vulnerability resolution help you remediate vulnerabilities quickly by using AI.Choose a test codebaseWhen choosing a codebase to test SAST, you in a repository where you can safely modify the CI/CD configuration without getting in the way of normal development activities. SAST scans run in your CI/CD pipeline, so you’ll need to make a small edit to the CI/CD configuration to enable SAST.You can make a fork or copy of an existing repository for testing. This way, you can set up your testing environment without any chance of interrupting normal development.Use a codebase that matches your organization’s typical technology stack.Use a language that GitLab Advanced SAST supports. GitLab Advanced SAST produces more accurate results than other analyzers.Your test project must have GitLab Ultimate. Only Ultimate includes features cross-file, cross-function scanning with GitLab Advanced SAST.The merge request Reports tab, pipeline security report, and default-branch vulnerability report that makes scan results visible and actionable.Benchmarks and example projectsIf you choose to use a benchmark or an intentionally vulnerable application for testing, remember that these on specific vulnerability types. The benchmark’s focus may be different from the vulnerability types your organization prioritizes for discovery and remediation.Use specific technologies in specific ways that may differ from how your organization builds software.Report results in ways that may implicitly emphasize certain criteria over others. For example, you may prioritize precision (fewer false-positive results) while the benchmark only scores based on recall (fewer false-negative results).Epic 15296 tracks work to recommend specific projects for testing.AI-generated test codeYou should not use AI tools to create vulnerable code for testing SAST. AI models often return code that is not truly exploitable.For tools often write small functions that take a parameter and use it in a sensitive context (called a “sink”), without actually receiving any user input. This can be a safe design if the function is only called with program-controlled values, like constants. The code is not vulnerable unless user input is allowed to flow to these sinks without first being sanitized or validated.AI tools may comment out part of the vulnerability to prevent you from accidentally running the code.Reporting vulnerabilities in these unrealistic examples would cause false-positive results in real-world code. GitLab SAST is not designed to report vulnerabilities in these cases.Conduct the Maintainer or Owner role for the project.After you choose a codebase to test with, you’re ready to conduct the test. You can follow these SAST by creating a merge request (MR) that adds SAST to the CI/CD configuration.Be sure to set the CI/CD variable to turn on GitLab Advanced SAST for more accurate results.Merge the MR to the repository’s default branch.Open the vulnerability report to see the vulnerabilities found on the default branch.If you’re using GitLab Advanced SAST, you can use the Scanner filter to show results only from that scanner.Review vulnerability results.Check the code flow view for GitLab Advanced SAST vulnerabilities that involve tainted user input, like SQL injection or path traversal.If you have GitLab Duo Enterprise, explain or resolve a vulnerability.To see how scanning works as new code is developed, create a new merge request that changes application code and adds a new vulnerability or weakness.Important conceptsScanning processWhen vulnerabilities are reportedOther platform featuresChoose a test codebaseBenchmarks and example projectsAI-generated test codeConduct the test\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.973Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1676}}433{"id":"doc-validity_checks_gitlab_docs-a5c49168","source":"documentation","title":"Validity checks | GitLab Docs","url":"https://docs.gitlab.com/user/application_security/vulnerabilities/validity_check/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationGetting startedTutorialsApplication securityComplianceDetectSecurity configurationRoll out security scanningSARIF reportsSecurity scanning resultsContainer scanningDependency scanning and container scanningDependency listContinuous vulnerability scanningStatic application security testing (SAST)Infrastructure as Code (IaC) scanningSecret detectionDetected secretsExclusionsPipeline secret detectionCustomizeAutomatic response to leaked secretsCustom rulesets schemaValidity your project with pipeline secret detectionGitLab Secret Scanner for Source CodeSecret push protectionClient-side secret detectionDynamic Application Security Testing (DAST)API securityWeb API fuzz testingCoverage-guided fuzz testing (deprecated)Offline environmentsScanner maintenanceTriageAnalyzeRemediateGitLab advisory databaseCVE ID requestsPoliciesSecurity glossaryDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Secure your application /Detect /Secret detection /Pipeline secret detectio… /Validity checksHelp us learn about your current experience with the documentation. Take the survey.Validity : GitLab.com, GitLab Self-Managed, GitLab DedicatedHistoryIntroduced in GitLab 18.0 with a feature flag named validity_checks. Disabled by default.Additional access introduced in GitLab 18.2 with a flag named validity_checks_security_finding_status. Disabled by default.Enabled on GitLab.com in GitLab 18.5.Changed from experiment to beta in GitLab 18.5.Generally available in GitLab 18.7. Feature flag validity_checks_security_finding_status removed.Generally available in GitLab 18.7. Feature flag validity_checks is enabled by default.Removed feature flag validity_checks in GitLab 18.8.The availability of this feature is controlled by a feature flag. For more information, see the history.GitLab validity checks determines whether a secret, like an access token, is active. A secret is active is not expired.It can be used for authentication.Because active secrets can be used to impersonate a legitimate user, they pose a greater security risk than inactive secrets. If several secrets are leaked at once, knowing which secrets are active is an important part of triage and remediation.Enable validity must have a project with pipeline security scanning enabled.Your instance must have outbound network access to partner validation APIs.To enable validity checks for a the top bar, select Search or go to and find your project.In the left sidebar, select Secure > Security configuration.Under Pipeline Secret Detection, turn on the Validity checks toggle.GitLab checks the status of detected secrets when the secret_detection CI/CD job is complete. To view a secret’s status, view the vulnerability details page. To update the status of a secret, for example after revoking it, re-run the secret_detection CI/CD job.To turn on validity checks at the group level, as a Maintainer or higher role, use a GraphQL API { setGroupValidityChecks(input: { , namespacePath: \"my-group/my-subgroup\", projectsToExclude: [100, 105, 108] }) { clientMutationId validityChecksEnabled } }CoverageHistoryIntroduced support for external service tokens in GitLab 18.7 with a feature flag named secret_detection_partner_token_verification. Enabled by default.The availability of this feature is controlled by a feature flag. For more information, see the history.Validity checks support the following secret personal access tokensRoutable GitLab personal access tokensGitLab deploy tokensGitLab Runner authentication tokensRoutable GitLab Runner authentication tokensGitLab Kubernetes agent tokensGitLab SCIM OAuth tokensGitLab CI/CD job tokensGitLab incoming email tokensGitLab feed tokens (v2)GitLab pipeline trigger tokensExternal service IAM access key IDsPostman API tokensConfigure outbound network accessValidity checks are not supported in offline environments. This feature requires outbound network access to partner validation APIs to verify whether detected tokens are active.If your GitLab instance is behind a firewall but has internet access, allowlist the URLs for each partner’s validation API. The supported URLs ://sts.amazonaws.com/https://oauth2.googleapis.com/tokeninfohttps://api.getpostman.com/meIf you cannot allow outbound access to these endpoints, do not enable this feature. Enabling validity checks in a restricted network environment causes network errors during validation.Validity check workflowWhen the secret detection analyzer detects a potential secret, GitLab verifies the status of the secret with its vendor, and assigns the detection one of the following couldn’t verify the secret status, or the secret type is not supported by validity checks.Active: The secret is not expired and can be used for authentication.Inactive: The secret is expired or revoked and cannot be used for authentication.You should rotate active and possibly active secrets as soon as possible.%%{init: { \"fontFamily\": \"GitLab Sans\" }}%% flowchart TD checks workflow flow for secret detection showing three possible outcomes. A[Secret detection analyzer runs] --> B[Secret detected] B --> C{Verification<br>with vendor} C -->|Cannot verify or unsupported type| D[Possibly active] C -->|Valid and not expired| E[Active] C -->|Expired or revoked| F[Inactive] Refresh secret statusHistoryIntroduced in GitLab 18.2 with a feature flag named secret_detection_validity_checks_refresh_token. Disabled by default.Generally available in GitLab 18.7 Feature flag secret_detection_validity_checks_refresh_token removed.After validity checks runs, the status of a token is not automatically updated, even if the token is revoked or expires. To update a token, you can manually refresh the the vulnerability report, select the vulnerability you want to refresh.Next to the token status, select Retry ( ).Validity checks is re-run, and the token status is updated.TroubleshootingWhen working with validity checks, you might encounter the following issues.Unexpected token statusA token has the possibly active status when GitLab can’t verify its validity. This might be secret validation job hasn’t run.The secret type is not supported by validity checks.There was a problem connecting to the token provider.To resolve this issue, re-run the secret_detection job. If the status persists after a few attempts, you might need to validate the secret manually.Unless you’re certain the token isn’t active, you should revoke and replace possibly active secrets as soon as possible.External service token verification delaysExternal service token verification might take longer than GitLab token verification due to rate limits imposed by external services. If an external service token shows possibly active status temporarily, this is typical. The verification is queued and completes shortly. Check the Last verified at timestamp to see when the status was last updated, or refresh the page after a few moments.Enable validity checksCoverageConfigure outbound network accessValidity check workflowRefresh secret statusTroubleshootingUnexpected token statusExternal service token verification delays\n\nExample:\n```graphql\nmutation {\n setGroupValidityChecks(input: {\n validityChecksEnabled: true,\n namespacePath: \"my-group/my-subgroup\",\n projectsToExclude: [100, 105, 108]\n }) {\n clientMutationId\n validityChecksEnabled\n }\n}\n```\n\nExample:\n```text\n%%{init: { \"fontFamily\": \"GitLab Sans\" }}%%\n\nflowchart TD\n accTitle: Validity checks workflow\n accDescr: Process flow for secret detection showing three possible outcomes.\n A[Secret detection analyzer runs] --> B[Secret detected]\n B --> C{Verification<br>with vendor}\n\n C -->|Cannot verify or unsupported type| D[Possibly active]\n C -->|Valid and not expired| E[Active]\n C -->|Expired or revoked| F[Inactive]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:11.977Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":32,"estimatedTokens":2030}}434{"id":"doc-reassign_contributions_and_memberships_gitlab_do-a8c73494","source":"documentation","title":"Reassign contributions and memberships | GitLab Docs","url":"https://docs.gitlab.com/user/import/mapping/reassignment/","text":"Getting startedTutorialsManage your up your organizationNamespacesMembersOrganizationsGroupsImport and migrate to GitLabContribution and membership mappingReassign contributions and membershipsTroubleshootingMigrate between GitLab instancesMigrate from third-party systemsTroubleshootingSharing projects and groupsUser account optionsGitLab.com settingsLogs on GitLab.comOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Manage your organization /Import and migrate to Gi… /Contribution and members… /Reassign contributions and membershipsHelp us learn about your current experience with the documentation. Take the survey.Reassign contributions and membershipsUsers with the Owner role for a top-level group can reassign contributions and memberships from placeholder users to existing active non-bot users. On the destination instance, users with the Owner role for a top-level group users to review reassignment of contributions and memberships in the UI or through a CSV file. For a large number of placeholder users, you should use a CSV file. In both cases, users receive a request by email to accept or reject the reassignment. The reassignment starts only after the selected user accepts the reassignment request.Choose not to reassign contributions and memberships and keep them assigned to placeholder users.On GitLab Self-Managed and GitLab Dedicated, administrators can reassign contributions and memberships to active and inactive non-bot users immediately without their confirmation. For more information, see skip confirmation when administrators reassign placeholder users. To reassign contributions and memberships to administrators, see allow contribution mapping to administrators.Bypass confirmation when reassigning placeholder , on GitLab.com in GitLab 18.1 with a feature flag named group_owner_placeholder_confirmation_bypass. Disabled by default.Enabled on GitLab.com in GitLab 18.4.Generally available on GitLab.com in GitLab 18.7. Feature flag group_owner_placeholder_confirmation_bypass removed.Prerequisites:You must have the Owner role for the group.To bypass confirmation for enterprise users when you reassign the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Settings > General.Expand Permissions and group features.Under Placeholder user confirmation, select the Reassign placeholders to enterprise users without user confirmation checkbox.In When to restore user confirmation, select an end date for bypassing user confirmation. The default value is one day.Select Save changes.Reassigning contributions from multiple placeholder usersYou can reassign all contributions initially assigned to a single placeholder user to a single active regular user, service accounts, project bots, and group bots on the destination instance. You cannot split contributions assigned to a single placeholder user among multiple users.You can reassign contributions from multiple placeholder users to the same user on the destination instance if the placeholder users are source instancesThe same source instance and are imported to different top-level groups on the destination instanceIf an assigned user becomes inactive before accepting the reassignment request, the pending reassignment remains linked to the user until they accept it.Users that receive a reassignment request the request. All contributions and membership previously attributed to the placeholder user are re-attributed to the accepting user. This process can take a few minutes, depending on the number of contributions.Reject the request or report it as spam. This option is available in the reassignment request email.When you reassign contributions to service accounts, project bots, and group bots, the reassignment request is automatically approved.In subsequent imports to the same top-level group, contributions and memberships that belong to the same source user are mapped automatically to the user who previously accepted reassignments for that source user.On GitLab Self-Managed and GitLab Dedicated, administrators can reassign contributions and memberships to active and inactive non-bot users immediately without their confirmation. For more information, see skip confirmation when administrators reassign placeholder users. To reassign contributions and memberships to administrators, see allow contribution mapping to administrators.Completing the reassignmentThe reassignment process must be fully completed before an imported group in the same GitLab instance.Move an imported project to a different group.Duplicate an imported issue.Promote an imported issue to an epic.If the process isn’t complete, contributions still assigned to placeholder users cannot be reassigned to real users and they stay associated with placeholder users.Security considerationsContribution and membership reassignment cannot be undone, so check everything carefully before you start.Reassigning contributions and membership to an incorrect user poses a security threat, because the user becomes a member of your group. They can, therefore, view information they should not be able to see.Reassigning contributions to users with administrator access is disabled by default, but you can enable it.Membership security considerationsBecause of the GitLab permissions model, when a group or project is imported into an existing parent group, members of the parent group are granted inherited membership of the imported group or project.Selecting a user for contribution and membership reassignment who already has an existing inherited membership of the imported group or project can affect how memberships are reassigned to them.GitLab does not allow a membership in a child project or group to have a lower role than an inherited membership. If an imported membership for an assigned user has a lower role than their existing inherited membership, the imported membership is not reassigned to the user.This results in their membership for the imported group or project being higher than it was on the source.Request reassignment in must have the Owner role for the group.You can reassign contributions and memberships in the top-level group. To request reassignment of contributions and the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Go to Awaiting reassignment sub-tab, where placeholders are listed in a table.For each placeholder, review information in table columns Placeholder user and Source.In the Reassign placeholder to column, select a user from the dropdown list.Select Reassign.Contributions of only one placeholder user can be reassigned to an active non-bot user on destination instance.Before a user accepts the reassignment, you can cancel the request.On GitLab Self-Managed and GitLab Dedicated, administrators can reassign contributions and memberships to active and inactive non-bot users immediately without their confirmation. For more information, see skip confirmation when administrators reassign placeholder users. To reassign contributions and memberships to administrators, see allow contribution mapping to administrators.Request reassignment by using a CSV fileHistoryIntroduced in GitLab 17.10 with a feature flag named importer_user_mapping_reassignment_csv. Enabled by default.Generally available in GitLab 18.0. Feature flag importer_user_mapping_reassignment_csv removed.Prerequisites:You must have the Owner role for the group.For a large number of placeholder users, you might want to reassign contributions and memberships by using a CSV file. You can download a prefilled CSV template with the following information. For hostImport typeSource user identifierSource user nameSource usernamegitlab.example.comgitlabaliceAlice Codera.coderDo not update Source host, Import type, or Source user identifier. This information locates the corresponding database record after you’ve uploaded the completed CSV file. Source user name and Source username identify the source user and are not used after you’ve uploaded the CSV file.You do not have to update every row of the CSV file. Only rows with GitLab username or GitLab public email are processed. All other rows are skipped.To request reassignment of contributions and memberships by using a CSV the top bar, select Search or go to and find your group.In the left sidebar, select Manage > Members.Select the Placeholders tab.Select Reassign with CSV.Download the prefilled CSV template.In GitLab username or GitLab public email, enter the username or public email address of the GitLab user on the destination instance. Instance administrators can reassign users with any confirmed email address.Upload the completed CSV file.Select Reassign.You can assign only contributions from a single placeholder user to each active non-bot user on the destination instance. Users receive an email to review and accept any contributions you’ve reassigned to them. You can cancel the reassignment request before the user reviews it.On GitLab Self-Managed and GitLab Dedicated, administrators can reassign contributions and memberships to active and inactive non-bot users immediately without their confirmation. For more information, see skip confirmation when administrators reassign placeholder users. To reassign contributions and memberships to administrators, see allow contribution mapping to administrators.After you reassign contributions, GitLab sends you an email with the number processed rowsUnsuccessfully processed rowsSkipped rowsIf any rows have not been successfully processed, the email has a CSV file with more detailed results.To reassign placeholder users in bulk without using the UI, see Group placeholder reassignments API.Keep as placeholderHistoryChanged in GitLab 18.5, the operation can be undone.You might not want to reassign contributions and memberships to users on the destination instance. For example, you might have former employees that contributed on the source instance, but they do not exist as users on the destination instance.In these cases, you can keep the contributions assigned to placeholder users. Placeholder users do not keep membership information because they cannot be members of projects or groups.Because names and usernames of placeholder users resemble names and usernames of source users, you keep a lot of historical context.You can keep contributions assigned to placeholder users either one at a time or in bulk. When you reassign contributions in bulk, the entire namespace and users with the following reassignment statuses are startedRejectedTo keep placeholder users one at a the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Go to Awaiting reassignment sub-tab, where placeholders are listed in a table.Find placeholder user you want to keep by reviewing Placeholder user and Source columns.In Reassign placeholder to column, select Do not reassign.Select Confirm.To keep placeholder users in the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Above the list, select the vertical ellipsis ( ) > Keep all as placeholders.On the confirmation dialog, select Confirm.To undo the the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Go to Reassigned sub-tab, where placeholders are listed in a table.Select Undo in the correct row.Cancel reassignment requestBefore a user accepts a reassignment request, you can cancel the the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Go to Awaiting reassignment sub-tab, where placeholders are listed in a table.Select Cancel in the correct row.Notify user again about pending reassignment requestsIf a user is not acting on a reassignment request, you can prompt them again by sending another the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Go to Awaiting reassignment sub-tab, where placeholders are listed in a table.Select Notify in the correct row.View and filter by reassignment statusTo view the reassignment status of all placeholder the top bar, select Search or go to and find your group. This group must be at the top level.In the left sidebar, select Manage > Members.Select the Placeholders tab.Go to Awaiting reassignment sub-tab, where placeholders are listed in a table.See the status of each placeholder user in Reassignment status column.In the Awaiting reassignment tab, possible statuses started - Reassignment has not started.Pending approval - Reassignment is waiting on user approval.Reassigning - Reassignment is in progress.Rejected - Reassignment was rejected by user.Failed - Reassignment failed.In the Reassigned tab, possible statuses - Reassignment succeeded.Kept as placeholder - Placeholder user was made permanent.By default, the table is sorted alphabetically by placeholder user name. You can also sort the table by reassignment status.Confirm contribution reassignmentWhen Skip confirmation when administrators reassign placeholder users is can reassign contributions immediately without user confirmation.Administrators can reassign contributions to active and inactive non-bot users.You receive an email informing you that you’ve been reassigned contributions.If this setting is not enabled, you can accept or reject the reassignment.Accept contribution reassignmentYou might receive an email informing you that an import process took place and asking you to confirm reassignment of contributions to yourself.If you were informed about this import process, you must still review reassignment details very carefully. Details listed in the email from - The platform the imported content originates from. For example, another instance of GitLab, GitHub, or Bitbucket.Original user - The name and username of the user on the source platform. This could be your name and user name on that platform.Imported to - The name of the new platform, which can only be a GitLab instance.Reassigned to - Your full name and username on the GitLab instance.Reassigned by - The full name and username of your colleague or manager that performed the import.Reject contribution reassignmentIf you receive an email asking you to confirm reassignment of contributions to yourself and you don’t recognize or you notice mistakes in this not proceed at all or reject the contribution reassignment.Talk to a trusted colleague or your manager.Security considerationsYou must review the reassignment details of any reassignment request very carefully. If you were not already informed about this process by a trusted colleague or your manager, take extra care.Rather than accept any reassignments that you have any doubts ’t act on the emails.Talk to a trusted colleague or your manager.Accept reassignments only from the users that you know and trust. Reassignment of contributions is permanent and cannot be undone. Accepting the reassignment might cause contributions to be incorrectly attributed to you.The contribution reassignment process starts only after you accept the reassignment request by selecting Approve reassignment in GitLab. The process doesn’t start by selecting links in the email.Bypass confirmation when reassigning placeholder usersReassigning contributions from multiple placeholder usersCompleting the reassignmentSecurity considerationsMembership security considerationsRequest reassignment in UIRequest reassignment by using a CSV fileKeep as placeholderCancel reassignment requestNotify user again about pending reassignment requestsView and filter by reassignment statusConfirm contribution reassignmentAccept contribution reassignmentReject contribution reassignmentSecurity considerations\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.162Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":4118}}435{"id":"doc-use_generic_oauth2_gem_as_an_oauth_2_0_authentic-bf9c13f9","source":"documentation","title":"Use Generic OAuth2 gem as an OAuth 2.0 authentication provider | GitLab Docs","url":"https://docs.gitlab.com/integration/oauth2_generic/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUser up SAML SSO for GitLab.comLDAPOmniAuthAliCloudAtlassianAtlassian CrowdAuth0AWS CognitoMicrosoft AzureBitbucket CloudGeneric OAuth2GitHub as an OAuth 2.0 authentication providerIntegrate your server with GitLab.comGoogleJWTIntegrate GitLab with KerberosOpenID ConnectSalesforceShibbolethSAML SSO for GitLab Self-ManagedSAML SSO for GitLab.com groupsSAML Group SyncSCIM for GitLab Self-ManagedSCIM for GitLab.comGitLab as an OAuth 2.0 identity providerGitLab as OpenID Connect identity providerTest OIDC/OAuth in GitLabUser authenticationUser permissionsAuth best practicesAuth glossaryUse GitManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Manage authentication an… /User identity /OmniAuth /Generic OAuth2Help us learn about your current experience with the documentation. Take the survey.Use Generic OAuth2 gem as an OAuth 2.0 authentication , Premium, Self-ManagedIf your provider supports the OpenID specification, you should use omniauth-openid-connect as your authentication provider.The omniauth-oauth2-generic gem allows single sign-on (SSO) between GitLab and your OAuth 2.0 provider, or any OAuth 2.0 provider compatible with this gem.This strategy allows for the configuration of this OmniAuth SSO directs the client to your authorization URL (configurable), with the specified ID and key.The OAuth 2.0 provider handles authentication of the request, user, and (optionally) authorization to access the user’s profile.The OAuth 2.0 provider directs the client back to GitLab where Strategy retrieves the access token.Strategy requests user information from a configurable “user profile” URL using the access token.Strategy parses user information from the response using a configurable format.GitLab finds or creates the returned user and signs them in.This only be used for single sign-on, and does not provide any other access granted by any OAuth 2.0 provider. For example, importing projects or users.Only supports the Authorization Grant flow, which is most common for client-server applications like GitLab.Cannot fetch user information from more than one URL.Cannot fetch user information from the access token in JWT format.Has not been tested with user information formats, except JSON.Configure the OAuth 2.0 providerTo configure the your application in the OAuth 2.0 provider you want to authenticate with.The redirect URI you provide when registering the application should ://your-gitlab.host.com/users/auth/oauth2_generic/callbackYou should now be able to get a client ID and client secret. Where these appear is different for each provider. This may also be called application ID and application secret.On your GitLab server, complete the following steps.Linux package (Omnibus)Configure the common settings to add oauth2_generic as a single sign-on provider. This enables Just-In-Time account provisioning for users who do not have an existing GitLab account.Edit /etc/gitlab/gitlab.rb to add the configuration for your provider. For ['omniauth_providers'] = [ { name: \"oauth2_generic\", label: \"Provider name\", # optional label for login button, defaults to \"Oauth2 Generic\" app_id: \"<your_app_client_id>\", app_secret: \"<your_app_client_secret>\", args: { client_options: { site: \"<your_auth_server_url>\", user_info_url: \"/oauth2/v1/userinfo\", authorize_url: \"/oauth2/v1/authorize\", token_url: \"/oauth2/v1/token\" }, user_response_structure: { root_path: [], id_path: [\"sub\"], attributes: { email: \"email\", name: \"name\" } }, authorize_params: { scope: \"openid profile email\" }, strategy_class: \"OmniAuth::Strategies::OAuth2Generic\" } } ]Save the file and reconfigure gitlab-ctl reconfigureHelm chart (Kubernetes)Configure the common settings to add oauth2_generic as a single sign-on provider. This enables Just-In-Time account provisioning for users who do not have an existing GitLab account.Export the Helm get values gitlab > gitlab_values.yamlPut the following content in a file named oauth2_generic.yaml for use as a Kubernetes : \"oauth2_generic\" label: \"Provider name\" # optional label for login button defaults to \"Oauth2 Generic\" app_id: \"<your_app_client_id>\" app_secret: \"<your_app_client_secret>\" : site: \"<your_auth_server_url>\" user_info_url: \"/oauth2/v1/userinfo\" authorize_url: \"/oauth2/v1/authorize\" token_url: \"/oauth2/v1/token\" : [] id_path: [\"sub\"] : \"email\" name: \"name\" : \"openid profile email\" strategy_class: \"OmniAuth::Strategies::OAuth2Generic\"Create the Kubernetes create secret generic -n <namespace> gitlab-oauth2-generic --from-file=provider=oauth2_generic.yamlEdit gitlab_values.yaml and add the provider : : the file and apply the new upgrade -f gitlab_values.yaml gitlab gitlab/gitlabSelf-compiled (source)Configure the common settings to add oauth2_generic as a single sign-on provider. This enables Just-In-Time account provisioning for users who do not have an existing GitLab account.Edit /home/git/gitlab/config/gitlab.yml:production: &base : - { name: \"oauth2_generic\", label: \"Provider name\", # optional label for login button, defaults to \"Oauth2 Generic\" app_id: \"<your_app_client_id>\", app_secret: \"<your_app_client_secret>\", args: { client_options: { site: \"<your_auth_server_url>\", user_info_url: \"/oauth2/v1/userinfo\", authorize_url: \"/oauth2/v1/authorize\", token_url: \"/oauth2/v1/token\" }, user_response_structure: { root_path: [], id_path: [\"sub\"], attributes: { email: \"email\", name: \"name\" } }, authorize_params: { scope: \"openid profile email\" }, strategy_class: \"OmniAuth::Strategies::OAuth2Generic\" } }Save the file and restart GitLab:# For systems running systemd sudo systemctl restart gitlab.target # For systems running SysV init sudo service gitlab restartOn the sign-in page there should now be a new icon below the regular sign-in form. Select that icon to begin your provider’s authentication process. This directs the browser to your OAuth 2.0 provider’s authentication page. If everything goes well, you are returned to your GitLab instance and signed in.Configure the OAuth 2.0 provider\n\nExample:\n```plaintext\nhttp://your-gitlab.host.com/users/auth/oauth2_generic/callback\n```\n\nExample:\n```ruby\ngitlab_rails['omniauth_providers'] = [\n {\n name: \"oauth2_generic\",\n label: \"Provider name\", # optional label for login button, defaults to \"Oauth2 Generic\"\n app_id: \"<your_app_client_id>\",\n app_secret: \"<your_app_client_secret>\",\n args: {\n client_options: {\n site: \"<your_auth_server_url>\",\n user_info_url: \"/oauth2/v1/userinfo\",\n authorize_url: \"/oauth2/v1/authorize\",\n token_url: \"/oauth2/v1/token\"\n },\n user_response_structure: {\n root_path: [],\n id_path: [\"sub\"],\n attributes: {\n email: \"email\",\n name: \"name\"\n }\n },\n authorize_params: {\n scope: \"openid profile email\"\n },\n strategy_class: \"OmniAuth::Strategies::OAuth2Generic\"\n }\n }\n]\n```\n\nExample:\n```shell\nsudo gitlab-ctl reconfigure\n```\n\nExample:\n```shell\nhelm get values gitlab > gitlab_values.yaml\n```\n\nExample:\n```yaml\nname: \"oauth2_generic\"\nlabel: \"Provider name\" # optional label for login button defaults to \"Oauth2 Generic\"\napp_id: \"<your_app_client_id>\"\napp_secret: \"<your_app_client_secret>\"\nargs:\n client_options:\n site: \"<your_auth_server_url>\"\n user_info_url: \"/oauth2/v1/userinfo\"\n authorize_url: \"/oauth2/v1/authorize\"\n token_url: \"/oauth2/v1/token\"\n user_response_structure:\n root_path: []\n id_path: [\"sub\"]\n attributes:\n email: \"email\"\n name: \"name\"\n authorize_params:\n scope: \"openid profile email\"\n strategy_class: \"OmniAuth::Strategies::OAuth2Generic\"\n```\n\nExample:\n```shell\nkubectl create secret generic -n <namespace> gitlab-oauth2-generic --from-file=provider=oauth2_generic.yaml\n```\n\nExample:\n```yaml\nglobal:\n appConfig:\n omniauth:\n providers:\n - secret: gitlab-oauth2-generic\n```\n\nExample:\n```shell\nhelm upgrade -f gitlab_values.yaml gitlab gitlab/gitlab\n```\n\nExample:\n```yaml\nproduction: &base\n omniauth:\n providers:\n - { name: \"oauth2_generic\",\n label: \"Provider name\", # optional label for login button, defaults to \"Oauth2 Generic\"\n app_id: \"<your_app_client_id>\",\n app_secret: \"<your_app_client_secret>\",\n args: {\n client_options: {\n site: \"<your_auth_server_url>\",\n user_info_url: \"/oauth2/v1/userinfo\",\n authorize_url: \"/oauth2/v1/authorize\",\n token_url: \"/oauth2/v1/token\"\n },\n user_response_structure: {\n root_path: [],\n id_path: [\"sub\"],\n attributes: {\n email: \"email\",\n name: \"name\"\n }\n },\n authorize_params: {\n scope: \"openid profile email\"\n },\n strategy_class: \"OmniAuth::Strategies::OAuth2Generic\"\n }\n }\n```\n\nExample:\n```shell\n# For systems running systemd\nsudo systemctl restart gitlab.target\n\n# For systems running SysV init\nsudo service gitlab restart\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.374Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":10,"totalLines":133,"estimatedTokens":2343}}436{"id":"doc-running_gitlab_qa_gitlab_docs-84b4e804","source":"documentation","title":"Running GitLab QA | GitLab Docs","url":"https://docs.gitlab.com/charts/development/gitlab-qa/","text":"Contribute to GitLabContribute to GitLab RunnerContribute to GitLab PagesContribute to GitLab DistributionContribute to Omnibus GitLabContribute to GitLab Helm chartsArchitecture of Cloud native GitLab Helm chartsEnvironment setupStyle guideRunning GitLab QAWriting bats testsWriting RSpec testsTesting with ChaosKubeVersioning and releaseTroubleshootingClickHouse databasecheckConfig templateValidation of values using JSON schemaDeploy Development BranchDeprecations and removalsContribute to GitLab OperatorContribute to documentationGitLab Docs /Contribute /Contribute to GitLab Dis… /Contribute to GitLab Hel… /Running GitLab QAHelp us learn about your current experience with the documentation. Take the survey.Running GitLab QAThe following documentation is meant to provide instructions for running GitLab QA against a deployed cloud native GitLab installation. These steps are performed as a part of the CI for this project but manual runs may be requested during development or a demo.PreparationBefore running GitLab QA, there are a few things to do.Determine running version of GitLabFrom your deployed GitLab chart, visit /admin and see the Components panel for the version of GitLab that is running. If this is X.Y.Z-pre, then you will want the nightly image. If this is X.Y.Z-ee, then you will want this version of GitLab QA image.Export GITLAB_VERSION based on what you have GITLAB_VERSION=11.0.3-eeor:export GITLAB_VERSION=nightlyNetwork accessTo run GitLab QA, you will need sustained network access to the deployed instance. Ensure this by visiting the deployment from any browser, or via cURL.Running GitLab QA in pipelineTo run GitLab QA tests against the deployed instance you can use GitLab QA Executor. This project contains CI configuration to run GitLab QA against GitLab Self-Managed environments with parallelization that automates the following manual steps for running GitLab QA from a local machine.Running GitLab QA from local machineFollow below instructions to run GitLab QA against the deployed instance from your local machine.Install the gitlab-qa gemEnsure you have a functional version of Ruby, preferably of the 3.0 branch. Install the gitlab-qa install gitlab-qaFor more info, see the GitLab QA documentation.DockerGitLab QA makes use of Docker, so you will need to have an operational installation. Ensure that the daemon is running. If you have set GITLAB_VERSION=nightly, pull the GitLab QA nightly image to ensure that the latest nightly is used for testing, in conjunction with the nightly builds of the CNG pull gitlab/gitlab-ee-qa:$GITLAB_VERSIONConfigurationItems needed for execution, which will be set as environment : The version of GitLab QA version to run. See determine running version of GitLab above.GITLAB_USERNAME: This will be root.GITLAB_PASSWORD: This will be the password for the root user.GITLAB_ADMIN_USERNAME: This will be root.GITLAB_ADMIN_PASSWORD: This will be the password for the root user.GITLAB_URL: The fully-qualified URL to the deployed instance. This should be in the form of https://gitlab.domain.tld.EE_LICENSE: A string containing a GitLab EE license. This can be handled via export EE_LICENSE=$(cat GitLab.gitlab-license).Retrieve the above items, and export them as environment variables.Select test suiteGitLab QA has multiple test suites to run against the standalone environment. Suite consists of subset of tests when end-to-end tests are grouped by various RSpec subset of fast end-to-end functional tests to quickly ensure that basic functionality is workingEnable this suite via export QA_OPTIONS=\"--tag smoke\"Full all tests against the environment. Test run will take more than an hour.Enable this suite via --tag ~skip_live_env --tag ~orchestrated --tag ~requires_praefect --tag ~github --tag ~requires_git_protocol_v2 --tag ~transientSelecting a test suite depends on the use case. In the majority of cases, running Smoke suite should give quick and consistent test results as well as a good test coverage. This suite is being used as a sanity check in GitLab.com deployments.Full suite should be used to get full test results on the environment. It can be resource intensive to run this suite from a local machine. Use export CHROME_DISABLE_DEV_SHM=true when running Full suite from a single machine.ExecutionAssuming you have set the environment variables from the Configuration step and selected test suite, the following command will perform the tests against the deployed GitLab Test::Instance::Any EE:$GITLAB_VERSION $GITLAB_URL -- $QA_OPTIONSThe above command runs with nightly because the containers used as a part of this chart are currently based on nightly builds of the master branches of gitlab-(ee|ce) repositories.PreparationDetermine running version of GitLabNetwork accessRunning GitLab QA in pipelineRunning GitLab QA from local machineInstall the gitlab-qa gemDockerConfigurationSelect test suiteExecution\n\nExample:\n```shell\nexport GITLAB_VERSION=11.0.3-ee\n```\n\nExample:\n```shell\nexport GITLAB_VERSION=nightly\n```\n\nExample:\n```shell\ngem install gitlab-qa\n```\n\nExample:\n```shell\ndocker pull gitlab/gitlab-ee-qa:$GITLAB_VERSION\n```\n\nExample:\n```shell\ngitlab-qa Test::Instance::Any EE:$GITLAB_VERSION $GITLAB_URL -- $QA_OPTIONS\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.383Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":28,"estimatedTokens":1314}}437{"id":"doc-architecture_gitlab_docs-7bf12613","source":"documentation","title":"Architecture | GitLab Docs","url":"https://docs.gitlab.com/charts/architecture/architecture/","text":"Contribute to GitLabContribute to GitLab RunnerContribute to GitLab PagesContribute to GitLab DistributionContribute to Omnibus GitLabContribute to GitLab Helm chartsArchitecture of Cloud native GitLab Helm chartsBackup and RestoreGoalsArchitectureDesign DecisionsDecision MakingResource UsageEnvironment setupStyle guideRunning GitLab QAWriting bats testsWriting RSpec testsTesting with ChaosKubeVersioning and releaseTroubleshootingClickHouse databasecheckConfig templateValidation of values using JSON schemaDeploy Development BranchDeprecations and removalsContribute to GitLab OperatorContribute to documentationGitLab Docs /Contribute /Contribute to GitLab Dis… /Contribute to GitLab Hel… /Architecture of Cloud na… /ArchitectureHelp us learn about your current experience with the documentation. Take the survey.ArchitectureWe plan to support three tiers of ContainersScheduler (Kubernetes)Higher level configuration tool (Helm)The main method customers would use to install would be the Helm chart in this repository. At some point in the future, we may also offer other deployment methods like Amazon CloudFormation or Docker Swarm.Docker Container ImagesAs a foundation, we will be creating a Docker container for each service. This will allow easier horizontal scaling with reduced image size and complexity. Configuration should be passed in a standard way for Docker, perhaps environment variables or a mounted file. This provides a clean common interface with the scheduler software.GitLab Docker ImagesThe GitLab application is built using Docker images that contain GitLab specific services. The build environments for these images can be found in the CNG repository.The following GitLab components have images in the CNG repository.GitalyGitLab Elasticsearch Indexermail_roomGitLab ExporterGitLab ShellSidekiqGitLab ToolboxWebserviceWorkhorseThe following are forked charts which also use GitLab specific Docker images.Docker images that are used for initContainers and various Jobs.alpine-certificateskubectlOfficial Docker ImagesWe leverage the following existing official containers for underlying Distribution (Docker Registry 2.0)PrometheusNGINX Ingresscert-managerRedisPostgreSQLThe GitLab chartThis is the top level GitLab chart (gitlab), which configures all necessary resources for a complete configuration of GitLab. This includes GitLab, PostgreSQL, Redis, Ingress, and certificate management charts.At this high level, a customer can make decisions they want to use the embedded PostgreSQL chart, or to use an external database like Amazon RDS for PostgreSQL.To bring their own SSL certificates, or leverage Let’s Encrypt.To use a load balancer, or a dedicated Ingress.Customers who would like to get started quickly and easily should begin with this chart.Structure of these chartsThe main GitLab chart is an umbrella chart, made up of many other charts. Each sub-chart is documented individually, and laid in a structure that matches the charts directory structure.Non-GitLab components are packaged and documented on the top level. GitLab component services are documented under the GitLab /GitalyGitLab/GitLab ExporterGitLab/GitLab ShellGitLab/MigrationsGitLab/SidekiqGitLab/WebserviceComponents listA list of which components are deployed when using the chart, and configuration instructions if needed, is available on the architecture components list page.Design DecisionsDocumentation of the decisions made regarding the architecture of these charts can be found in Design Decisions documentationDocker Container ImagesGitLab Docker ImagesOfficial Docker ImagesThe GitLab chartStructure of these chartsComponents listDesign Decisions\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.395Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":921}}438{"id":"doc-project_starring_api_gitlab_docs-63518243","source":"documentation","title":"Project starring API | GitLab Docs","url":"https://docs.gitlab.com/api/project_starring/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIResources.gitignore (templates).gitlab-ci.yml (templates)Access requestsAgent for KubernetesAI Catalog adminAlert managementApplication appearanceApplication settingsApplication statisticsApplicationsAttestationsAudit eventsAvatarBranchesBroadcast messagesCluster discovery (certificate-based) (deprecated)Code SuggestionsCommitsCompliance and policy settingsContainer registryContainer virtual registryCustom attributesDatabase migrationsData managementDependenciesDependency list exportDeploy keysDeploy tokensDeploymentsDiscussionsDockerfile (templates)DORA4 metricsEmoji reactionsEnvironmentsEpics (deprecated)Error trackingEventsExperimentsExternal status checksFeature flagsFeature flag user listsFlowsFreeze periodsGeo nodes (deprecated)Geo sitesGitLab Duo Chat completionsGitLab PagesGLQLGoogle Cloud integrationGroupsImportInstance CI/CD variablesInvitationsIssuesIssues (epic) (deprecated)Issues statisticsJobsJob artifactsJob token scopesKeysLicenseLicenses (templates)Linked epics (deprecated)Links (issue)Links (epic) (deprecated)Lint , { \"id\": 6, \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\", \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\", \"default_branch\": \"main\", \"visibility\": \"private\", \"ssh_url_to_repo\": \"git@example.com:brightbox/puppet.git\", \"http_url_to_repo\": \"http://example.com/brightbox/puppet.git\", \"web_url\": \"http://example.com/brightbox/puppet\", \"readme_url\": \"http://example.com/brightbox/puppet/blob/main/README.md\", \"tag_list\": [ //deprecated, use `topics` instead \"example\", \"puppet\" ], \"topics\": [ \"example\", \"puppet\" ], \"owner\": { \"id\": 4, \"name\": \"Brightbox\", \"created_at\": \"2013-09-30T13:46:02Z\" }, \"name\": \"Puppet\", \"name_with_namespace\": \"Brightbox / Puppet\", \"path\": \"puppet\", \"path_with_namespace\": \"brightbox/puppet\", \"issues_enabled\": true, \"open_issues_count\": 1, \"merge_requests_enabled\": true, \"jobs_enabled\": true, \"wiki_enabled\": true, \"snippets_enabled\": false, \"can_create_merge_request_in\": true, \"resolve_outdated_diff_discussions\": false, \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead \"container_registry_access_level\": \"disabled\", \"security_and_compliance_access_level\": \"disabled\", \"created_at\": \"2013-09-30T13:46:02Z\", \"updated_at\": \"2013-09-30T13:46:02Z\", \"last_activity_at\": \"2013-09-30T13:46:02Z\", \"creator_id\": 3, \"namespace\": { \"id\": 4, \"name\": \"Brightbox\", \"path\": \"brightbox\", \"kind\": \"group\", \"full_path\": \"brightbox\" }, \"import_status\": \"none\", \"import_error\": null, \"permissions\": { \"project_access\": { \"access_level\": 10, \"notification_level\": 3 }, \"group_access\": { \"access_level\": 50, \"notification_level\": 3 } }, \"archived\": false, \"avatar_url\": null, \"shared_runners_enabled\": true, \"group_runners_enabled\": true, \"forks_count\": 0, \"star_count\": 0, \"runners_token\": \"<token>\", \"public_jobs\": true, \"shared_with_groups\": [], \"only_allow_merge_if_pipeline_succeeds\": false, \"allow_merge_on_skipped_pipeline\": false, \"restrict_user_defined_variables\": false, \"only_allow_merge_if_all_discussions_are_resolved\": false, \"remove_source_branch_after_merge\": false, \"request_access_enabled\": false, \"merge_method\": \"merge\", \"squash_option\": \"default_on\", \"auto_devops_enabled\": true, \"auto_devops_deploy_strategy\": \"continuous\", \"repository_storage\": \"default\", \"approvals_before_merge\": 0, // Deprecated. Use merge request approvals API instead. \"mirror\": false, \"mirror_user_id\": 45, \"mirror_trigger_builds\": false, \"only_mirror_protected_branches\": false, \"mirror_overwrites_diverged_branches\": false, \"external_authorization_classification_label\": null, \"packages_enabled\": true, \"service_desk_enabled\": false, \"service_desk_address\": null, \"autoclose_referenced_issues\": true, \"enforce_auth_checks_on_uploads\": true, \"suggestion_commit_message\": null, \"merge_commit_template\": null, \"squash_commit_template\": null, \"issue_branch_template\": \"gitlab/%{id}-%{title}\", \"statistics\": { \"commit_count\": 12, \"storage_size\": 2066080, \"repository_size\": 2066080, \"lfs_objects_size\": 0, \"job_artifacts_size\": 0, \"pipeline_artifacts_size\": 0, \"packages_size\": 0, \"snippets_size\": 0, \"uploads_size\": 0, \"container_registry_size\": 0 }, \"container_registry_image_prefix\": \"registry.example.com/brightbox/puppet\", \"_links\": { \"self\": \"http://example.com/api/v4/projects\", \"issues\": \"http://example.com/api/v4/projects/1/issues\", \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\", \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\", \"labels\": \"http://example.com/api/v4/projects/1/labels\", \"events\": \"http://example.com/api/v4/projects/1/events\", \"members\": \"http://example.com/api/v4/projects/1/members\", \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\" } } ]List users who starred a projectLists all users who starred a specified project.GET /projects/:id/starrersSupported or stringYesThe ID or URL-encoded path of the project.searchstringNoSearch for specific users.Example --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/starrers\"Example responses:[ { \"starred_since\": \"2019-01-28T14:47:30.642Z\", \"user\": { \"id\": 1, \"username\": \"jane_smith\", \"name\": \"Jane Smith\", \"state\": \"active\", \"avatar_url\": \"http://localhost:3000/uploads/user/avatar/1/cd8.jpeg\", \"web_url\": \"http://localhost:3000/jane_smith\" } }, { \"starred_since\": \"2018-01-02T11:40:26.570Z\", \"user\": { \"id\": 2, \"username\": \"janine_smith\", \"name\": \"Janine Smith\", \"state\": \"blocked\", \"avatar_url\": \"http://gravatar.com/../e32131cd8.jpeg\", \"web_url\": \"http://localhost:3000/janine_smith\" } } ]Star a projectStar a project.POST /projects/:id/starSupported or stringYesThe ID or URL-encoded path of the project.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/star\"Example response:{ \"id\": 3, \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\", \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\", \"default_branch\": \"main\", \"visibility\": \"internal\", \"ssh_url_to_repo\": \"git@example.com:diaspora/diaspora-project-site.git\", \"http_url_to_repo\": \"http://example.com/diaspora/diaspora-project-site.git\", \"web_url\": \"http://example.com/diaspora/diaspora-project-site\", \"readme_url\": \"http://example.com/diaspora/diaspora-project-site/blob/main/README.md\", \"tag_list\": [ //deprecated, use `topics` instead \"example\", \"disapora project\" ], \"topics\": [ \"example\", \"disapora project\" ], \"name\": \"Diaspora Project Site\", \"name_with_namespace\": \"Diaspora / Diaspora Project Site\", \"path\": \"diaspora-project-site\", \"path_with_namespace\": \"diaspora/diaspora-project-site\", \"repository_object_format\": \"sha1\", \"issues_enabled\": true, \"open_issues_count\": 1, \"merge_requests_enabled\": true, \"jobs_enabled\": true, \"wiki_enabled\": true, \"snippets_enabled\": false, \"can_create_merge_request_in\": true, \"resolve_outdated_diff_discussions\": false, \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead \"container_registry_access_level\": \"disabled\", \"security_and_compliance_access_level\": \"disabled\", \"created_at\": \"2013-09-30T13:46:02Z\", \"updated_at\": \"2013-09-30T13:46:02Z\", \"last_activity_at\": \"2013-09-30T13:46:02Z\", \"creator_id\": 3, \"namespace\": { \"id\": 3, \"name\": \"Diaspora\", \"path\": \"diaspora\", \"kind\": \"group\", \"full_path\": \"diaspora\" }, \"import_status\": \"none\", \"archived\": true, \"avatar_url\": \"http://example.com/uploads/project/avatar/3/uploads/avatar.png\", \"license_url\": \"http://example.com/diaspora/diaspora-client/blob/main/LICENSE\", \"license\": { \"key\": \"lgpl-3.0\", \"name\": \"GNU Lesser General Public License v3.0\", \"nickname\": \"GNU LGPLv3\", \"html_url\": \"http://choosealicense.com/licenses/lgpl-3.0/\", \"source_url\": \"http://www.gnu.org/licenses/lgpl-3.0.txt\" }, \"shared_runners_enabled\": true, \"group_runners_enabled\": true, \"forks_count\": 0, \"star_count\": 1, \"public_jobs\": true, \"shared_with_groups\": [], \"only_allow_merge_if_pipeline_succeeds\": false, \"allow_merge_on_skipped_pipeline\": false, \"restrict_user_defined_variables\": false, \"only_allow_merge_if_all_discussions_are_resolved\": false, \"remove_source_branch_after_merge\": false, \"request_access_enabled\": false, \"merge_method\": \"merge\", \"squash_option\": \"default_on\", \"autoclose_referenced_issues\": true, \"enforce_auth_checks_on_uploads\": true, \"suggestion_commit_message\": null, \"merge_commit_template\": null, \"container_registry_image_prefix\": \"registry.example.com/diaspora/diaspora-project-site\", \"_links\": { \"self\": \"http://example.com/api/v4/projects\", \"issues\": \"http://example.com/api/v4/projects/1/issues\", \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\", \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\", \"labels\": \"http://example.com/api/v4/projects/1/labels\", \"events\": \"http://example.com/api/v4/projects/1/events\", \"members\": \"http://example.com/api/v4/projects/1/members\", \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\" } }Unstar a projectUnstar a project.POST /projects/:id/unstarSupported or stringYesThe ID or URL-encoded path of the project.Example --request POST \\ --header \"PRIVATE-TOKEN: <your_access_token>\" \\ --url \"https://gitlab.example.com/api/v4/projects/5/unstar\"Example response:{ \"id\": 3, \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\", \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\", \"default_branch\": \"main\", \"visibility\": \"internal\", \"ssh_url_to_repo\": \"git@example.com:diaspora/diaspora-project-site.git\", \"http_url_to_repo\": \"http://example.com/diaspora/diaspora-project-site.git\", \"web_url\": \"http://example.com/diaspora/diaspora-project-site\", \"readme_url\": \"http://example.com/diaspora/diaspora-project-site/blob/main/README.md\", \"tag_list\": [ //deprecated, use `topics` instead \"example\", \"disapora project\" ], \"topics\": [ \"example\", \"disapora project\" ], \"name\": \"Diaspora Project Site\", \"name_with_namespace\": \"Diaspora / Diaspora Project Site\", \"path\": \"diaspora-project-site\", \"path_with_namespace\": \"diaspora/diaspora-project-site\", \"repository_object_format\": \"sha1\", \"issues_enabled\": true, \"open_issues_count\": 1, \"merge_requests_enabled\": true, \"jobs_enabled\": true, \"wiki_enabled\": true, \"snippets_enabled\": false, \"can_create_merge_request_in\": true, \"resolve_outdated_diff_discussions\": false, \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead \"container_registry_access_level\": \"disabled\", \"security_and_compliance_access_level\": \"disabled\", \"created_at\": \"2013-09-30T13:46:02Z\", \"updated_at\": \"2013-09-30T13:46:02Z\", \"last_activity_at\": \"2013-09-30T13:46:02Z\", \"creator_id\": 3, \"namespace\": { \"id\": 3, \"name\": \"Diaspora\", \"path\": \"diaspora\", \"kind\": \"group\", \"full_path\": \"diaspora\" }, \"import_status\": \"none\", \"archived\": true, \"avatar_url\": \"http://example.com/uploads/project/avatar/3/uploads/avatar.png\", \"license_url\": \"http://example.com/diaspora/diaspora-client/blob/main/LICENSE\", \"license\": { \"key\": \"lgpl-3.0\", \"name\": \"GNU Lesser General Public License v3.0\", \"nickname\": \"GNU LGPLv3\", \"html_url\": \"http://choosealicense.com/licenses/lgpl-3.0/\", \"source_url\": \"http://www.gnu.org/licenses/lgpl-3.0.txt\" }, \"shared_runners_enabled\": true, \"group_runners_enabled\": true, \"forks_count\": 0, \"star_count\": 0, \"public_jobs\": true, \"shared_with_groups\": [], \"only_allow_merge_if_pipeline_succeeds\": false, \"allow_merge_on_skipped_pipeline\": false, \"restrict_user_defined_variables\": false, \"only_allow_merge_if_all_discussions_are_resolved\": false, \"remove_source_branch_after_merge\": false, \"request_access_enabled\": false, \"merge_method\": \"merge\", \"squash_option\": \"default_on\", \"autoclose_referenced_issues\": true, \"enforce_auth_checks_on_uploads\": true, \"suggestion_commit_message\": null, \"merge_commit_template\": null, \"container_registry_image_prefix\": \"registry.example.com/diaspora/diaspora-project-site\", \"_links\": { \"self\": \"http://example.com/api/v4/projects\", \"issues\": \"http://example.com/api/v4/projects/1/issues\", \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\", \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\", \"labels\": \"http://example.com/api/v4/projects/1/labels\", \"events\": \"http://example.com/api/v4/projects/1/events\", \"members\": \"http://example.com/api/v4/projects/1/members\", \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\" } }Returns status code 304 if the project is not starred.List projects starred by a userList users who starred a projectStar a projectUnstar a project\n\nExample:\n```plaintext\nGET /users/:user_id/starred_projects\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/users/5/starred_projects\"\n```\n\nExample:\n```json\n[\n {\n \"id\": 4,\n \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\",\n \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\",\n \"default_branch\": \"main\",\n \"visibility\": \"private\",\n \"ssh_url_to_repo\": \"git@example.com:diaspora/diaspora-client.git\",\n \"http_url_to_repo\": \"http://example.com/diaspora/diaspora-client.git\",\n \"web_url\": \"http://example.com/diaspora/diaspora-client\",\n \"readme_url\": \"http://example.com/diaspora/diaspora-client/blob/main/README.md\",\n \"tag_list\": [ //deprecated, use `topics` instead\n \"example\",\n \"disapora client\"\n ],\n \"topics\": [\n \"example\",\n \"disapora client\"\n ],\n \"owner\": {\n \"id\": 3,\n \"name\": \"Diaspora\",\n \"created_at\": \"2013-09-30T13:46:02Z\"\n },\n \"name\": \"Diaspora Client\",\n \"name_with_namespace\": \"Diaspora / Diaspora Client\",\n \"path\": \"diaspora-client\",\n \"path_with_namespace\": \"diaspora/diaspora-client\",\n \"issues_enabled\": true,\n \"open_issues_count\": 1,\n \"merge_requests_enabled\": true,\n \"jobs_enabled\": true,\n \"wiki_enabled\": true,\n \"snippets_enabled\": false,\n \"can_create_merge_request_in\": true,\n \"resolve_outdated_diff_discussions\": false,\n \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead\n \"container_registry_access_level\": \"disabled\",\n \"security_and_compliance_access_level\": \"disabled\",\n \"created_at\": \"2013-09-30T13:46:02Z\",\n \"updated_at\": \"2013-09-30T13:46:02Z\",\n \"last_activity_at\": \"2013-09-30T13:46:02Z\",\n \"creator_id\": 3,\n \"namespace\": {\n \"id\": 3,\n \"name\": \"Diaspora\",\n \"path\": \"diaspora\",\n \"kind\": \"group\",\n \"full_path\": \"diaspora\"\n },\n \"import_status\": \"none\",\n \"archived\": false,\n \"avatar_url\": \"http://example.com/uploads/project/avatar/4/uploads/avatar.png\",\n \"shared_runners_enabled\": true,\n \"group_runners_enabled\": true,\n \"forks_count\": 0,\n \"star_count\": 0,\n \"runners_token\": \"<token>\",\n \"public_jobs\": true,\n \"shared_with_groups\": [],\n \"only_allow_merge_if_pipeline_succeeds\": false,\n \"allow_merge_on_skipped_pipeline\": false,\n \"restrict_user_defined_variables\": false,\n \"only_allow_merge_if_all_discussions_are_resolved\": false,\n \"remove_source_branch_after_merge\": false,\n \"request_access_enabled\": false,\n \"merge_method\": \"merge\",\n \"squash_option\": \"default_on\",\n \"autoclose_referenced_issues\": true,\n \"enforce_auth_checks_on_uploads\": true,\n \"suggestion_commit_message\": null,\n \"merge_commit_template\": null,\n \"squash_commit_template\": null,\n \"issue_branch_template\": \"gitlab/%{id}-%{title}\",\n \"statistics\": {\n \"commit_count\": 37,\n \"storage_size\": 1038090,\n \"repository_size\": 1038090,\n \"lfs_objects_size\": 0,\n \"job_artifacts_size\": 0,\n \"pipeline_artifacts_size\": 0,\n \"packages_size\": 0,\n \"snippets_size\": 0,\n \"uploads_size\": 0,\n \"container_registry_size\": 0\n },\n \"container_registry_image_prefix\": \"registry.example.com/diaspora/diaspora-client\",\n \"_links\": {\n \"self\": \"http://example.com/api/v4/projects\",\n \"issues\": \"http://example.com/api/v4/projects/1/issues\",\n \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\",\n \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\",\n \"labels\": \"http://example.com/api/v4/projects/1/labels\",\n \"events\": \"http://example.com/api/v4/projects/1/events\",\n \"members\": \"http://example.com/api/v4/projects/1/members\",\n \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\"\n }\n },\n {\n \"id\": 6,\n \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\",\n \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\",\n \"default_branch\": \"main\",\n \"visibility\": \"private\",\n \"ssh_url_to_repo\": \"git@example.com:brightbox/puppet.git\",\n \"http_url_to_repo\": \"http://example.com/brightbox/puppet.git\",\n \"web_url\": \"http://example.com/brightbox/puppet\",\n \"readme_url\": \"http://example.com/brightbox/puppet/blob/main/README.md\",\n \"tag_list\": [ //deprecated, use `topics` instead\n \"example\",\n \"puppet\"\n ],\n \"topics\": [\n \"example\",\n \"puppet\"\n ],\n \"owner\": {\n \"id\": 4,\n \"name\": \"Brightbox\",\n \"created_at\": \"2013-09-30T13:46:02Z\"\n },\n \"name\": \"Puppet\",\n \"name_with_namespace\": \"Brightbox / Puppet\",\n \"path\": \"puppet\",\n \"path_with_namespace\": \"brightbox/puppet\",\n \"issues_enabled\": true,\n \"open_issues_count\": 1,\n \"merge_requests_enabled\": true,\n \"jobs_enabled\": true,\n \"wiki_enabled\": true,\n \"snippets_enabled\": false,\n \"can_create_merge_request_in\": true,\n \"resolve_outdated_diff_discussions\": false,\n \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead\n \"container_registry_access_level\": \"disabled\",\n \"security_and_compliance_access_level\": \"disabled\",\n \"created_at\": \"2013-09-30T13:46:02Z\",\n \"updated_at\": \"2013-09-30T13:46:02Z\",\n \"last_activity_at\": \"2013-09-30T13:46:02Z\",\n \"creator_id\": 3,\n \"namespace\": {\n \"id\": 4,\n \"name\": \"Brightbox\",\n \"path\": \"brightbox\",\n \"kind\": \"group\",\n \"full_path\": \"brightbox\"\n },\n \"import_status\": \"none\",\n \"import_error\": null,\n \"permissions\": {\n \"project_access\": {\n \"access_level\": 10,\n \"notification_level\": 3\n },\n \"group_access\": {\n \"access_level\": 50,\n \"notification_level\": 3\n }\n },\n \"archived\": false,\n \"avatar_url\": null,\n \"shared_runners_enabled\": true,\n \"group_runners_enabled\": true,\n \"forks_count\": 0,\n \"star_count\": 0,\n \"runners_token\": \"<token>\",\n \"public_jobs\": true,\n \"shared_with_groups\": [],\n \"only_allow_merge_if_pipeline_succeeds\": false,\n \"allow_merge_on_skipped_pipeline\": false,\n \"restrict_user_defined_variables\": false,\n \"only_allow_merge_if_all_discussions_are_resolved\": false,\n \"remove_source_branch_after_merge\": false,\n \"request_access_enabled\": false,\n \"merge_method\": \"merge\",\n \"squash_option\": \"default_on\",\n \"auto_devops_enabled\": true,\n \"auto_devops_deploy_strategy\": \"continuous\",\n \"repository_storage\": \"default\",\n \"approvals_before_merge\": 0, // Deprecated. Use merge request approvals API instead.\n \"mirror\": false,\n \"mirror_user_id\": 45,\n \"mirror_trigger_builds\": false,\n \"only_mirror_protected_branches\": false,\n \"mirror_overwrites_diverged_branches\": false,\n \"external_authorization_classification_label\": null,\n \"packages_enabled\": true,\n \"service_desk_enabled\": false,\n \"service_desk_address\": null,\n \"autoclose_referenced_issues\": true,\n \"enforce_auth_checks_on_uploads\": true,\n \"suggestion_commit_message\": null,\n \"merge_commit_template\": null,\n \"squash_commit_template\": null,\n \"issue_branch_template\": \"gitlab/%{id}-%{title}\",\n \"statistics\": {\n \"commit_count\": 12,\n \"storage_size\": 2066080,\n \"repository_size\": 2066080,\n \"lfs_objects_size\": 0,\n \"job_artifacts_size\": 0,\n \"pipeline_artifacts_size\": 0,\n \"packages_size\": 0,\n \"snippets_size\": 0,\n \"uploads_size\": 0,\n \"container_registry_size\": 0\n },\n \"container_registry_image_prefix\": \"registry.example.com/brightbox/puppet\",\n \"_links\": {\n \"self\": \"http://example.com/api/v4/projects\",\n \"issues\": \"http://example.com/api/v4/projects/1/issues\",\n \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\",\n \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\",\n \"labels\": \"http://example.com/api/v4/projects/1/labels\",\n \"events\": \"http://example.com/api/v4/projects/1/events\",\n \"members\": \"http://example.com/api/v4/projects/1/members\",\n \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\"\n }\n }\n]\n```\n\nExample:\n```plaintext\nGET /projects/:id/starrers\n```\n\nExample:\n```shell\ncurl --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/starrers\"\n```\n\nExample:\n```json\n[\n {\n \"starred_since\": \"2019-01-28T14:47:30.642Z\",\n \"user\": {\n \"id\": 1,\n \"username\": \"jane_smith\",\n \"name\": \"Jane Smith\",\n \"state\": \"active\",\n \"avatar_url\": \"http://localhost:3000/uploads/user/avatar/1/cd8.jpeg\",\n \"web_url\": \"http://localhost:3000/jane_smith\"\n }\n },\n {\n \"starred_since\": \"2018-01-02T11:40:26.570Z\",\n \"user\": {\n \"id\": 2,\n \"username\": \"janine_smith\",\n \"name\": \"Janine Smith\",\n \"state\": \"blocked\",\n \"avatar_url\": \"http://gravatar.com/../e32131cd8.jpeg\",\n \"web_url\": \"http://localhost:3000/janine_smith\"\n }\n }\n]\n```\n\nExample:\n```plaintext\nPOST /projects/:id/star\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/star\"\n```\n\nExample:\n```json\n{\n \"id\": 3,\n \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\",\n \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\",\n \"default_branch\": \"main\",\n \"visibility\": \"internal\",\n \"ssh_url_to_repo\": \"git@example.com:diaspora/diaspora-project-site.git\",\n \"http_url_to_repo\": \"http://example.com/diaspora/diaspora-project-site.git\",\n \"web_url\": \"http://example.com/diaspora/diaspora-project-site\",\n \"readme_url\": \"http://example.com/diaspora/diaspora-project-site/blob/main/README.md\",\n \"tag_list\": [ //deprecated, use `topics` instead\n \"example\",\n \"disapora project\"\n ],\n \"topics\": [\n \"example\",\n \"disapora project\"\n ],\n \"name\": \"Diaspora Project Site\",\n \"name_with_namespace\": \"Diaspora / Diaspora Project Site\",\n \"path\": \"diaspora-project-site\",\n \"path_with_namespace\": \"diaspora/diaspora-project-site\",\n \"repository_object_format\": \"sha1\",\n \"issues_enabled\": true,\n \"open_issues_count\": 1,\n \"merge_requests_enabled\": true,\n \"jobs_enabled\": true,\n \"wiki_enabled\": true,\n \"snippets_enabled\": false,\n \"can_create_merge_request_in\": true,\n \"resolve_outdated_diff_discussions\": false,\n \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead\n \"container_registry_access_level\": \"disabled\",\n \"security_and_compliance_access_level\": \"disabled\",\n \"created_at\": \"2013-09-30T13:46:02Z\",\n \"updated_at\": \"2013-09-30T13:46:02Z\",\n \"last_activity_at\": \"2013-09-30T13:46:02Z\",\n \"creator_id\": 3,\n \"namespace\": {\n \"id\": 3,\n \"name\": \"Diaspora\",\n \"path\": \"diaspora\",\n \"kind\": \"group\",\n \"full_path\": \"diaspora\"\n },\n \"import_status\": \"none\",\n \"archived\": true,\n \"avatar_url\": \"http://example.com/uploads/project/avatar/3/uploads/avatar.png\",\n \"license_url\": \"http://example.com/diaspora/diaspora-client/blob/main/LICENSE\",\n \"license\": {\n \"key\": \"lgpl-3.0\",\n \"name\": \"GNU Lesser General Public License v3.0\",\n \"nickname\": \"GNU LGPLv3\",\n \"html_url\": \"http://choosealicense.com/licenses/lgpl-3.0/\",\n \"source_url\": \"http://www.gnu.org/licenses/lgpl-3.0.txt\"\n },\n \"shared_runners_enabled\": true,\n \"group_runners_enabled\": true,\n \"forks_count\": 0,\n \"star_count\": 1,\n \"public_jobs\": true,\n \"shared_with_groups\": [],\n \"only_allow_merge_if_pipeline_succeeds\": false,\n \"allow_merge_on_skipped_pipeline\": false,\n \"restrict_user_defined_variables\": false,\n \"only_allow_merge_if_all_discussions_are_resolved\": false,\n \"remove_source_branch_after_merge\": false,\n \"request_access_enabled\": false,\n \"merge_method\": \"merge\",\n \"squash_option\": \"default_on\",\n \"autoclose_referenced_issues\": true,\n \"enforce_auth_checks_on_uploads\": true,\n \"suggestion_commit_message\": null,\n \"merge_commit_template\": null,\n \"container_registry_image_prefix\": \"registry.example.com/diaspora/diaspora-project-site\",\n \"_links\": {\n \"self\": \"http://example.com/api/v4/projects\",\n \"issues\": \"http://example.com/api/v4/projects/1/issues\",\n \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\",\n \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\",\n \"labels\": \"http://example.com/api/v4/projects/1/labels\",\n \"events\": \"http://example.com/api/v4/projects/1/events\",\n \"members\": \"http://example.com/api/v4/projects/1/members\",\n \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\"\n }\n}\n```\n\nExample:\n```plaintext\nPOST /projects/:id/unstar\n```\n\nExample:\n```shell\ncurl --request POST \\\n --header \"PRIVATE-TOKEN: <your_access_token>\" \\\n --url \"https://gitlab.example.com/api/v4/projects/5/unstar\"\n```\n\nExample:\n```json\n{\n \"id\": 3,\n \"description\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit.\",\n \"description_html\": \"<p data-sourcepos=\\\"1:1-1:56\\\" dir=\\\"auto\\\">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</p>\",\n \"default_branch\": \"main\",\n \"visibility\": \"internal\",\n \"ssh_url_to_repo\": \"git@example.com:diaspora/diaspora-project-site.git\",\n \"http_url_to_repo\": \"http://example.com/diaspora/diaspora-project-site.git\",\n \"web_url\": \"http://example.com/diaspora/diaspora-project-site\",\n \"readme_url\": \"http://example.com/diaspora/diaspora-project-site/blob/main/README.md\",\n \"tag_list\": [ //deprecated, use `topics` instead\n \"example\",\n \"disapora project\"\n ],\n \"topics\": [\n \"example\",\n \"disapora project\"\n ],\n \"name\": \"Diaspora Project Site\",\n \"name_with_namespace\": \"Diaspora / Diaspora Project Site\",\n \"path\": \"diaspora-project-site\",\n \"path_with_namespace\": \"diaspora/diaspora-project-site\",\n \"repository_object_format\": \"sha1\",\n \"issues_enabled\": true,\n \"open_issues_count\": 1,\n \"merge_requests_enabled\": true,\n \"jobs_enabled\": true,\n \"wiki_enabled\": true,\n \"snippets_enabled\": false,\n \"can_create_merge_request_in\": true,\n \"resolve_outdated_diff_discussions\": false,\n \"container_registry_enabled\": false, // deprecated, use container_registry_access_level instead\n \"container_registry_access_level\": \"disabled\",\n \"security_and_compliance_access_level\": \"disabled\",\n \"created_at\": \"2013-09-30T13:46:02Z\",\n \"updated_at\": \"2013-09-30T13:46:02Z\",\n \"last_activity_at\": \"2013-09-30T13:46:02Z\",\n \"creator_id\": 3,\n \"namespace\": {\n \"id\": 3,\n \"name\": \"Diaspora\",\n \"path\": \"diaspora\",\n \"kind\": \"group\",\n \"full_path\": \"diaspora\"\n },\n \"import_status\": \"none\",\n \"archived\": true,\n \"avatar_url\": \"http://example.com/uploads/project/avatar/3/uploads/avatar.png\",\n \"license_url\": \"http://example.com/diaspora/diaspora-client/blob/main/LICENSE\",\n \"license\": {\n \"key\": \"lgpl-3.0\",\n \"name\": \"GNU Lesser General Public License v3.0\",\n \"nickname\": \"GNU LGPLv3\",\n \"html_url\": \"http://choosealicense.com/licenses/lgpl-3.0/\",\n \"source_url\": \"http://www.gnu.org/licenses/lgpl-3.0.txt\"\n },\n \"shared_runners_enabled\": true,\n \"group_runners_enabled\": true,\n \"forks_count\": 0,\n \"star_count\": 0,\n \"public_jobs\": true,\n \"shared_with_groups\": [],\n \"only_allow_merge_if_pipeline_succeeds\": false,\n \"allow_merge_on_skipped_pipeline\": false,\n \"restrict_user_defined_variables\": false,\n \"only_allow_merge_if_all_discussions_are_resolved\": false,\n \"remove_source_branch_after_merge\": false,\n \"request_access_enabled\": false,\n \"merge_method\": \"merge\",\n \"squash_option\": \"default_on\",\n \"autoclose_referenced_issues\": true,\n \"enforce_auth_checks_on_uploads\": true,\n \"suggestion_commit_message\": null,\n \"merge_commit_template\": null,\n \"container_registry_image_prefix\": \"registry.example.com/diaspora/diaspora-project-site\",\n \"_links\": {\n \"self\": \"http://example.com/api/v4/projects\",\n \"issues\": \"http://example.com/api/v4/projects/1/issues\",\n \"merge_requests\": \"http://example.com/api/v4/projects/1/merge_requests\",\n \"repo_branches\": \"http://example.com/api/v4/projects/1/repository_branches\",\n \"labels\": \"http://example.com/api/v4/projects/1/labels\",\n \"events\": \"http://example.com/api/v4/projects/1/events\",\n \"members\": \"http://example.com/api/v4/projects/1/members\",\n \"cluster_agents\": \"http://example.com/api/v4/projects/1/cluster_agents\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.450Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":12,"totalLines":481,"estimatedTokens":7348}}439{"id":"doc-planetscale_cli_commands_shell_planetscale-f6db50bf","source":"documentation","title":"PlanetScale CLI commands: shell - PlanetScale","url":"https://planetscale.com/docs/cli/shell","text":"Documentation IndexFetch the complete documentation index at: /docs/llms.txtUse this file to discover all available pages before exploring further.\n\nExample:\n```text\npscale shell <DATABASE_NAME> <BRANCH_NAME> <FLAG>\n```\n\nExample:\n```text\npscale shell mydatabase\n```\n\nExample:\n```text\npscale shell mydatabase mybranch\n```\n\nExample:\n```text\nDATABASE_NAME/BRANCH_NAME >\nDATABASE_NAME/BRANCH_NAME > show tables;\n+---------------+\n| Tables_in_db |\n+---------------+\n| users |\n+---------------+\nDATABASE_NAME/BRANCH_NAME > exit;\n```\n\nExample:\n```text\npsql-17 (17.5 (Homebrew))\nSSL connection (protocol: TLSv1.3, cipher: TLS_AES_128_GCM_SHA256, compression: off, ALPN: postgresql)\nType \"help\" for help.\n\npg/|⚠ main ⚠|> \\dt\n List of relations\n Schema | Name | Type | Owner\n--------+-------------+-------+-------------------------\n public | users | table | pscale_api_2e2o0t28kd0v\n(1 row)\n\npg/|⚠ main ⚠|> \\q\n```\n\nExample:\n```text\npscale shell mydatabase mybranch --replica\n```\n\nExample:\n```text\npscale shell mydatabase mybranch --role reader\n```\n\nExample:\n```text\nDATABASE_NAME/BRANCH_NAME > source <YOUR_DUMP_FILE>.sql;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:07.502Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":61,"estimatedTokens":293}}440{"id":"doc-data_ingress_and_egress_from_azure_confidential_-781e8be0","source":"documentation","title":"Data Ingress and Egress from Azure confidential ledger by Using a Power Automate Connector | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/confidential-ledger/create-power-automate-workflow","text":"Example:\n```bash\naz ad user show --id user@example.com --query id --output tsv\n```\n\nExample:\n```text\n{\"content\": \"entry_data_here\"}\n```\n\nExample:\n```text\n{\"content\": \"{\\\"event\\\": \\\"user_login\\\", \\\"oid\\\": \\\"12345\\\", \\\"timestamp\\\": \\\"@{utcNow()}\\\"}\"}\n```\n\nExample:\n```text\n{\"content\": \"User login event for user @{variables('oid')} at @{utcNow()}\"}\n```\n\nExample:\n```text\n{\"content\": \"@{base64(variables('binaryData'))}\"}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.597Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":26,"estimatedTokens":109}}441{"id":"doc-troubleshoot_low_memory_issues_azure_database_fo-a89f0f37","source":"documentation","title":"Troubleshoot Low Memory Issues - Azure Database for MySQL | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/mysql/flexible-server/how-to-troubleshoot-low-memory-issues","text":"Example:\n```sql\nInnoDB Buffer pool hit ratio = Innodb_buffer_pool_read_requests / (Innodb_buffer_pool_read_requests + Innodb_buffer_pool_reads) * 100\n```\n\nExample:\n```output\nshow global status like \"innodb_buffer_pool_reads\";\n+--------------------------+-------+\n| Variable_name | Value |\n| +--------------------------+-------+ |\n| Innodb_buffer_pool_reads | 197 |\n| +--------------------------+-------+ |\n| 1 row in set (0.00 sec) |\n```\n\nExample:\n```output\nshow global status like \"innodb_buffer_pool_read_requests\";\n+----------------------------------+----------+\n| Variable_name | Value |\n| +----------------------------------+----------+ |\n| Innodb_buffer_pool_read_requests | 22479167 |\n| +----------------------------------+----------+ |\n| 1 row in set (0.00 sec) |\n```\n\nExample:\n```sql\nInnoDB Buffer pool hit ratio = 22479167/(22479167+197) * 100\nBuffer hit ratio = 99.99%\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.599Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":34,"estimatedTokens":225}}442{"id":"doc-create_an_environment_with_azure_developer_cli_a-e0fdc2a8","source":"documentation","title":"Create an environment with Azure Developer CLI - Azure Deployment Environments | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/deployment-environments/how-to-configure-azure-developer-cli-deployment-environments","text":"Example:\n```bash\npowershell -ex AllSigned -c \"Invoke-RestMethod 'https://aka.ms/install-azd.ps1' | Invoke-Expression\"\n```\n\nExample:\n```bash\nazd auth login\n```\n\nExample:\n```bash\nazd config set platform.type devcenter\n```\n\nExample:\n```bash\nazd template list\n```\n\nExample:\n```bash\nazd init\n```\n\nExample:\n```yaml\nplatform:\n type: devcenter\n config:\n catalog: MS-cat\n name: Contoso-DevCenter\n project: Contoso-Dev-project\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.615Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":36,"estimatedTokens":116}}443{"id":"doc-customer_managed_keys_for_azure_fluid_relay_encr-46c2ab8e","source":"documentation","title":"Customer-managed keys for Azure Fluid Relay encryption - Azure Fluid Relay | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-fluid-relay/concepts/customer-managed-keys","text":"Example:\n```text\nPUT https://management.azure.com/subscriptions/<subscription ID>/resourceGroups/<resource group name> /providers/Microsoft.FluidRelay/fluidRelayServers/< Fluid Relay resource name>?api-version=2022-06-01 @\"<path to request payload>\"\n```\n\nExample:\n```text\n{\n \"location\": \"<the region you selected for Fluid Relay resource>\",\n \"identity\": {\n \"type\": \"UserAssigned\",\n \"userAssignedIdentities\": {\n “<User assigned identity resource ID>\": {}\n }\n },\n \"properties\": {\n \"encryption\": {\n \"customerManagedKeyEncryption\": {\n \"keyEncryptionKeyIdentity\": {\n \"identityType\": \"UserAssigned\",\n \"userAssignedIdentityResourceId\": \"<User assigned identity resource ID>\"\n },\n \"keyEncryptionKeyUrl\": \"<key identifier>\"\n }\n }\n }\n}\n```\n\nExample:\n```azurepowershell\nInstall-Module Az.FluidRelay\n```\n\nExample:\n```azurepowershell\nNew-AzFluidRelayServer -Name <Fluid Relay Service name> -ResourceGroup <resource group name> -SubscriptionId \"<subscription id>\" -Location \"<region>\" -KeyEncryptionKeyIdentityType UserAssigned -KeyEncryptionKeyIdentityUserAssignedIdentityResourceId \"<user assigned resource id>\" -CustomerManagedKeyEncryptionKeyUrl \"<key URL>\" -UserAssignedIdentity \"<user assigned resource id>\"\n```\n\nExample:\n```azurecli\naz fluid-relay server create --server-name <Fluid Relay Service name> --resource-group <resource group name> --identity '{\"type\":\"UserAssigned\",\"user-assigned-identities\":{\"<user assigned resource id>\":{}}}' --key-identity '{\"identity-type\":\"UserAssigned\",\"user-assigned-identities\":\"<user assigned resource id>\"}' --key-url \"<key URL>\" --location <location> --sku <standard or basic>\n```\n\nExample:\n```text\nPATCH https://management.azure.com/subscriptions/<subscription id>/resourceGroups/<resource group name>/providers/Microsoft.FluidRelay/fluidRelayServers/<fluid relay server name>?api-version=2022-06-01 @\"path to request payload\"\n```\n\nExample:\n```text\n{\n \"properties\": {\n \"encryption\": {\n \"customerManagedKeyEncryption\": {\n \"keyEncryptionKeyUrl\": \"https://test_key_vault.vault.azure.net/keys/testKey /xxxxxxxxxxxxxxxx\"\n }\n }\n }\n}\n```\n\nExample:\n```azurepowershell\nUpdate-AzFluidRelayServer -Name <Fluid Relay Service name> -ResourceGroup <resource group name> -SubscriptionId \"<subscription id>\" -CustomerManagedKeyEncryptionKeyUrl \"<new key URL>\"\n```\n\nExample:\n```azurepowershell\nUpdate-AzFluidRelayServer -Name <Fluid Relay Service name> -ResourceGroup <resource group name> -SubscriptionId \"<subscription id>\" -KeyEncryptionKeyIdentityUserAssignedIdentityResourceId \"<new user assigned resource id>\"\n```\n\nExample:\n```azurecli\naz fluid-relay server update --server-name <Fluid Relay Service name> --resource-group <resource group> --key-url <new key URL>\n```\n\nExample:\n```azurecli\naz fluid-relay server update --server-name <Fluid Relay Service name> --resource-group <resource group> --key-identity '{\"user-assigned-identities\":\"<new user assigned resource id>\"}'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.746Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":83,"estimatedTokens":785}}444{"id":"doc-intelligent_cross_cluster_kubernetes_resource_pl-d3fffc4c","source":"documentation","title":"Intelligent Cross-Cluster Kubernetes Resource Placement Using Azure Kubernetes Fleet Manager | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/kubernetes-fleet/intelligent-resource-placement","text":"Example:\n```bash\nexport GROUP=<resource-group>\nexport FLEET=<fleet-name>\nexport MEMBERCLUSTER01=<cluster01>\nexport MEMBERCLUSTER02=<cluster02>\n```\n\nExample:\n```azurecli\naz aks install-cli\n```\n\nExample:\n```azurecli\naz extension add --name fleet\n```\n\nExample:\n```azurecli\naz extension update --name fleet\n```\n\nExample:\n```azurecli\naz fleet get-credentials --resource-group $GROUP --name $FLEET\n```\n\nExample:\n```azurecli\nkubectl get membercluster $MEMBERCLUSTER01 –o yaml\n```\n\nExample:\n```yaml\napiVersion: cluster.kubernetes-fleet.io/v1\nkind: MemberCluster\nmetadata:\n annotations:\n ...\n labels:\n fleet.azure.com/location: eastus2\n fleet.azure.com/resource-group: resource-group\n fleet.azure.com/subscription-id: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e\n name: cluster01\n resourceVersion: \"123456\"\n uid: 7xxxxxxx-5xxx-4xxx-bxxx-xxxxxxxxxxx4\nspec:\n ...\nstatus:\n ...\n properties:\n kubernetes-fleet.io/node-count:\n observationTime: \"2024-09-19T01:33:54Z\"\n value: \"2\"\n kubernetes.azure.com/per-cpu-core-cost:\n observationTime: \"2024-09-19T01:33:54Z\"\n value: \"0.073\"\n kubernetes.azure.com/per-gb-memory-cost:\n observationTime: \"2024-09-19T01:33:54Z\"\n value: \"0.022\"\n resourceUsage:\n allocatable:\n cpu: 3800m\n memory: 10320392Ki\n available:\n cpu: 2740m\n memory: 8821256Ki\n capacity:\n cpu: \"4\"\n memory: 14195208Ki\n```\n\nExample:\n```azurecli\nkubectl create namespace test-app\n```\n\nExample:\n```yaml\napiVersion: v1\nkind: Service\nmetadata:\n name: nginx-service\n namespace: test-app\nspec:\n selector:\n app: nginx\n ports:\n - protocol: TCP\n port: 80\n targetPort: 80\n type: LoadBalancer\n---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n name: nginx-deployment\n namespace: test-app\nspec:\n selector:\n matchLabels:\n app: nginx\n replicas: 2\n template:\n metadata:\n labels:\n app: nginx\n spec:\n containers:\n - name: nginx\n image: nginx:1.16.1 \n ports:\n - containerPort: 80\n```\n\nExample:\n```azurecli\nkubectl apply -f sample-workload.yaml\n```\n\nExample:\n```yaml\napiVersion: placement.kubernetes-fleet.io/v1\nkind: ClusterResourcePlacement\nmetadata:\n name: crp-demo\nspec:\n resourceSelectors:\n - group: \"\"\n kind: Namespace\n name: test-app\n version: v1\n policy:\n placementType: PickN\n numberOfClusters: 10\n affinity:\n clusterAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 20\n preference:\n propertySorter:\n name: kubernetes-fleet.io/node-count\n sortOrder: Descending\n```\n\nExample:\n```yaml\napiVersion: placement.kubernetes-fleet.io/v1beta1\nkind: ResourcePlacement\nmetadata:\n name: rp-demo\n namespace: test-app\nspec:\n resourceSelectors:\n - group: \"apps\"\n kind: Deployment\n name: nginx-deployment\n version: v1\n policy:\n placementType: PickN\n numberOfClusters: 10\n affinity:\n clusterAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 20\n preference:\n propertySorter:\n name: kubernetes-fleet.io/node-count\n sortOrder: Descending\n```\n\nExample:\n```yaml\napiVersion: placement.kubernetes-fleet.io/v1\nkind: ClusterResourcePlacement\nmetadata:\n name: crp-demo\nspec:\n resourceSelectors:\n - group: \"\"\n kind: Namespace\n name: test-app\n version: v1\n policy:\n placementType: PickN\n numberOfClusters: 10\n affinity:\n clusterAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 20\n preference:\n labelSelector:\n matchLabels:\n env: prod\n propertySorter:\n name: resources.kubernetes-fleet.io/total-cpu\n sortOrder: Descending\n```\n\nExample:\n```yaml\napiVersion: placement.kubernetes-fleet.io/v1beta1\nkind: ResourcePlacement\nmetadata:\n name: rp-demo\n namespace: test-app\nspec:\n resourceSelectors:\n - group: \"apps\"\n kind: Deployment\n name: nginx-deployment\n version: v1\n policy:\n placementType: PickN\n numberOfClusters: 10\n affinity:\n clusterAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 20\n preference:\n labelSelector:\n matchLabels:\n env: prod\n propertySorter:\n name: resources.kubernetes-fleet.io/total-cpu\n sortOrder: Descending\n```\n\nExample:\n```yaml\napiVersion: placement.kubernetes-fleet.io/v1\nkind: ClusterResourcePlacement\nmetadata:\n name: crp-demo\nspec:\n resourceSelectors:\n - group: \"\"\n kind: Namespace\n name: test-app\n version: v1\n policy:\n placementType: PickN\n numberOfClusters: 2\n affinity:\n clusterAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 20\n preference:\n propertySorter:\n name: kubernetes.azure.com/per-gb-memory-core-cost\n sortOrder: Ascending\n - weight: 20\n preference:\n propertySorter:\n name: kubernetes.azure.com/per-cpu-core-cost\n sortOrder: Ascending\n```\n\nExample:\n```yaml\napiVersion: placement.kubernetes-fleet.io/v1beta1\nkind: ResourcePlacement\nmetadata:\n name: rp-demo\n namespace: test-app\nspec:\n resourceSelectors:\n - group: \"apps\"\n kind: Deployment\n name: nginx-deployment\n version: v1\n policy:\n placementType: PickN\n numberOfClusters: 2\n affinity:\n clusterAffinity:\n preferredDuringSchedulingIgnoredDuringExecution:\n - weight: 20\n preference:\n propertySorter:\n name: kubernetes.azure.com/per-gb-memory-core-cost\n sortOrder: Ascending\n - weight: 20\n preference:\n propertySorter:\n name: kubernetes.azure.com/per-cpu-core-cost\n sortOrder: Ascending\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.776Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":291,"estimatedTokens":1536}}445{"id":"doc-java_developer_reference_for_azure_functions_mic-6692048d","source":"documentation","title":"Java developer reference for Azure Functions | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference-java","text":"Example:\n```bash\nmvn archetype:generate \\\n -DarchetypeGroupId=com.microsoft.azure \\\n -DarchetypeArtifactId=azure-functions-archetype\n```\n\nExample:\n```cmd\nmvn archetype:generate ^\n -DarchetypeGroupId=com.microsoft.azure ^\n -DarchetypeArtifactId=azure-functions-archetype\n```\n\nExample:\n```text\nFunctionsProject\n | - src\n | | - main\n | | | - java\n | | | | - FunctionApp\n | | | | | - MyFirstFunction.java\n | | | | | - MySecondFunction.java\n | - target\n | | - azure-functions\n | | | - FunctionApp\n | | | | - FunctionApp.jar\n | | | | - host.json\n | | | | - MyFirstFunction\n | | | | | - function.json\n | | | | - MySecondFunction\n | | | | | - function.json\n | | | | - bin\n | | | | - lib\n | - pom.xml\n```\n\nExample:\n```java\npublic class Function {\n public String echo(@HttpTrigger(name = \"req\", \n methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) \n String req, ExecutionContext context) {\n return String.format(req);\n }\n}\n```\n\nExample:\n```json\n{\n \"scriptFile\": \"azure-functions-example.jar\",\n \"entryPoint\": \"com.example.Function.echo\",\n \"bindings\": [\n {\n \"type\": \"httpTrigger\",\n \"name\": \"req\",\n \"direction\": \"in\",\n \"authLevel\": \"anonymous\",\n \"methods\": [ \"GET\",\"POST\" ]\n },\n {\n \"type\": \"http\",\n \"name\": \"$return\",\n \"direction\": \"out\"\n }\n ]\n}\n```\n\nExample:\n```xml\n<properties>\n <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n <java.version>1.8</java.version>\n <azure.functions.maven.plugin.version>1.6.0</azure.functions.maven.plugin.version>\n <azure.functions.java.library.version>1.3.1</azure.functions.java.library.version>\n <functionAppName>fabrikam-functions-20200718015742191</functionAppName>\n <stagingDirectory>${project.build.directory}/azure-functions/${functionAppName}</stagingDirectory>\n</properties>\n```\n\nExample:\n```xml\n<runtime>\n <!-- runtime os, could be windows, linux or docker-->\n <os>windows</os>\n <javaVersion>8</javaVersion>\n <!-- for docker function, please set the following parameters -->\n <!-- <image>[hub-user/]repo-name[:tag]</image> -->\n <!-- <serverId></serverId> -->\n <!-- <registryUrl></registryUrl> -->\n</runtime>\n```\n\nExample:\n```azurecli\naz functionapp config appsettings set \\\n --settings \"languageWorkers__java__arguments=-Djava.awt.headless=true\" \\\n --name <APP_NAME> --resource-group <RESOURCE_GROUP>\n```\n\nExample:\n```azurecli\naz functionapp config appsettings set ^\n --settings \"languageWorkers__java__arguments=-Djava.awt.headless=true\" ^\n --name <APP_NAME> --resource-group <RESOURCE_GROUP>\n```\n\nExample:\n```azurecli\naz functionapp config appsettings set \\\n --settings \"JAVA_OPTS=-Djava.awt.headless=true\" \\\n --name <APP_NAME> --resource-group <RESOURCE_GROUP>\n```\n\nExample:\n```azurecli\naz functionapp config appsettings set ^\n --settings \"JAVA_OPTS=-Djava.awt.headless=true\" ^\n --name <APP_NAME> --resource-group <RESOURCE_GROUP>\n```\n\nExample:\n```java\n@FunctionName(\"BlobTrigger\")\n @StorageAccount(\"AzureWebJobsStorage\")\n public void blobTrigger(\n @BlobTrigger(name = \"content\", path = \"myblob/{fileName}\", dataType = \"binary\") byte[] content,\n @BindingName(\"fileName\") String fileName,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Blob trigger function processed a blob.\\n Name: \" + fileName + \"\\n Size: \" + content.length + \" Bytes\");\n }\n```\n\nExample:\n```java\n@FunctionName(\"processBlob\")\npublic void run(\n @BlobTrigger(\n name = \"content\",\n path = \"images/{name}\",\n connection = \"AzureWebJobsStorage\") BlobClient blob,\n @BindingName(\"name\") String file,\n ExecutionContext ctx)\n{\n ctx.getLogger().info(\"Size = \" + blob.getProperties().getBlobSize());\n}\n```\n\nExample:\n```java\n@FunctionName(\"containerOps\")\npublic void run(\n @BlobTrigger(\n name = \"content\",\n path = \"images/{name}\",\n connection = \"AzureWebJobsStorage\") BlobContainerClient container,\n ExecutionContext ctx)\n{\n container.listBlobs()\n .forEach(b -> ctx.getLogger().info(b.getName()));\n}\n```\n\nExample:\n```java\n@FunctionName(\"checkAgainstInputBlob\")\npublic void run(\n @BlobInput(\n name = \"inputBlob\",\n path = \"inputContainer/input.txt\") BlobClient inputBlob,\n @BlobTrigger(\n name = \"content\",\n path = \"images/{name}\",\n connection = \"AzureWebJobsStorage\",\n dataType = \"string\") String triggerBlob,\n ExecutionContext ctx)\n{\n ctx.getLogger().info(\"Size = \" + inputBlob.getProperties().getBlobSize());\n}\n```\n\nExample:\n```java\npackage com.example;\n\nimport com.microsoft.azure.functions.annotation.*;\n\npublic class Function {\n @FunctionName(\"echo\")\n public static String echo(\n @HttpTrigger(name = \"req\", methods = { HttpMethod.PUT }, authLevel = AuthorizationLevel.ANONYMOUS, route = \"items/{id}\") String inputReq,\n @TableInput(name = \"item\", tableName = \"items\", partitionKey = \"Example\", rowKey = \"{id}\", connection = \"AzureWebJobsStorage\") TestInputData inputData,\n @TableOutput(name = \"myOutputTable\", tableName = \"Person\", connection = \"AzureWebJobsStorage\") OutputBinding<Person> testOutputData\n ) {\n testOutputData.setValue(new Person(httpbody + \"Partition\", httpbody + \"Row\", httpbody + \"Name\"));\n return \"Hello, \" + inputReq + \" and \" + inputData.getKey() + \".\";\n }\n\n public static class TestInputData {\n public String getKey() { return this.rowKey; }\n private String rowKey;\n }\n public static class Person {\n public String partitionKey;\n public String rowKey;\n public String name;\n\n public Person(String p, String r, String n) {\n this.partitionKey = p;\n this.rowKey = r;\n this.name = n;\n }\n }\n}\n```\n\nExample:\n```java\n@FunctionName(\"ProcessIotMessages\")\n public void processIotMessages(\n @EventHubTrigger(name = \"message\", eventHubName = \"%AzureWebJobsEventHubPath%\", connection = \"AzureWebJobsEventHubSender\", cardinality = Cardinality.MANY) List<TestEventData> messages,\n final ExecutionContext context)\n {\n context.getLogger().info(\"Java Event Hub trigger received messages. Batch size: \" + messages.size());\n }\n \n public class TestEventData {\n public String id;\n}\n```\n\nExample:\n```java\npackage com.example;\n\nimport com.microsoft.azure.functions.annotation.*;\n\npublic class Function {\n @FunctionName(\"copy\")\n @StorageAccount(\"AzureWebJobsStorage\")\n @BlobOutput(name = \"$return\", path = \"samples-output-java/{name}\")\n public static String copy(@BlobTrigger(name = \"blob\", path = \"samples-input-java/{name}\") String content) {\n return content;\n }\n}\n```\n\nExample:\n```java\n@FunctionName(\"QueueOutputPOJOList\")\n public HttpResponseMessage QueueOutputPOJOList(@HttpTrigger(name = \"req\", methods = { HttpMethod.GET,\n HttpMethod.POST }, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<String>> request,\n @QueueOutput(name = \"itemsOut\", queueName = \"test-output-java-pojo\", connection = \"AzureWebJobsStorage\") OutputBinding<List<TestData>> itemsOut, \n final ExecutionContext context) {\n context.getLogger().info(\"Java HTTP trigger processed a request.\");\n \n String query = request.getQueryParameters().get(\"queueMessageId\");\n String queueMessageId = request.getBody().orElse(query);\n itemsOut.setValue(new ArrayList<TestData>());\n if (queueMessageId != null) {\n TestData testData1 = new TestData();\n testData1.id = \"msg1\"+queueMessageId;\n TestData testData2 = new TestData();\n testData2.id = \"msg2\"+queueMessageId;\n\n itemsOut.getValue().add(testData1);\n itemsOut.getValue().add(testData2);\n\n return request.createResponseBuilder(HttpStatus.OK).body(\"Hello, \" + queueMessageId).build();\n } else {\n return request.createResponseBuilder(HttpStatus.INTERNAL_SERVER_ERROR)\n .body(\"Did not find expected items in CosmosDB input list\").build();\n }\n }\n\n public static class TestData {\n public String id;\n }\n```\n\nExample:\n```java\npackage com.example;\n\nimport java.util.Optional;\nimport com.microsoft.azure.functions.annotation.*;\n\n\npublic class Function {\n @FunctionName(\"metadata\")\n public static String metadata(\n @HttpTrigger(name = \"req\", methods = { HttpMethod.GET, HttpMethod.POST }, authLevel = AuthorizationLevel.ANONYMOUS) Optional<String> body,\n @BindingName(\"name\") String queryValue\n ) {\n return body.orElse(queryValue);\n }\n}\n```\n\nExample:\n```java\n@FunctionName(\"QueueTriggerMetadata\")\n public void QueueTriggerMetadata(\n @QueueTrigger(name = \"message\", queueName = \"test-input-java-metadata\", connection = \"AzureWebJobsStorage\") String message,@BindingName(\"Id\") String metadataId,\n @QueueOutput(name = \"output\", queueName = \"test-output-java-metadata\", connection = \"AzureWebJobsStorage\") OutputBinding<TestData> output,\n final ExecutionContext context\n ) {\n context.getLogger().info(\"Java Queue trigger function processed a message: \" + message + \" with metadataId:\" + metadataId );\n TestData testData = new TestData();\n testData.id = metadataId;\n output.setValue(testData);\n }\n```\n\nExample:\n```java\nimport com.microsoft.azure.functions.*;\nimport com.microsoft.azure.functions.annotation.*;\n\npublic class Function {\n public String echo(@HttpTrigger(name = \"req\", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) String req, ExecutionContext context) {\n if (req.isEmpty()) {\n context.getLogger().warning(\"Empty request body received by function \" + context.getFunctionName() + \" with invocation \" + context.getInvocationId());\n }\n return String.format(req);\n }\n}\n```\n\nExample:\n```azurecli\naz webapp log config --name functionname --resource-group myResourceGroup --application-logging true\n```\n\nExample:\n```azurecli\naz webapp log tail --name webappname --resource-group myResourceGroup\n```\n\nExample:\n```azurecli\naz webapp log download --resource-group resourcegroupname --name functionappname\n```\n\nExample:\n```java\npublic class Function {\n public String echo(@HttpTrigger(name = \"req\", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) String req, ExecutionContext context) {\n context.getLogger().info(\"My app setting value: \"+ System.getenv(\"myAppSetting\"));\n return String.format(req);\n }\n}\n```\n\nExample:\n```java\npackage com.microsoft.azure.functions.spi.inject; \n\n/** \n\n * The instance factory used by DI framework to initialize function instance. \n\n * \n\n * @since 1.0.0 \n\n */ \n\npublic interface FunctionInstanceInjector { \n\n /** \n\n * This method is used by DI framework to initialize the function instance. This method takes in the customer class and returns \n\n * an instance create by the DI framework, later customer functions will be invoked on this instance. \n\n * @param functionClass the class that contains customer functions \n\n * @param <T> customer functions class type \n\n * @return the instance that will be invoked on by azure functions java worker \n\n * @throws Exception any exception that is thrown by the DI framework during instance creation \n\n */ \n\n <T> T getInstance(Class<T> functionClass) throws Exception; \n\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.833Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":27,"totalLines":395,"estimatedTokens":2909}}446{"id":"doc-update_managed_resources_azure_managed_applicati-c16aad89","source":"documentation","title":"Update managed resources - Azure Managed Applications | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-resource-manager/managed-applications/update-managed-resources","text":"Example:\n```azurecli\naz managedapp list --query \"[?contains(resourceGroup,'<resourceGroupName>')]\"\n```\n\nExample:\n```azurecli\naz managedapp list --query \"[?contains(resourceGroup,'<resourceGroupName>')].{ managedResourceGroup:managedResourceGroupId }\"\n```\n\nExample:\n```azurecli\naz vm list -g <mrgName> --query \"[].{VMName:name,OSType:storageProfile.osDisk.osType,VMSize:hardwareProfile.vmSize}\"\n```\n\nExample:\n```azurecli\naz vm resize --size Standard_D2_v2 --ids $(az vm list -g <mrgName> --query \"[].id\" -o tsv)\n```\n\nExample:\n```azurecli\nmanagedGroup=$(az managedapp show --name <app-name> --resource-group <resourceGroupName> --query managedResourceGroupId --output tsv)\n\naz policy assignment create --name locationAssignment --policy e56962a6-4747-49cd-b67b-bf8b01975c4c --scope $managedGroup --params '{\n \"listofallowedLocations\": {\n \"value\": [\n \"northeurope\",\n \"westeurope\"\n ]\n }\n }'\n```\n\nExample:\n```azurecli\naz policy assignment show --name locationAssignment --scope $managedGroup --query parameters.listofallowedLocations.value\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.927Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":40,"estimatedTokens":316}}447{"id":"doc-develop_for_azure_netapp_files_with_rest_api_mic-d182d4e4","source":"documentation","title":"Develop for Azure NetApp Files with REST API | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/azure-netapp-files/azure-netapp-files-develop-with-rest-api","text":"Example:\n```azurecli\naz ad sp create-for-rbac --name $YOURSPNAMEGOESHERE --role Contributor --scopes /subscriptions/{subscription-id}\n```\n\nExample:\n```output\n{ \n \"appId\": \"appIDgoeshere\", \n \"displayName\": \"APPNAME\", \n \"name\": \"http://APPNAME\", \n \"password\": \"supersecretpassword\", \n \"tenant\": \"tenantIDgoeshere\" \n}\n```\n\nExample:\n```azurecli\ncurl -X POST -d 'grant_type=client_credentials&client_id=[APP_ID]&client_secret=[PASSWORD]&resource=https%3A%2F%2Fmanagement.azure.com%2F' https://login.microsoftonline.com/[TENANT_ID]/oauth2/token\n```\n\nExample:\n```azurecli\ncurl -X GET -H \"Authorization: Bearer [TOKEN]\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/[SUBSCRIPTION_ID]/providers/Microsoft.Web/sites?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#get NetApp accounts \ncurl -X GET -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#get capacity pools for NetApp account \ncurl -X GET -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#get volumes in NetApp account & capacity pool \ncurl -X GET -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#get snapshots for a volume \ncurl -X GET -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/VOLUMEGOESHERE/snapshots?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#create a NetApp account \ncurl -d @<filename> -X PUT -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#create a capacity pool \ncurl -d @<filename> -X PUT -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#create a volume \ncurl -d @<filename> -X PUT -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/MYNEWVOLUME?api-version=2022-05-01\n```\n\nExample:\n```azurecli\n#create a volume snapshot \ncurl -d @<filename> -X PUT -H \"Authorization: Bearer TOKENGOESHERE\" -H \"Content-Type: application/json\" https://management.azure.com/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.NetApp/netAppAccounts/NETAPPACCOUNTGOESHERE/capacityPools/CAPACITYPOOLGOESHERE/volumes/MYNEWVOLUME/Snapshots/SNAPNAME?api-version=2022-05-01\n```\n\nExample:\n```json\n{ \n \"name\": \"MYNETAPPACCOUNT\", \n \"type\": \"Microsoft.NetApp/netAppAccounts\", \n \"location\": \"westus2\", \n \"properties\": { \n \"name\": \"MYNETAPPACCOUNT\" \n }\n}\n```\n\nExample:\n```json\n{\n \"name\": \"MYNETAPPACCOUNT/POOLNAME\",\n \"type\": \"Microsoft.NetApp/netAppAccounts/capacityPools\",\n \"location\": \"westus2\",\n \"properties\": {\n \"name\": \"POOLNAME\",\n \"size\": \"4398046511104\",\n \"serviceLevel\": \"Premium\"\n }\n}\n```\n\nExample:\n```json\n{\n \"name\": \"MYNEWVOLUME\",\n \"type\": \"Microsoft.NetApp/netAppAccounts/capacityPools/volumes\",\n \"location\": \"westus2\",\n \"properties\": {\n \"serviceLevel\": \"Premium\",\n \"usageThreshold\": \"322122547200\",\n \"creationToken\": \"MY-FILEPATH\",\n \"snapshotId\": \"\",\n \"subnetId\": \"/subscriptions/SUBIDGOESHERE/resourceGroups/RESOURCEGROUPGOESHERE/providers/Microsoft.Network/virtualNetworks/VNETGOESHERE/subnets/MYDELEGATEDSUBNET.sn\"\n }\n}\n```\n\nExample:\n```json\n{\n \"name\": \"apitest2/apiPool01/apiVol01/snap02\",\n \"type\": \"Microsoft.NetApp/netAppAccounts/capacityPools/Volumes/Snapshots\",\n \"location\": \"westus2\",\n \"properties\": {\n \"name\": \"snap02\",\n \"fileSystemId\": \"0168704a-bbec-da81-2c29-503825fe7420\"\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.949Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":130,"estimatedTokens":1249}}448{"id":"doc-monitor_delegated_resources_at_scale_azure_light-f84aee60","source":"documentation","title":"Monitor delegated resources at scale - Azure Lighthouse | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/lighthouse/how-to/monitor-at-scale","text":"Example:\n```powershell\n$ManagingTenantId = \"your-managing-Azure-AD-tenant-id\"\n\n# Authenticate as a user with admin rights on the managing tenant\nConnect-AzAccount -Tenant $ManagingTenantId\n\n# Register the Microsoft.Insights resource providers Application Ids\nNew-AzADServicePrincipal -ApplicationId 1215fb39-1d15-4c05-b2e3-d519ac3feab4 -Role Contributor\nNew-AzADServicePrincipal -ApplicationId 6da94f3c-0d67-4092-a408-bb5d1cb08d2d -Role Contributor\nNew-AzADServicePrincipal -ApplicationId ca7f3f0b-7d91-482c-8e09-c5d840d0eac5 -Role Contributor\n```\n\nExample:\n```kusto\nunion AzureDiagnostics,\nworkspace(\"WS-customer-tenant-1\").AzureDiagnostics,\nworkspace(\"WS-customer-tenant-2\").AzureDiagnostics\n| project Category, ResourceGroup, TenantId\n```\n\nExample:\n```kusto\nalertsmanagementresources\n| where type == \"microsoft.alertsmanagement/alerts\"\n| where properties.essentials.severity =~ \"Sev0\" or properties.essentials.severity =~ \"Sev1\"\n| where properties.essentials.monitorCondition == \"Fired\"\n| where properties.essentials.startDateTime > ago(60m)\n| project StartTime=properties.essentials.startDateTime,name,Description=properties.essentials.description, Severity=properties.essentials.severity, subscriptionId\n| sort by tostring(StartTime)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.952Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":33,"estimatedTokens":314}}449{"id":"doc-quickstart_use_azure_managed_redis_in_net_core_a-7cd1ff35","source":"documentation","title":"Quickstart: Use Azure Managed Redis in .NET Core - Azure Managed Redis | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/redis/dotnet","text":"Example:\n```bash\naz login\n```\n\nExample:\n```csharp\nConfigurationOptions configurationOptions = new()\n{\n Protocol = RedisProtocol.Resp3, // Recommended for seamless re-auth\n LoggerFactory = loggerFactory,\n AbortOnConnectFail = true, // Fail fast (use false in production)\n BacklogPolicy = BacklogPolicy.FailFast\n};\n```\n\nExample:\n```csharp\nawait configurationOptions.ConfigureForAzureWithTokenCredentialAsync(new DefaultAzureCredential());\nvar connection = await ConnectionMultiplexer.ConnectAsync(configurationOptions);\n```\n\nExample:\n```csharp\nvar database = connection.GetDatabase();\nawait database.StringSetAsync(\"key\", \"value\");\nvar value = await database.StringGetAsync(\"key\");\n```\n\nExample:\n```powershell\naz login\ncd sample\ndotnet run\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:50.972Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":37,"estimatedTokens":194}}450{"id":"doc-remediate_non_compliant_resources_azure_policy_m-7c61abf2","source":"documentation","title":"Remediate non-compliant resources - Azure Policy | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/governance/policy/how-to/remediate-resources","text":"Example:\n```json\n\"details\": {\n ...\n \"roleDefinitionIds\": [\n \"/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleDefinitions/{roleGUID}\",\n \"/providers/Microsoft.Authorization/roleDefinitions/{builtinroleGUID}\"\n ]\n}\n```\n\nExample:\n```azurecli\naz role definition list --name \"Contributor\"\n```\n\nExample:\n```azurepowershell\n# Login first with Connect-AzAccount if not using Cloud Shell\n\n# Get the built-in \"Deploy SQL DB transparent data encryption\" policy definition\n$policyDef = Get-AzPolicyDefinition -Id '/providers/Microsoft.Authorization/policyDefinitions/86a912f6-9a06-4e26-b447-11b16ba8659f'\n\n# Get the reference to the resource group\n$resourceGroup = Get-AzResourceGroup -Name 'MyResourceGroup'\n\n# Create the assignment using the -Location and -Identity properties\n$assignment = New-AzPolicyAssignment -Name 'sqlDbTDE' -DisplayName 'Deploy SQL DB transparent data encryption' -Scope $resourceGroup.ResourceId -PolicyDefinition $policyDef -Location 'westus' -IdentityType \"SystemAssigned\"\n```\n\nExample:\n```azurepowershell\n# Login first with Connect-AzAccount if not using Cloud Shell\n\n# Get the built-in \"Deploy SQL DB transparent data encryption\" policy definition\n$policyDef = Get-AzPolicyDefinition -Id '/providers/Microsoft.Authorization/policyDefinitions/86a912f6-9a06-4e26-b447-11b16ba8659f'\n\n# Get the reference to the resource group\n$resourceGroup = Get-AzResourceGroup -Name 'MyResourceGroup'\n\n# Get the existing user assigned managed identity ID\n$userassignedidentity = Get-AzUserAssignedIdentity -ResourceGroupName $rgname -Name $userassignedidentityname\n$userassignedidentityid = $userassignedidentity.Id\n\n# Create the assignment using the -Location and -Identity properties\n$assignment = New-AzPolicyAssignment -Name 'sqlDbTDE' -DisplayName 'Deploy SQL DB transparent data encryption' -Scope $resourceGroup.ResourceId -PolicyDefinition $policyDef -Location 'westus' -IdentityType \"UserAssigned\" -IdentityId $userassignedidentityid\n```\n\nExample:\n```output\n/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Authorization/policyAssignments/2802056bfc094dfb95d4d7a5\n```\n\nExample:\n```azurepowershell\n###################################################\n# Grant roles to managed identity at policy scope #\n###################################################\n\n# Use the $policyDef to get to the roleDefinitionIds array\n$roleDefinitionIds = $policyDef.Properties.policyRule.then.details.roleDefinitionIds\n\nif ($roleDefinitionIds.Count -gt 0)\n{\n $roleDefinitionIds | ForEach-Object {\n $roleDefId = $_.Split(\"/\") | Select-Object -Last 1\n New-AzRoleAssignment -Scope $resourceGroup.ResourceId -ObjectId $assignment.Identity.PrincipalId\n -RoleDefinitionId $roleDefId\n }\n}\n\n#######################################################\n# Grant roles to managed identity at initiative scope #\n#######################################################\n\n#If the policy had no managed identity in its logic, then no impact. If there is a managed identity\nused for enforcement, replicate it on the new assignment.\n$getNewInitiativeAssignment = Get-AzPolicyAssignment -Name $newInitiativeDefinition.Name\n\n#Create an array to store role definition's IDs used by policies inside the initiative.\n$InitiativeRoleDefinitionIds = @();\n\n#Loop through the policy definitions inside the initiative and gather their role definition IDs\nforeach ($policyDefinitionIdInsideInitiative in $InitiativeDefinition.Properties.PolicyDefinitions.policyDefinitionId) {\n $policyDef = Get-AzPolicyDefinition -Id $policyDefinitionIdInsideInitiative\n $roleDefinitionIds = $policyDef.Properties.PolicyRule.then.details.roleDefinitionIds\n $InitiativeRoleDefinitionIds += $roleDefinitionIds\n}\n\n#Create the role assignments used by the initiative assignment at the subscription scope.\nif ($InitiativeRoleDefinitionIds.Count -gt 0) {\n $InitiativeRoleDefinitionIds | Sort-Object -Unique | ForEach-Object {\n $roleDefId = $_.Split(\"/\") | Select-Object -Last 1\n New-AzRoleAssignment -Scope \"/subscriptions/$($subscription)\" -ObjectId $getNewInitiativeAssignment.Identity.PrincipalId\n -RoleDefinitionId $roleDefId\n }\n}\n```\n\nExample:\n```azurepowershell\n# Login first with Connect-AzAccount if not using Cloud Shell\n\n# Create a remediation for a specific assignment\nStart-AzPolicyRemediation -Name 'myRemediation' -PolicyAssignmentId '/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments/{myAssignmentId}'\n```\n\nExample:\n```azurecli\n# Login first with az login if not using Cloud Shell\n\n# Create a remediation for a specific assignment\naz policy remediation create --name myRemediation --policy-assignment '/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/policyAssignments/{myAssignmentId}'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:51.380Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":116,"estimatedTokens":1204}}451{"id":"doc-how_to_enable_zone_redundancy_in_azure_managed_g-50eb1f33","source":"documentation","title":"How to enable zone redundancy in Azure Managed Grafana | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/managed-grafana/how-to-enable-zone-redundancy","text":"Example:\n```azurecli\naz login\n```\n\nExample:\n```azurecli\naz group create --location <location> --name <resource-group-name>\n```\n\nExample:\n```azurecli\naz grafana create --name <managed-grafana-resource-name> --resource-group <resource-group-name> --zone-redundancy enabled\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:51.399Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":16,"estimatedTokens":72}}452{"id":"doc-connect_securely_to_an_azure_service_fabric_clus-fb21b0c0","source":"documentation","title":"Connect securely to an Azure Service Fabric cluster - Azure Service Fabric | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/service-fabric/service-fabric-connect-to-secure-cluster","text":"Example:\n```shell\nopenssl pkcs12 -in your-cert-file.pfx -out your-cert-file.pem -nodes -passin pass:your-pfx-password\n```\n\nExample:\n```shell\nsfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem\n```\n\nExample:\n```shell\nsfctl cluster select --endpoint https://testsecurecluster.com:19080 --cert ./client.crt --key ./keyfile.key\n```\n\nExample:\n```shell\nsfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem --no-verify\n```\n\nExample:\n```shell\nsfctl cluster select --endpoint https://testsecurecluster.com:19080 --pem ./client.pem --ca ./trusted_ca\n```\n\nExample:\n```powershell\nConnect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000\n```\n\nExample:\n```powershell\nConnect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 `\n-ServerCertThumbprint <Server Certificate Thumbprint> `\n-AzureActiveDirectory\n```\n\nExample:\n```powershell\nConnect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `\n -X509Credential `\n -ServerCommonName <certificate common name> `\n -FindType FindBySubjectName `\n -FindValue <certificate common name> `\n -StoreLocation CurrentUser `\n -StoreName My\n```\n\nExample:\n```powershell\n$ClusterName= \"sf-commonnametest-scus.southcentralus.cloudapp.azure.com:19000\"\n$certCN = \"sfrpe2eetest.southcentralus.cloudapp.azure.com\"\n\nConnect-serviceFabricCluster -ConnectionEndpoint $ClusterName -KeepAliveIntervalInSec 10 `\n -X509Credential `\n -ServerCommonName $certCN `\n -FindType FindBySubjectName `\n -FindValue $certCN `\n -StoreLocation CurrentUser `\n -StoreName My\n```\n\nExample:\n```powershell\nConnect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 ` \n -KeepAliveIntervalInSec 10 ` \n -X509Credential -ServerCertThumbprint <Certificate Thumbprint> ` \n -FindType FindByThumbprint -FindValue <Certificate Thumbprint> ` \n -StoreLocation CurrentUser -StoreName My\n```\n\nExample:\n```powershell\nConnect-ServiceFabricCluster -ConnectionEndpoint clustername.westus.cloudapp.azure.com:19000 ` \n -KeepAliveIntervalInSec 10 ` \n -X509Credential -ServerCertThumbprint AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00 ` \n -FindType FindByThumbprint -FindValue BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11 ` \n -StoreLocation CurrentUser -StoreName My\n```\n\nExample:\n```powershell\nConnect-ServiceFabricCluster -ConnectionEndpoint <Cluster FQDN>:19000 `\n -WindowsCredential\n```\n\nExample:\n```csharp\nFabricClient fabricClient = new FabricClient(\"clustername.westus.cloudapp.azure.com:19000\");\n```\n\nExample:\n```csharp\nFabricClient fabricClient = new FabricClient();\n```\n\nExample:\n```csharp\nusing System.Fabric;\nusing System.Security.Cryptography.X509Certificates;\n\nstring clientCertThumb = \"BB22CC33DD44EE55FF66AA77BB88CC99DD00EE11\";\nstring serverCertThumb = \"AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00\";\nstring CommonName = \"www.clustername.westus.azure.com\";\nstring connection = \"clustername.westus.cloudapp.azure.com:19000\";\n\nvar xc = GetCredentials(clientCertThumb, serverCertThumb, CommonName);\nvar fc = new FabricClient(xc, connection);\n\ntry\n{\n var ret = fc.ClusterManager.GetClusterManifestAsync().Result;\n Console.WriteLine(ret.ToString());\n}\ncatch (Exception e)\n{\n Console.WriteLine(\"Connect failed: {0}\", e.Message);\n}\n\nstatic X509Credentials GetCredentials(string clientCertThumb, string serverCertThumb, string name)\n{\n X509Credentials xc = new X509Credentials();\n xc.StoreLocation = StoreLocation.CurrentUser;\n xc.StoreName = \"My\";\n xc.FindType = X509FindType.FindByThumbprint;\n xc.FindValue = clientCertThumb;\n xc.RemoteCommonNames.Add(name);\n xc.RemoteCertThumbprints.Add(serverCertThumb);\n xc.ProtectionLevel = ProtectionLevel.EncryptAndSign;\n return xc;\n}\n```\n\nExample:\n```csharp\nstring serverCertThumb = \"AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00\";\nstring connection = \"clustername.westus.cloudapp.azure.com:19000\";\n\nvar claimsCredentials = new ClaimsCredentials();\nclaimsCredentials.ServerThumbprints.Add(serverCertThumb);\n\nvar fc = new FabricClient(claimsCredentials, connection);\n\ntry\n{\n var ret = fc.ClusterManager.GetClusterManifestAsync().Result;\n Console.WriteLine(ret.ToString());\n}\ncatch (Exception e)\n{\n Console.WriteLine(\"Connect failed: {0}\", e.Message);\n}\n```\n\nExample:\n```csharp\nstring tenantId = \"aaaabbbb-0000-cccc-1111-dddd2222eeee\";\nstring clientApplicationId = \"33334444-dddd-5555-eeee-6666ffff7777\";\nstring webApplicationId = \"00001111-aaaa-2222-bbbb-3333cccc4444\";\nstring[] scopes = new string[] { \"user.read\" };\n\nvar pca = PublicClientApplicationBuilder.Create(clientApplicationId)\n .WithAuthority($\"https://login.microsoftonline.com/{tenantId}\")\n .WithRedirectUri(\"urn:ietf:wg:oauth:2.0:oob\")\n .Build();\n\nvar accounts = await pca.GetAccountsAsync();\nvar result = await pca.AcquireTokenInteractive(scopes)\n .WithAccount(accounts.FirstOrDefault())\n .ExecuteAsync();\n\nstring token = result.AccessToken;\n\nstring serverCertThumb = \"AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00\";\nstring connection = \"clustername.westus.cloudapp.azure.com:19000\";\n\nvar claimsCredentials = new ClaimsCredentials();\nclaimsCredentials.ServerThumbprints.Add(serverCertThumb);\nclaimsCredentials.LocalClaims = token;\n\nvar fc = new FabricClient(claimsCredentials, connection);\n\ntry\n{\n var ret = fc.ClusterManager.GetClusterManifestAsync().Result;\n Console.WriteLine(ret.ToString());\n}\ncatch (Exception e)\n{\n Console.WriteLine(\"Connect failed: {0}\", e.Message);\n}\n```\n\nExample:\n```csharp\nstring serverCertThumb = \"AA11BB22CC33DD44EE55FF66AA77BB88CC99DD00\";\nstring connection = \"clustername.westus.cloudapp.azure.com:19000\";\n\nvar claimsCredentials = new ClaimsCredentials();\nclaimsCredentials.ServerThumbprints.Add(serverCertThumb);\n\nvar fc = new FabricClient(claimsCredentials, connection);\n\nfc.ClaimsRetrieval += async (o, e) =>\n{\n var accounts = await PublicClientApplicationBuilder\n .Create(\"<client_id>\")\n .WithAuthority(AzureCloudInstance.AzurePublic, \"<tenant_id>\")\n .WithRedirectUri(\"<redirect_uri>\")\n .Build()\n .GetAccountsAsync();\n\n var result = await PublicClientApplicationBuilder\n .Create(\"<client_id>\")\n .WithAuthority(AzureCloudInstance.AzurePublic, \"<tenant_id>\")\n .WithRedirectUri(\"<redirect_uri>\")\n .Build()\n .AcquireTokenInteractive(new[] { \"<scope>\" })\n .WithAccount(accounts.FirstOrDefault())\n .ExecuteAsync();\n\n return result.AccessToken;\n};\n\ntry\n{\n var ret = fc.ClusterManager.GetClusterManifestAsync().Result;\n Console.WriteLine(ret.ToString());\n}\ncatch (Exception e)\n{\n Console.WriteLine(\"Connect failed: {0}\", e.Message);\n}\n```\n\nExample:\n```powershell\nImport-PfxCertificate -Exportable -CertStoreLocation Cert:\\CurrentUser\\My `\n -FilePath C:\\docDemo\\certs\\DocDemoClusterCert.pfx `\n -Password (ConvertTo-SecureString -String test -AsPlainText -Force)\n```\n\nExample:\n```powershell\nImport-PfxCertificate -Exportable -CertStoreLocation Cert:\\CurrentUser\\TrustedPeople `\n-FilePath C:\\docDemo\\certs\\DocDemoClusterCert.pfx `\n-Password (ConvertTo-SecureString -String test -AsPlainText -Force)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:51.403Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":20,"totalLines":250,"estimatedTokens":1812}}453{"id":"doc-get_started_with_azure_operator_service_manager_-bb6fb7a0","source":"documentation","title":"Get started with Azure Operator Service Manager Safe Upgrade Practices | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/operator-service-manager/safe-upgrade-practices","text":"Example:\n```json\n{\n \"roleOverrideValues\": [\n {\n \"name\": \"nfApplication1\",\n \"deployParametersMappingRuleProfile\": {\n \"helmMappingRuleProfile\": {\n \"options\": {\n \"installOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\"\n },\n \"upgradeOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\"\n } } } } },\n {\n \"name\": \"nfApplication2\",\n \"deployParametersMappingRuleProfile\": {\n \"helmMappingRuleProfile\": {\n \"options\": {\n \"installOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\"\n },\n \"upgradeOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\"\n } } } } }\n ]\n}\n```\n\nExample:\n```json\n\"location\":\"<location>\", \n \"properties\": {\n \"networkFunctionTemplate\": {\n \"networkFunctionApplications\": [\n \"deployParametersMappingRuleProfile\": {\n \"applicationEnablement\": \"Enabled\"\n },\n \"name\": \"hellotest\"\n ],\n \"nfviType\": \"AzureArcKubernetes\"\n },\n }\n```\n\nExample:\n```json\n\"roleOverrideValues0\": {\n \"type\": \"string\" \n }, \n \"roleOverrideValues1\": {\n \"type\": \"string\" \n }, \n \"roleOverrideValues2\": {\n \"type\": \"string\"\n }\n```\n\nExample:\n```json\n\"parameters\": {\n \"config\": {\n \"type\": \"object\",\n \"defaultValue\": {}\n }\n }\n \"variables\": {\n \"roleOverrideValues0\": \"[string(parameters('config').roleOverrideValues1)]\",\n \"roleOverrideValues1\": \"[string(parameters('config').roleOverrideValues1)]\",\n \"roleOverrideValues2\": \"[string(parameters('config').roleOverrideValues2)]\"\n },\n \"resources\": [\n {\n<snip>\n \"roleOverrideValues\": [\n \"[variables('roleOverrideValues0')]\",\n \"[variables('roleOverrideValues1')]\",\n \"[variables('roleOverrideValues2')]\"\n ]\n }\n```\n\nExample:\n```json\n{\n \"roleOverrideValues0\": \"{\\\"nfConfiguration\\\":{\\\"rollbackEnabled\\\":true}}\",\n \"roleOverrideValues1\": \"{\\\"name\\\":\\\"hellotest\\\",\\\"deployParametersMappingRuleProfile\\\":{\\\"applicationEnablement\\\":\\\"Enabled\\\",\\\"helmMappingRuleProfile\\\":{\\\"releaseName\\\":\\\"override-release\\\",\\\"releaseNamespace\\\":\\\"override-namespace\\\",\\\"helmPackageVersion\\\":\\\"1.0.0\\\",\\\"values\\\":\\\"\\\",\\\"options\\\":{\\\"installOptions\\\":{\\\"atomic\\\":\\\"true\\\",\\\"wait\\\":\\\"true\\\",\\\"timeout\\\":\\\"30\\\",\\\"injectArtifactStoreDetails\\\":\\\"true\\\"},\\\"upgradeOptions\\\":{\\\"atomic\\\":\\\"true\\\",\\\"wait\\\":\\\"true\\\",\\\"timeout\\\":\\\"30\\\",\\\"injectArtifactStoreDetails\\\":\\\"true\\\"}}}}}\",\n \"roleOverrideValues2\": \"{\\\"name\\\":\\\"hellotest1\\\",\\\"deployParametersMappingRuleProfile\\\":{\\\"applicationEnablement\\\" : \\\"Enabled\\\"}}\"\n}\n```\n\nExample:\n```json\n{\n \"location\": \"eastus2euap\",\n \"properties\": {\n \"publisherName\": \"xyAzureArcRunnerPublisher\",\n \"publisherScope\": \"Private\",\n \"networkFunctionDefinitionGroupName\": \"AzureArcRunnerNFDGroup\",\n \"networkFunctionDefinitionVersion\": \"1.0.0\",\n \"networkFunctionDefinitionOfferingLocation\": \"eastus2euap\",\n \"nfviType\": \"AzureArcKubernetes\",\n \"nfviId\": \"/subscriptions/4a0479c0-b795-4d0f-96fd-c7edd2a2928f/resourcegroups/ashutosh_test_rg/providers/microsoft.extendedlocation/customlocations/ashutosh_test_cl\",\n \"deploymentValues\": \"\",\n \"roleOverrideValues\": [\n \"{\\\"name\\\":\\\"hellotest\\\",\\\"deployParametersMappingRuleProfile\\\":{\\\"helmMappingRuleProfile\\\":{\\\"options\\\":{\\\"installOptions\\\":{\\\"atomic\\\":\\\"true\\\",\\\"wait\\\":\\\"true\\\",\\\"timeout\\\":\\\"1\\\"},\\\"upgradeOptions\\\":{\\\"atomic\\\":\\\"true\\\",\\\"wait\\\":\\\"true\\\",\\\"timeout\\\":\\\"4\\\",\\\"skipUpgrade\\\":\\\"true\\\"}}}}}\",\n \"{\\\"name\\\":\\\"runnerTest\\\",\\\"deployParametersMappingRuleProfile\\\":{\\\"helmMappingRuleProfile\\\":{\\\"options\\\":{\\\"installOptions\\\":{\\\"atomic\\\":\\\"true\\\",\\\"wait\\\":\\\"true\\\",\\\"timeout\\\":\\\"5\\\"},\\\"upgradeOptions\\\":{\\\"atomic\\\":\\\"true\\\",\\\"wait\\\":\\\"true\\\",\\\"timeout\\\":\\\"5\\\"}}}}}\"\n ]\n }\n}\n```\n\nExample:\n```json\n{\n \"roleOverrideValues\": [\n {\n \"nfConfiguration\": {\n \"rollbackEnabled\": \"true\"\n }\n },\n {\n \"name\": \"nfApplication1\",\n \"deployParametersMappingRuleProfile\": {\n \"helmMappingRuleProfile\": {\n \"options\": {\n \"installOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\",\n \"testOptions\": {\n \"enable\": \"true\",\n \"timeout\": \"true\",\n \"rollbackOnTestFailure\": \"true\",\n \"filter\": [\n \"test1\",\n \"test2\"\n ]\n }\n },\n \"upgradeOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\",\n \"skipUpgrade\": \"true\",\n \"testOptions\": {\n \"enable\": \"true\",\n \"timeout\": \"true\",\n \"rollbackOnTestFailure\": \"true\",\n \"filter\": [\n \"test1\",\n \"test2\"\n ]\n }\n }\n }\n }\n }\n },\n {\n \"name\": \"nfApplication2\",\n \"deployParametersMappingRuleProfile\": {\n \"helmMappingRuleProfile\": {\n \"options\": {\n \"installOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\",\n \"testOptions\": {\n \"enable\": \"true\",\n \"timeout\": \"true\",\n \"rollbackOnTestFailure\": \"true\",\n \"filter\": [\n \"test1\",\n \"test2\"\n ]\n }\n },\n \"upgradeOptions\": {\n \"atomic\": \"true\",\n \"wait\": \"true\",\n \"timeout\": \"1\",\n \"skipUpgrade\": \"true\",\n \"testOptions\": {\n \"enable\": \"true\",\n \"timeout\": \"true\",\n \"rollbackOnTestFailure\": \"true\",\n \"filter\": [\n \"test1\",\n \"test2\"\n ]\n }\n }\n }\n }\n }\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:51.418Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":211,"estimatedTokens":1584}}454{"id":"doc-customize_your_pipeline_azure_pipelines_microsof-f55476a9","source":"documentation","title":"Customize your pipeline - Azure Pipelines | Microsoft Learn","url":"https://learn.microsoft.com/en-us/azure/devops/pipelines/customize-pipeline?view=azure-devops","text":"Example:\n```yaml\ntrigger:\n - main\n\n pool:\n vmImage: 'ubuntu-latest'\n\n steps:\n - task: Maven@4\n inputs:\n mavenPomFile: 'pom.xml'\n mavenOptions: '-Xmx3072m'\n javaHomeOption: 'JDKVersion'\n jdkVersionOption: '1.11'\n jdkArchitectureOption: 'x64'\n publishJUnitResults: false\n testResultsFiles: '**/surefire-reports/TEST-*.xml'\n goals: 'package'\n```\n\nExample:\n```yaml\npool:\n vmImage: \"ubuntu-latest\"\n```\n\nExample:\n```yaml\npool:\n vmImage: \"windows-latest\"\n```\n\nExample:\n```yaml\npool:\n vmImage: \"macos-latest\"\n```\n\nExample:\n```yaml\n- task: PublishCodeCoverageResults@2\n inputs:\n summaryFileLocation: \"$(System.DefaultWorkingDirectory)/**/site/jacoco/jacoco.xml\" # Path to summary files\n reportDirectory: \"$(System.DefaultWorkingDirectory)/**/site/jacoco\" # Path to report directory\n failIfCoverageEmpty: true # Fail if code coverage results are missing\n```\n\nExample:\n```yaml\nstrategy:\n matrix:\n linux:\n imageName: \"ubuntu-latest\"\n mac:\n imageName: \"macOS-latest\"\n windows:\n imageName: \"windows-latest\"\n maxParallel: 3\n\npool:\n vmImage: $(imageName)\n```\n\nExample:\n```yaml\nstrategy:\n matrix:\n jdk10:\n jdkVersion: \"1.10\"\n jdk11:\n jdkVersion: \"1.11\"\n maxParallel: 2\n```\n\nExample:\n```yaml\njdkVersionOption: \"1.11\"\n```\n\nExample:\n```yaml\njdkVersionOption: $(jdkVersion)\n```\n\nExample:\n```yaml\ntrigger:\n- main\n\nstrategy:\n matrix:\n jdk10_linux:\n imageName: \"ubuntu-latest\"\n jdkVersion: \"1.10\"\n jdk11_windows:\n imageName: \"windows-latest\"\n jdkVersion: \"1.11\"\n maxParallel: 2\n\npool:\n vmImage: $(imageName)\n\nsteps:\n- task: Maven@4\n inputs:\n mavenPomFile: \"pom.xml\"\n mavenOptions: \"-Xmx3072m\"\n javaHomeOption: \"JDKVersion\"\n jdkVersionOption: $(jdkVersion)\n jdkArchitectureOption: \"x64\"\n publishJUnitResults: true\n testResultsFiles: \"**/TEST-*.xml\"\n goals: \"package\"\n```\n\nExample:\n```yaml\ntrigger:\n - main\n - releases/*\n```\n\nExample:\n```yaml\npr:\n - main\n - releases/*\n```\n\nExample:\n```yml\n# When manually running the pipeline, you can select whether it\n# succeeds or fails.\nparameters:\n- name: succeed\n displayName: Succeed or fail\n type: boolean\n default: false\n\ntrigger:\n- main\n\npool:\n vmImage: ubuntu-latest\n\njobs:\n- job: Work\n steps:\n - script: echo Hello, world!\n displayName: 'Run a one-line script'\n\n # This malformed command causes the job to fail\n # Only run this command if the succeed variable is set to false\n - script: git clone malformed input\n condition: eq(${{ parameters.succeed }}, false)\n\n# This job creates a work item, and only runs if the previous job failed\n- job: ErrorHandler\n dependsOn: Work\n condition: failed()\n steps: \n - bash: |\n az boards work-item create \\\n --title \"Build $(build.buildNumber) failed\" \\\n --type bug \\\n --org $(System.TeamFoundationCollectionUri) \\\n --project $(System.TeamProject)\n env: \n AZURE_DEVOPS_EXT_PAT: $(System.AccessToken)\n displayName: 'Create work item on failure'\n```\n\nExample:\n```yml\n# When manually running the pipeline, you can select whether it\n# succeeds or fails.\nparameters:\n- name: succeed\n displayName: Succeed or fail\n type: boolean\n default: false\n\ntrigger:\n- main\n\npool:\n vmImage: ubuntu-latest\n\njobs:\n- job: Work\n steps:\n - script: echo Hello, world!\n displayName: 'Run a one-line script'\n\n # This malformed command causes the job to fail\n # Only run this command if the succeed variable is set to false\n - script: git clone malformed input\n condition: eq(${{ parameters.succeed }}, false)\n\n# This job creates a work item, and only runs if the previous job failed\n- job: ErrorHandler\n dependsOn: Work\n condition: failed()\n steps: \n - bash: |\n curl \\\n -X POST \\\n -H 'Authorization: Basic $(System.AccessToken)' \\\n -H 'Content-Type: application/json-patch+json' \\\n -d '[\n {\n \"op\": \"add\",\n \"path\": \"/fields/System.Title\",\n \"from\": null,\n \"value\": \"git clone failed\"\n }\n ]' \\\n \"$(System.CollectionUri)$(System.TeamProject)/_apis//wit/workitems/$Bug?api-version=7.1-preview.3\n\"\n env:\n SYSTEM_ACCESSTOKEN: $(System.AccessToken)\n displayName: 'Create work item on failure'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:51.442Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":14,"totalLines":226,"estimatedTokens":1080}}455{"id":"doc-postgresql_release_notes-21881118","source":"documentation","title":"PostgreSQL: Release Notes","url":"https://www.postgresql.org/docs/release/","text":"Home About Download Documentation Community Developers Support Donate Your account August 13, 18.6, 17.11, 16.15, 15.19, 14.24 and 19 Beta 3 Released!\n\nQuick Links Documentation Manuals Archive Release Notes Books Tutorials & Other Resources FAQ Wiki Release Notes Below is the complete archive of release notes for every version of PostgreSQL. PostgreSQL 18 18.6 18.5 18.4 18.3 18.2 18.1 18.0 PostgreSQL 17 17.11 17.10 17.9 17.8 17.7 17.6 17.5 17.4 17.3 17.2 17.1 17.0 PostgreSQL 16 16.15 16.14 16.13 16.12 16.11 16.10 16.9 16.8 16.7 16.6 16.5 16.4 16.3 16.2 16.1 16.0 PostgreSQL 15 15.19 15.18 15.17 15.16 15.15 15.14 15.13 15.12 15.11 15.10 15.9 15.8 15.7 15.6 15.5 15.4 15.3 15.2 15.1 15.0 PostgreSQL 14 14.24 14.23 14.22 14.21 14.20 14.19 14.18 14.17 14.16 14.15 14.14 14.13 14.12 14.11 14.10 14.9 14.8 14.7 14.6 14.5 14.4 14.3 14.2 14.1 14.0 PostgreSQL 13 13.23 13.22 13.21 13.20 13.19 13.18 13.17 13.16 13.15 13.14 13.13 13.12 13.11 13.10 13.9 13.8 13.7 13.6 13.5 13.4 13.3 13.2 13.1 13.0 PostgreSQL 12 12.22 12.21 12.20 12.19 12.18 12.17 12.16 12.15 12.14 12.13 12.12 12.11 12.10 12.9 12.8 12.7 12.6 12.5 12.4 12.3 12.2 12.1 12.0 PostgreSQL 11 11.22 11.21 11.20 11.19 11.18 11.17 11.16 11.15 11.14 11.13 11.12 11.11 11.10 11.9 11.8 11.7 11.6 11.5 11.4 11.3 11.2 11.1 11.0 PostgreSQL 10 10.23 10.22 10.21 10.20 10.19 10.18 10.17 10.16 10.15 10.14 10.13 10.12 10.11 10.10 10.9 10.8 10.7 10.6 10.5 10.4 10.3 10.2 10.1 10.0 PostgreSQL 9.6 9.6.24 9.6.23 9.6.22 9.6.21 9.6.20 9.6.19 9.6.18 9.6.17 9.6.16 9.6.15 9.6.14 9.6.13 9.6.12 9.6.11 9.6.10 9.6.9 9.6.8 9.6.7 9.6.6 9.6.5 9.6.4 9.6.3 9.6.2 9.6.1 9.6.0 PostgreSQL 9.5 9.5.25 9.5.24 9.5.23 9.5.22 9.5.21 9.5.20 9.5.19 9.5.18 9.5.17 9.5.16 9.5.15 9.5.14 9.5.13 9.5.12 9.5.11 9.5.10 9.5.9 9.5.8 9.5.7 9.5.6 9.5.5 9.5.4 9.5.3 9.5.2 9.5.1 9.5.0 PostgreSQL 9.4 9.4.26 9.4.25 9.4.24 9.4.23 9.4.22 9.4.21 9.4.20 9.4.19 9.4.18 9.4.17 9.4.16 9.4.15 9.4.14 9.4.13 9.4.12 9.4.11 9.4.10 9.4.9 9.4.8 9.4.7 9.4.6 9.4.5 9.4.4 9.4.3 9.4.2 9.4.1 9.4.0 PostgreSQL 9.3 9.3.25 9.3.24 9.3.23 9.3.22 9.3.21 9.3.20 9.3.19 9.3.18 9.3.17 9.3.16 9.3.15 9.3.14 9.3.13 9.3.12 9.3.11 9.3.10 9.3.9 9.3.8 9.3.7 9.3.6 9.3.5 9.3.4 9.3.3 9.3.2 9.3.1 9.3.0 PostgreSQL 9.2 9.2.24 9.2.23 9.2.22 9.2.21 9.2.20 9.2.19 9.2.18 9.2.17 9.2.16 9.2.15 9.2.14 9.2.13 9.2.12 9.2.11 9.2.10 9.2.9 9.2.8 9.2.7 9.2.6 9.2.5 9.2.4 9.2.3 9.2.2 9.2.1 9.2.0 PostgreSQL 9.1 9.1.24 9.1.23 9.1.22 9.1.21 9.1.20 9.1.19 9.1.18 9.1.17 9.1.16 9.1.15 9.1.14 9.1.13 9.1.12 9.1.11 9.1.10 9.1.9 9.1.8 9.1.7 9.1.6 9.1.5 9.1.4 9.1.3 9.1.2 9.1.1 9.1.0 PostgreSQL 9.0 9.0.23 9.0.22 9.0.21 9.0.20 9.0.19 9.0.18 9.0.17 9.0.16 9.0.15 9.0.14 9.0.13 9.0.12 9.0.11 9.0.10 9.0.9 9.0.8 9.0.7 9.0.6 9.0.5 9.0.4 9.0.3 9.0.2 9.0.1 9.0.0 PostgreSQL 8.4 8.4.22 8.4.21 8.4.20 8.4.19 8.4.18 8.4.17 8.4.16 8.4.15 8.4.14 8.4.13 8.4.12 8.4.11 8.4.10 8.4.9 8.4.8 8.4.7 8.4.6 8.4.5 8.4.4 8.4.3 8.4.2 8.4.1 8.4.0 PostgreSQL 8.3 8.3.23 8.3.22 8.3.21 8.3.20 8.3.19 8.3.18 8.3.17 8.3.16 8.3.15 8.3.14 8.3.13 8.3.12 8.3.11 8.3.10 8.3.9 8.3.8 8.3.7 8.3.6 8.3.5 8.3.4 8.3.3 8.3.2 8.3.1 8.3.0 PostgreSQL 8.2 8.2.23 8.2.22 8.2.21 8.2.20 8.2.19 8.2.18 8.2.17 8.2.16 8.2.15 8.2.14 8.2.13 8.2.12 8.2.11 8.2.10 8.2.9 8.2.8 8.2.7 8.2.6 8.2.5 8.2.4 8.2.3 8.2.2 8.2.1 8.2.0 PostgreSQL 8.1 8.1.23 8.1.22 8.1.21 8.1.20 8.1.19 8.1.18 8.1.17 8.1.16 8.1.15 8.1.14 8.1.13 8.1.12 8.1.11 8.1.10 8.1.9 8.1.8 8.1.7 8.1.6 8.1.5 8.1.4 8.1.3 8.1.2 8.1.1 8.1.0 PostgreSQL 8.0 8.0.26 8.0.25 8.0.24 8.0.23 8.0.22 8.0.21 8.0.20 8.0.19 8.0.18 8.0.17 8.0.16 8.0.15 8.0.14 8.0.13 8.0.12 8.0.11 8.0.10 8.0.9 8.0.8 8.0.7 8.0.6 8.0.5 8.0.4 8.0.3 8.0.2 8.0.1 8.0.0 PostgreSQL 7.4 7.4.30 7.4.29 7.4.28 7.4.27 7.4.26 7.4.25 7.4.24 7.4.23 7.4.22 7.4.21 7.4.20 7.4.19 7.4.18 7.4.17 7.4.16 7.4.15 7.4.14 7.4.13 7.4.12 7.4.11 7.4.10 7.4.9 7.4.8 7.4.7 7.4.6 7.4.5 7.4.4 7.4.3 7.4.2 7.4.1 7.4.0 PostgreSQL 7.3 7.3.21 7.3.20 7.3.19 7.3.18 7.3.17 7.3.16 7.3.15 7.3.14 7.3.13 7.3.12 7.3.11 7.3.10 7.3.9 7.3.8 7.3.7 7.3.6 7.3.5 7.3.4 7.3.3 7.3.2 7.3.1 7.3.0 PostgreSQL 7.2 7.2.8 7.2.7 7.2.6 7.2.5 7.2.4 7.2.3 7.2.2 7.2.1 7.2.0 PostgreSQL 7.1 7.1.3 7.1.2 7.1.1 7.1.0 PostgreSQL 7.0 7.0.3 7.0.2 7.0.1 7.0.0 PostgreSQL 6.5 6.5.3 6.5.2 6.5.1 6.5.0 PostgreSQL 6.4 6.4.2 6.4.1 6.4.0 PostgreSQL 6.3 6.3.2 6.3.1 6.3.0 PostgreSQL 6.2 6.2.1 6.2.0 PostgreSQL 6.1 6.1.1 6.1.0 PostgreSQL 6.0 6.0.0 PostgreSQL 1 1.09 1.02 1.01 1.0 Postgres95 0.03 0.02 0.01\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:07.619Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":1092}}456{"id":"doc-standard_library_go_packages-3cda5397","source":"documentation","title":"Standard library - Go Packages","url":"https://pkg.go.dev/std@go1.20.7","text":"Discover Packages Standard library Standard library Opens a new window with list of versions in this module. Latest Latest This package is not in the latest version of its module. Go to latest 1, 2023 Opens a new window with license information. Main Versions Licenses Details Valid go.mod file The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go. Redistributable license Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed. Tagged version Modules with tagged versions give importers more predictable builds. Stable version When a project reaches major version v1 it is considered stable. Learn more about best practices Repository cs.opensource.google/go/go Links Report a Vulnerability Open Source Insights Jump to ... Directories Directories Directories ¶ Show internal Expand all Path Synopsis archive tar Package tar implements access to tar archives. Package tar implements access to tar archives. zip Package zip provides support for reading and writing ZIP archives. Package zip provides support for reading and writing ZIP archives. bufio Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O. Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O. builtin Package builtin provides documentation for Go's predeclared identifiers. Package builtin provides documentation for Go's predeclared identifiers. bytes Package bytes implements functions for the manipulation of byte slices. Package bytes implements functions for the manipulation of byte slices. compress bzip2 Package bzip2 implements bzip2 decompression. Package bzip2 implements bzip2 decompression. flate Package flate implements the DEFLATE compressed data format, described in RFC 1951. Package flate implements the DEFLATE compressed data format, described in RFC 1951. gzip Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952. Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952. lzw Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19. Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19. zlib Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950. Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950. container heap Package heap provides heap operations for any type that implements heap.Interface. Package heap provides heap operations for any type that implements heap.Interface. list Package list implements a doubly linked list. Package list implements a doubly linked list. ring Package ring implements operations on circular lists. Package ring implements operations on circular lists. context Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. crypto Package crypto collects common cryptographic constants. Package crypto collects common cryptographic constants. aes Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197. Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197. cipher Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations. Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations. des Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3. Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3. dsa Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3. Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3. ecdh Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519. Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519. ecdsa Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-4 and SEC 1, Version 2.0. Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in FIPS 186-4 and SEC 1, Version 2.0. ed25519 Package ed25519 implements the Ed25519 signature algorithm. Package ed25519 implements the Ed25519 signature algorithm. elliptic Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields. Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields. hmac Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198. Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198. internal/alias Package alias implements memory alaising tests. Package alias implements memory alaising tests. internal/bigmod internal/boring Package boring provides access to BoringCrypto implementation functions. Package boring provides access to BoringCrypto implementation functions. internal/boring/bbig internal/boring/bcache Package bcache implements a GC-friendly cache (see Cache) for BoringCrypto. Package bcache implements a GC-friendly cache (see Cache) for BoringCrypto. internal/boring/sig Package sig holds “code signatures” that can be called and will result in certain code sequences being linked into the final binary. Package sig holds “code signatures” that can be called and will result in certain code sequences being linked into the final binary. internal/edwards25519 Package edwards25519 implements group logic for the twisted Edwards curve Package edwards25519 implements group logic for the twisted Edwards curve internal/edwards25519/field Package field implements fast arithmetic modulo 2^255-19. Package field implements fast arithmetic modulo 2^255-19. internal/nistec Package nistec implements the NIST P elliptic curves from FIPS 186-4. Package nistec implements the NIST P elliptic curves from FIPS 186-4. internal/nistec/fiat internal/randutil Package randutil contains internal randomness utilities for various crypto packages. Package randutil contains internal randomness utilities for various crypto packages. md5 Package md5 implements the MD5 hash algorithm as defined in RFC 1321. Package md5 implements the MD5 hash algorithm as defined in RFC 1321. rand Package rand implements a cryptographically secure random number generator. Package rand implements a cryptographically secure random number generator. rc4 Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography. Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography. rsa Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017. Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017. sha1 Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174. Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174. sha256 Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4. Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4. sha512 Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4. Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4. subtle Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly. Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly. tls Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446. Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446. x509 Package x509 implements a subset of the X.509 standard. Package x509 implements a subset of the X.509 standard. x509/internal/macos Package macOS provides cgo-less wrappers for Core Foundation and Security.framework, similarly to how package syscall provides access to libSystem.dylib. Package macOS provides cgo-less wrappers for Core Foundation and Security.framework, similarly to how package syscall provides access to libSystem.dylib. x509/pkix Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP. Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP. database sql Package sql provides a generic interface around SQL (or SQL-like) databases. Package sql provides a generic interface around SQL (or SQL-like) databases. sql/driver Package driver defines interfaces to be implemented by database drivers as used by package sql. Package driver defines interfaces to be implemented by database drivers as used by package sql. debug buildinfo Package buildinfo provides access to information embedded in a Go binary about how it was built. Package buildinfo provides access to information embedded in a Go binary about how it was built. dwarf Package dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf. Package dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf. elf Package elf implements access to ELF object files. Package elf implements access to ELF object files. gosym Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers. Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers. macho Package macho implements access to Mach-O object files. Package macho implements access to Mach-O object files. pe Package pe implements access to PE (Microsoft Windows Portable Executable) files. Package pe implements access to PE (Microsoft Windows Portable Executable) files. plan9obj Package plan9obj implements access to Plan 9 a.out object files. Package plan9obj implements access to Plan 9 a.out object files. embed Package embed provides access to files embedded in the running Go program. Package embed provides access to files embedded in the running Go program. encoding Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations. Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations. ascii85 Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats. Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats. asn1 Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690. Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690. base32 Package base32 implements base32 encoding as specified by RFC 4648. Package base32 implements base32 encoding as specified by RFC 4648. base64 Package base64 implements base64 encoding as specified by RFC 4648. Package base64 implements base64 encoding as specified by RFC 4648. binary Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints. Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints. csv Package csv reads and writes comma-separated values (CSV) files. Package csv reads and writes comma-separated values (CSV) files. gob Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver). Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver). hex Package hex implements hexadecimal encoding and decoding. Package hex implements hexadecimal encoding and decoding. json Package json implements encoding and decoding of JSON as defined in RFC 7159. Package json implements encoding and decoding of JSON as defined in RFC 7159. pem Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail. Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail. xml Package xml implements a simple XML 1.0 parser that understands XML name spaces. Package xml implements a simple XML 1.0 parser that understands XML name spaces. errors Package errors implements functions to manipulate errors. Package errors implements functions to manipulate errors. expvar Package expvar provides a standardized interface to public variables, such as operation counters in servers. Package expvar provides a standardized interface to public variables, such as operation counters in servers. flag Package flag implements command-line flag parsing. Package flag implements command-line flag parsing. fmt Package fmt implements formatted I/O with functions analogous to C's printf and scanf. Package fmt implements formatted I/O with functions analogous to C's printf and scanf. go ast Package ast declares the types used to represent syntax trees for Go packages. Package ast declares the types used to represent syntax trees for Go packages. build Package build gathers information about Go packages. Package build gathers information about Go packages. build/constraint Package constraint implements parsing and evaluation of build constraint lines. Package constraint implements parsing and evaluation of build constraint lines. constant Package constant implements Values representing untyped Go constants and their corresponding operations. Package constant implements Values representing untyped Go constants and their corresponding operations. doc Package doc extracts source code documentation from a Go AST. Package doc extracts source code documentation from a Go AST. doc/comment Package comment implements parsing and reformatting of Go doc comments, (documentation comments), which are comments that immediately precede a top-level declaration of a package, const, func, type, or var. Package comment implements parsing and reformatting of Go doc comments, (documentation comments), which are comments that immediately precede a top-level declaration of a package, const, func, type, or var. format Package format implements standard formatting of Go source. Package format implements standard formatting of Go source. importer Package importer provides access to export data importers. Package importer provides access to export data importers. internal/gccgoimporter Package gccgoimporter implements Import for gccgo-generated object files. Package gccgoimporter implements Import for gccgo-generated object files. internal/gcimporter Package gcimporter implements Import for gc-generated object files. Package gcimporter implements Import for gc-generated object files. internal/srcimporter Package srcimporter implements importing directly from source files rather than installed packages. Package srcimporter implements importing directly from source files rather than installed packages. internal/typeparams parser Package parser implements a parser for Go source files. Package parser implements a parser for Go source files. printer Package printer implements printing of AST nodes. Package printer implements printing of AST nodes. scanner Package scanner implements a scanner for Go source text. Package scanner implements a scanner for Go source text. token Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates). Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates). types Package types declares the data types and implements the algorithms for type-checking of Go packages. Package types declares the data types and implements the algorithms for type-checking of Go packages. hash Package hash provides interfaces for hash functions. Package hash provides interfaces for hash functions. adler32 Package adler32 implements the Adler-32 checksum. Package adler32 implements the Adler-32 checksum. crc32 Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum. Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum. crc64 Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum. Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum. fnv Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo. Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo. maphash Package maphash provides hash functions on byte sequences. Package maphash provides hash functions on byte sequences. html Package html provides functions for escaping and unescaping HTML text. Package html provides functions for escaping and unescaping HTML text. template Package template (html/template) implements data-driven templates for generating HTML output safe against code injection. Package template (html/template) implements data-driven templates for generating HTML output safe against code injection. image Package image implements a basic 2-D image library. Package image implements a basic 2-D image library. color Package color implements a basic color library. Package color implements a basic color library. color/palette Package palette provides standard color palettes. Package palette provides standard color palettes. draw Package draw provides image composition functions. Package draw provides image composition functions. gif Package gif implements a GIF image decoder and encoder. Package gif implements a GIF image decoder and encoder. internal/imageutil Package imageutil contains code shared by image-related packages. Package imageutil contains code shared by image-related packages. jpeg Package jpeg implements a JPEG image decoder and encoder. Package jpeg implements a JPEG image decoder and encoder. png Package png implements a PNG image decoder and encoder. Package png implements a PNG image decoder and encoder. index suffixarray Package suffixarray implements substring search in logarithmic time using an in-memory suffix array. Package suffixarray implements substring search in logarithmic time using an in-memory suffix array. internal abi buildcfg Package buildcfg provides access to the build configuration described by the current environment. Package buildcfg provides access to the build configuration described by the current environment. bytealg cfg Package cfg holds configuration shared by the Go command and internal/testenv. Package cfg holds configuration shared by the Go command and internal/testenv. coverage coverage/calloc coverage/cformat coverage/cmerge coverage/decodecounter coverage/decodemeta coverage/encodecounter coverage/encodemeta coverage/pods coverage/rtcov coverage/slicereader coverage/slicewriter coverage/stringtab coverage/uleb128 cpu Package cpu implements processor feature detection used by the Go standard library. Package cpu implements processor feature detection used by the Go standard library. dag Package dag implements a language for expressing directed acyclic graphs. Package dag implements a language for expressing directed acyclic graphs. diff fmtsort Package fmtsort provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages. Package fmtsort provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages. fuzz Package fuzz provides common fuzzing functionality for tests built with \"go test\" and for programs that use fuzzing functionality in the testing package. Package fuzz provides common fuzzing functionality for tests built with \"go test\" and for programs that use fuzzing functionality in the testing package. goarch package goarch contains GOARCH-specific constants. package goarch contains GOARCH-specific constants. godebug Package godebug makes the settings in the $GODEBUG environment variable available to other packages. Package godebug makes the settings in the $GODEBUG environment variable available to other packages. goexperiment Package goexperiment implements support for toolchain experiments. Package goexperiment implements support for toolchain experiments. goos package goos contains GOOS-specific constants. package goos contains GOOS-specific constants. goroot goversion intern Package intern lets you make smaller comparable values by boxing a larger comparable value (such as a 16 byte string header) down into a globally unique 8 byte pointer. Package intern lets you make smaller comparable values by boxing a larger comparable value (such as a 16 byte string header) down into a globally unique 8 byte pointer. itoa lazyregexp Package lazyregexp is a thin wrapper over regexp, allowing the use of global regexp variables without forcing them to be compiled at init. Package lazyregexp is a thin wrapper over regexp, allowing the use of global regexp variables without forcing them to be compiled at init. lazytemplate Package lazytemplate is a thin wrapper over text/template, allowing the use of global template variables without forcing them to be parsed at init. Package lazytemplate is a thin wrapper over text/template, allowing the use of global template variables without forcing them to be parsed at init. nettrace Package nettrace contains internal hooks for tracing activity in the net package. Package nettrace contains internal hooks for tracing activity in the net package. obscuretestdata Package obscuretestdata contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986. Package obscuretestdata contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986. oserror Package oserror defines errors values used in the os package. Package oserror defines errors values used in the os package. pkgbits Package pkgbits implements low-level coding abstractions for Unified IR's export data format. Package pkgbits implements low-level coding abstractions for Unified IR's export data format. platform poll Package poll supports non-blocking I/O on file descriptors with polling. Package poll supports non-blocking I/O on file descriptors with polling. profile Package profile provides a representation of github.com/google/pprof/proto/profile.proto and methods to encode/decode/merge profiles in this format. Package profile provides a representation of github.com/google/pprof/proto/profile.proto and methods to encode/decode/merge profiles in this format. race Package race contains helper functions for manually instrumenting code for the race detector. Package race contains helper functions for manually instrumenting code for the race detector. reflectlite Package reflectlite implements lightweight version of reflect, not using any package except for \"runtime\" and \"unsafe\". Package reflectlite implements lightweight version of reflect, not using any package except for \"runtime\" and \"unsafe\". safefilepath Package safefilepath manipulates operating-system file paths. Package safefilepath manipulates operating-system file paths. saferio Package saferio provides I/O functions that avoid allocating large amounts of memory unnecessarily. Package saferio provides I/O functions that avoid allocating large amounts of memory unnecessarily. singleflight Package singleflight provides a duplicate function call suppression mechanism. Package singleflight provides a duplicate function call suppression mechanism. syscall/execenv syscall/unix syscall/windows syscall/windows/registry Package registry provides access to the Windows registry. Package registry provides access to the Windows registry. syscall/windows/sysdll Package sysdll is an internal leaf package that records and reports which Windows DLL names are used by Go itself. Package sysdll is an internal leaf package that records and reports which Windows DLL names are used by Go itself. sysinfo Package sysinfo implements high level hardware information gathering that can be used for debugging or information purposes. Package sysinfo implements high level hardware information gathering that can be used for debugging or information purposes. testenv Package testenv provides information about what functionality is available in different testing environments run by the Go team. Package testenv provides information about what functionality is available in different testing environments run by the Go team. testlog Package testlog provides a back-channel communication path between tests and package os, so that cmd/go can see which environment variables and files a test consults. Package testlog provides a back-channel communication path between tests and package os, so that cmd/go can see which environment variables and files a test consults. testpty Package testpty is a simple pseudo-terminal package for Unix systems, implemented by calling C functions via cgo. Package testpty is a simple pseudo-terminal package for Unix systems, implemented by calling C functions via cgo. trace txtar Package txtar implements a trivial text-based file archive format. Package txtar implements a trivial text-based file archive format. types/errors unsafeheader Package unsafeheader contains header declarations for the Go runtime's slice and string implementations. Package unsafeheader contains header declarations for the Go runtime's slice and string implementations. xcoff Package xcoff implements access to XCOFF (Extended Common Object File Format) files. Package xcoff implements access to XCOFF (Extended Common Object File Format) files. io Package io provides basic interfaces to I/O primitives. Package io provides basic interfaces to I/O primitives. fs Package fs defines basic interfaces to a file system. Package fs defines basic interfaces to a file system. ioutil Package ioutil implements some I/O utility functions. Package ioutil implements some I/O utility functions. log Package log implements a simple logging package. Package log implements a simple logging package. syslog Package syslog provides a simple interface to the system log service. Package syslog provides a simple interface to the system log service. math Package math provides basic constants and mathematical functions. Package math provides basic constants and mathematical functions. big Package big implements arbitrary-precision arithmetic (big numbers). Package big implements arbitrary-precision arithmetic (big numbers). bits Package bits implements bit counting and manipulation functions for the predeclared unsigned integer types. Package bits implements bit counting and manipulation functions for the predeclared unsigned integer types. cmplx Package cmplx provides basic constants and mathematical functions for complex numbers. Package cmplx provides basic constants and mathematical functions for complex numbers. rand Package rand implements pseudo-random number generators unsuitable for security-sensitive work. Package rand implements pseudo-random number generators unsuitable for security-sensitive work. mime Package mime implements parts of the MIME spec. Package mime implements parts of the MIME spec. multipart Package multipart implements MIME multipart parsing, as defined in RFC 2046. Package multipart implements MIME multipart parsing, as defined in RFC 2046. quotedprintable Package quotedprintable implements quoted-printable encoding as specified by RFC 2045. Package quotedprintable implements quoted-printable encoding as specified by RFC 2045. net Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets. Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets. http Package http provides HTTP client and server implementations. Package http provides HTTP client and server implementations. http/cgi Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875. Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875. http/cookiejar Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar. Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar. http/fcgi Package fcgi implements the FastCGI protocol. Package fcgi implements the FastCGI protocol. http/httptest Package httptest provides utilities for HTTP testing. Package httptest provides utilities for HTTP testing. http/httptrace Package httptrace provides mechanisms to trace the events within HTTP client requests. Package httptrace provides mechanisms to trace the events within HTTP client requests. http/httputil Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package. Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package. http/internal Package internal contains HTTP internals shared by net/http and net/http/httputil. Package internal contains HTTP internals shared by net/http and net/http/httputil. http/internal/ascii http/internal/testcert Package testcert contains a test-only localhost certificate. Package testcert contains a test-only localhost certificate. http/pprof Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool. Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool. internal/socktest Package socktest provides utilities for socket testing. Package socktest provides utilities for socket testing. mail Package mail implements parsing of mail messages. Package mail implements parsing of mail messages. netip Package netip defines an IP address type that's a small value type. Package netip defines an IP address type that's a small value type. rpc Package rpc provides access to the exported methods of an object across a network or other I/O connection. Package rpc provides access to the exported methods of an object across a network or other I/O connection. rpc/jsonrpc Package jsonrpc implements a JSON-RPC 1.0 ClientCodec and ServerCodec for the rpc package. Package jsonrpc implements a JSON-RPC 1.0 ClientCodec and ServerCodec for the rpc package. smtp Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321. Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321. textproto Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP. Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP. url Package url parses URLs and implements query escaping. Package url parses URLs and implements query escaping. os Package os provides a platform-independent interface to operating system functionality. Package os provides a platform-independent interface to operating system functionality. exec Package exec runs external commands. Package exec runs external commands. exec/internal/fdtest Package fdtest provides test helpers for working with file descriptors across exec. Package fdtest provides test helpers for working with file descriptors across exec. signal Package signal implements access to incoming signals. Package signal implements access to incoming signals. user Package user allows user account lookups by name or id. Package user allows user account lookups by name or id. path Package path implements utility routines for manipulating slash-separated paths. Package path implements utility routines for manipulating slash-separated paths. filepath Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths. Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths. plugin Package plugin implements loading and symbol resolution of Go plugins. Package plugin implements loading and symbol resolution of Go plugins. reflect Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types. Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types. internal/example1 internal/example2 regexp Package regexp implements regular expression search. Package regexp implements regular expression search. syntax Package syntax parses regular expressions into parse trees and compiles parse trees into programs. Package syntax parses regular expressions into parse trees and compiles parse trees into programs. runtime Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines. Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines. cgo Package cgo contains runtime support for code generated by the cgo tool. Package cgo contains runtime support for code generated by the cgo tool. coverage debug Package debug contains facilities for programs to debug themselves while they are running. Package debug contains facilities for programs to debug themselves while they are running. internal/atomic Package atomic provides atomic operations, independent of sync/atomic, to the runtime. Package atomic provides atomic operations, independent of sync/atomic, to the runtime. internal/math internal/startlinetest Package startlinetest contains helpers for runtime_test.TestStartLineAsm. Package startlinetest contains helpers for runtime_test.TestStartLineAsm. internal/sys package sys contains system- and configuration- and architecture-specific constants used by the runtime. package sys contains system- and configuration- and architecture-specific constants used by the runtime. internal/syscall Package syscall provides the syscall primitives required for the runtime. Package syscall provides the syscall primitives required for the runtime. metrics Package metrics provides a stable interface to access implementation-defined metrics exported by the Go runtime. Package metrics provides a stable interface to access implementation-defined metrics exported by the Go runtime. pprof Package pprof writes runtime profiling data in the format expected by the pprof visualization tool. Package pprof writes runtime profiling data in the format expected by the pprof visualization tool. race Package race implements data race detection logic. Package race implements data race detection logic. race/internal/amd64v1 trace Package trace contains facilities for programs to generate traces for the Go execution tracer. Package trace contains facilities for programs to generate traces for the Go execution tracer. sort Package sort provides primitives for sorting slices and user-defined collections. Package sort provides primitives for sorting slices and user-defined collections. strconv Package strconv implements conversions to and from string representations of basic data types. Package strconv implements conversions to and from string representations of basic data types. strings Package strings implements simple functions to manipulate UTF-8 encoded strings. Package strings implements simple functions to manipulate UTF-8 encoded strings. sync Package sync provides basic synchronization primitives such as mutual exclusion locks. Package sync provides basic synchronization primitives such as mutual exclusion locks. atomic Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms. Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms. syscall Package syscall contains an interface to the low-level operating system primitives. Package syscall contains an interface to the low-level operating system primitives. js Package js gives access to the WebAssembly host environment when using the js/wasm architecture. Package js gives access to the WebAssembly host environment when using the js/wasm architecture. testing Package testing provides support for automated testing of Go packages. Package testing provides support for automated testing of Go packages. fstest Package fstest implements support for testing implementations and users of file systems. Package fstest implements support for testing implementations and users of file systems. internal/testdeps Package testdeps provides access to dependencies needed by test execution. Package testdeps provides access to dependencies needed by test execution. iotest Package iotest implements Readers and Writers useful mainly for testing. Package iotest implements Readers and Writers useful mainly for testing. quick Package quick implements utility functions to help with black box testing. Package quick implements utility functions to help with black box testing. text scanner Package scanner provides a scanner and tokenizer for UTF-8-encoded text. Package scanner provides a scanner and tokenizer for UTF-8-encoded text. tabwriter Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text. Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text. template Package template implements data-driven templates for generating textual output. Package template implements data-driven templates for generating textual output. template/parse Package parse builds parse trees for templates as defined by text/template and html/template. Package parse builds parse trees for templates as defined by text/template and html/template. time Package time provides functionality for measuring and displaying time. Package time provides functionality for measuring and displaying time. tzdata Package tzdata provides an embedded copy of the timezone database. Package tzdata provides an embedded copy of the timezone database. unicode Package unicode provides data and functions to test some properties of Unicode code points. Package unicode provides data and functions to test some properties of Unicode code points. utf16 Package utf16 implements encoding and decoding of UTF-16 sequences. Package utf16 implements encoding and decoding of UTF-16 sequences. utf8 Package utf8 implements functions and constants to support text encoded in UTF-8. Package utf8 implements functions and constants to support text encoded in UTF-8. unsafe Package unsafe contains operations that step around the type safety of Go programs. Package unsafe contains operations that step around the type safety of Go programs. Click to show internal directories. Click to hide internal directories.\n\nJump to Close\n\nKeyboard shortcuts ? : This menu / : Search site f or to y or URL Close\n\ngo.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. Okay\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:59.200Z","totalSectionsIncluded":4,"totalCodeBlocksIncluded":0,"totalLines":9,"estimatedTokens":10227}}457{"id":"doc-prisma_skills_prisma_documentation-99364eb7","source":"documentation","title":"Prisma Skills | Prisma Documentation","url":"https://www.prisma.io/docs/ai/tools/skills","text":"For the complete Prisma documentation index optimized for AI agents, see https://www.prisma.io/docs/llms.txt. A markdown version of every docs page is available by appending .md to its URL.\n\nThe Prisma 8 Release Candidate is available.Explore the next Prisma ORM workflow.Read the docs\n\nExample:\n```text\nbunx skills add prisma/skills\n```\n\nExample:\n```text\nbunx skills add prisma/skills --skill prisma-client-api\n```\n\nExample:\n```text\nbunx skills add prisma/prisma/skills\n```\n\nExample:\n```text\nbunx skills add prisma/skills --list\n```\n\nExample:\n```text\nbunx skills list\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:08.276Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":30,"estimatedTokens":147}}458{"id":"doc-git_git_hash_object_documentation-7dbf53c2","source":"documentation","title":"Git - git-hash-object Documentation","url":"http://git-scm.com/docs/git-hash-object/fr","text":"Example:\n```text\ngit hash-object [-t <type>] [-w] [--path=<fichier> | --no-filters]\n\t\t[--stdin [--literally]] [--] <fichier>…\ngit hash-object [-t <type>] [-w] --stdin-paths [--no-filters]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:45.157Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":52}}459{"id":"doc-google_protobuf_reflection_descriptorvalidatione-a02b4a34","source":"documentation","title":"Google.Protobuf.Reflection.DescriptorValidationException Class Reference","url":"https://protobuf.dev/reference/csharp/api-docs/class/google/protobuf/reflection/descriptor-validation-exception.html","text":"Thrown when building descriptors fails because the source DescriptorProtos are not valid.\n\nProperties Description string A human-readable description of the error. ProblemSymbolName String The full name of the descriptor where the error occurred.\n\nDescription string Description A human-readable description of the error. (The Message property is made up of the descriptor's name and this description.)\n\nProblemSymbolName String ProblemSymbolName The full name of the descriptor where the error occurred.\n\nExample:\n```text\nstring Description\n```\n\nExample:\n```text\nString ProblemSymbolName\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:09.200Z","totalSectionsIncluded":4,"totalCodeBlocksIncluded":2,"totalLines":19,"estimatedTokens":152}}460{"id":"doc-storage_qdrant-24160518","source":"documentation","title":"Storage - Qdrant","url":"https://qdrant.tech/documentation/manage-data/storage/","text":"Example:\n```http\nPUT /collections/{collection_name}\n{\n \"vectors\": {\n \"size\": 768,\n \"distance\": \"Cosine\",\n \"memory\": \"cold\"\n }\n}\n```\n\nExample:\n```python\nfrom qdrant_client import QdrantClient, models\n\nclient.create_collection(\n collection_name=\"{collection_name}\",\n vectors_config=models.VectorParams(\n size=768, distance=models.Distance.COSINE, memory=models.Memory.COLD\n ),\n)\n```\n\nExample:\n```typescript\nimport { QdrantClient } from \"@qdrant/js-client-rest\";\n\nclient.createCollection(\"{collection_name}\", {\n vectors: {\n size: 768,\n distance: \"Cosine\",\n memory: \"cold\",\n },\n});\n```\n\nExample:\n```rust\nuse qdrant_client::qdrant::{CreateCollectionBuilder, Distance, Memory, VectorParamsBuilder};\nuse qdrant_client::Qdrant;\n\nclient\n .create_collection(\n CreateCollectionBuilder::new(\"{collection_name}\")\n .vectors_config(VectorParamsBuilder::new(768, Distance::Cosine).memory(Memory::Cold)),\n )\n .await?;\n```\n\nExample:\n```java\nimport io.qdrant.client.QdrantClient;\nimport io.qdrant.client.QdrantGrpcClient;\nimport io.qdrant.client.grpc.Collections.Distance;\nimport io.qdrant.client.grpc.Collections.Memory;\nimport io.qdrant.client.grpc.Collections.VectorParams;\n\nclient\n .createCollectionAsync(\n \"{collection_name}\",\n VectorParams.newBuilder()\n .setSize(768)\n .setDistance(Distance.Cosine)\n .setMemory(Memory.Cold)\n .build())\n .get();\n```\n\nExample:\n```csharp\nusing Qdrant.Client;\nusing Qdrant.Client.Grpc;\n\nawait client.CreateCollectionAsync(\n\t\"{collection_name}\",\n\tnew VectorParams\n\t{\n\t\tSize = 768,\n\t\tDistance = Distance.Cosine,\n\t\tMemory = Memory.Cold\n\t}\n);\n```\n\nExample:\n```go\nimport (\n\t\"context\"\n\n\t\"github.com/qdrant/go-client/qdrant\"\n)\n\nclient.CreateCollection(context.Background(), &qdrant.CreateCollection{\n\tCollectionName: \"{collection_name}\",\n\tVectorsConfig: qdrant.NewVectorsConfig(&qdrant.VectorParams{\n\t\tSize: 768,\n\t\tDistance: qdrant.Distance_Cosine,\n\t\tMemory: qdrant.Memory_Cold.Enum(),\n\t}),\n})\n```\n\nExample:\n```http\nPUT /collections/{collection_name}\n{\n \"vectors\": {\n \"size\": 768,\n \"distance\": \"Cosine\"\n },\n \"optimizers_config\": {\n \"indexing_threshold\": 20000\n }\n}\n```\n\nExample:\n```python\nfrom qdrant_client import QdrantClient, models\n\nclient = QdrantClient(url=\"http://localhost:6333\")\n\nclient.create_collection(\n collection_name=\"{collection_name}\",\n vectors_config=models.VectorParams(size=768, distance=models.Distance.COSINE),\n optimizers_config=models.OptimizersConfigDiff(indexing_threshold=20000),\n)\n```\n\nExample:\n```typescript\nimport { QdrantClient } from \"@qdrant/js-client-rest\";\n\nconst client = new QdrantClient({ host: \"localhost\", port: 6333 });\n\nclient.createCollection(\"{collection_name}\", {\n vectors: {\n size: 768,\n distance: \"Cosine\",\n },\n optimizers_config: {\n indexing_threshold: 20000,\n },\n});\n```\n\nExample:\n```rust\nuse qdrant_client::qdrant::{\n CreateCollectionBuilder, Distance, OptimizersConfigDiffBuilder, VectorParamsBuilder,\n};\nuse qdrant_client::Qdrant;\n\nlet client = Qdrant::from_url(\"http://localhost:6334\").build()?;\n\nclient\n .create_collection(\n CreateCollectionBuilder::new(\"{collection_name}\")\n .vectors_config(VectorParamsBuilder::new(768, Distance::Cosine))\n .optimizers_config(OptimizersConfigDiffBuilder::default().indexing_threshold(20000)),\n )\n .await?;\n```\n\nExample:\n```java\nimport io.qdrant.client.QdrantClient;\nimport io.qdrant.client.QdrantGrpcClient;\nimport io.qdrant.client.grpc.Collections.CreateCollection;\nimport io.qdrant.client.grpc.Collections.Distance;\nimport io.qdrant.client.grpc.Collections.OptimizersConfigDiff;\nimport io.qdrant.client.grpc.Collections.VectorParams;\nimport io.qdrant.client.grpc.Collections.VectorsConfig;\n\nQdrantClient client =\n new QdrantClient(QdrantGrpcClient.newBuilder(\"localhost\", 6334, false).build());\n\nclient\n .createCollectionAsync(\n CreateCollection.newBuilder()\n .setCollectionName(\"{collection_name}\")\n .setVectorsConfig(\n VectorsConfig.newBuilder()\n .setParams(\n VectorParams.newBuilder()\n .setSize(768)\n .setDistance(Distance.Cosine)\n .build())\n .build())\n .setOptimizersConfig(\n OptimizersConfigDiff.newBuilder().setIndexingThreshold(20000).build())\n .build())\n .get();\n```\n\nExample:\n```csharp\nusing Qdrant.Client;\nusing Qdrant.Client.Grpc;\n\nvar client = new QdrantClient(\"localhost\", 6334);\n\nawait client.CreateCollectionAsync(\n\tcollectionName: \"{collection_name}\",\n\tvectorsConfig: new VectorParams { Size = 768, Distance = Distance.Cosine },\n\toptimizersConfig: new OptimizersConfigDiff { IndexingThreshold = 20000 }\n);\n```\n\nExample:\n```go\nimport (\n\t\"context\"\n\n\t\"github.com/qdrant/go-client/qdrant\"\n)\n\nclient, err := qdrant.NewClient(&qdrant.Config{\n\tHost: \"localhost\",\n\tPort: 6334,\n})\n\nclient.CreateCollection(context.Background(), &qdrant.CreateCollection{\n\tCollectionName: \"{collection_name}\",\n\tVectorsConfig: qdrant.NewVectorsConfig(&qdrant.VectorParams{\n\t\tSize: 768,\n\t\tDistance: qdrant.Distance_Cosine,\n\t}),\n\tOptimizersConfig: &qdrant.OptimizersConfigDiff{\n\t\tIndexingThreshold: qdrant.PtrOf(uint64(20000)),\n\t},\n})\n```\n\nExample:\n```http\nPUT /collections/{collection_name}\n{\n \"vectors\": {\n \"size\": 768,\n \"distance\": \"Cosine\",\n \"memory\": \"cold\"\n },\n \"hnsw_config\": {\n \"memory\": \"cold\"\n }\n}\n```\n\nExample:\n```python\nfrom qdrant_client import QdrantClient, models\n\nclient.create_collection(\n collection_name=\"{collection_name}\",\n vectors_config=models.VectorParams(size=768, distance=models.Distance.COSINE, memory=models.Memory.COLD),\n hnsw_config=models.HnswConfigDiff(memory=models.Memory.COLD),\n)\n```\n\nExample:\n```typescript\nimport { QdrantClient } from \"@qdrant/js-client-rest\";\n\nclient.createCollection(\"{collection_name}\", {\n vectors: {\n size: 768,\n distance: \"Cosine\",\n memory: \"cold\",\n },\n hnsw_config: {\n memory: \"cold\",\n },\n});\n```\n\nExample:\n```rust\nuse qdrant_client::qdrant::{\n CreateCollectionBuilder, Distance, HnswConfigDiffBuilder, Memory,\n VectorParamsBuilder,\n};\nuse qdrant_client::Qdrant;\n\nclient\n .create_collection(\n CreateCollectionBuilder::new(\"{collection_name}\")\n .vectors_config(VectorParamsBuilder::new(768, Distance::Cosine).memory(Memory::Cold))\n .hnsw_config(HnswConfigDiffBuilder::default().memory(Memory::Cold)),\n )\n .await?;\n```\n\nExample:\n```java\nimport io.qdrant.client.QdrantClient;\nimport io.qdrant.client.QdrantGrpcClient;\nimport io.qdrant.client.grpc.Collections.CreateCollection;\nimport io.qdrant.client.grpc.Collections.Distance;\nimport io.qdrant.client.grpc.Collections.HnswConfigDiff;\nimport io.qdrant.client.grpc.Collections.Memory;\nimport io.qdrant.client.grpc.Collections.VectorParams;\nimport io.qdrant.client.grpc.Collections.VectorsConfig;\n\nclient\n .createCollectionAsync(\n CreateCollection.newBuilder()\n .setCollectionName(\"{collection_name}\")\n .setVectorsConfig(\n VectorsConfig.newBuilder()\n .setParams(\n VectorParams.newBuilder()\n .setSize(768)\n .setDistance(Distance.Cosine)\n .setMemory(Memory.Cold)\n .build())\n .build())\n .setHnswConfig(HnswConfigDiff.newBuilder().setMemory(Memory.Cold).build())\n .build())\n .get();\n```\n\nExample:\n```csharp\nusing Qdrant.Client;\nusing Qdrant.Client.Grpc;\n\nawait client.CreateCollectionAsync(\n\tcollectionName: \"{collection_name}\",\n\tvectorsConfig: new VectorParams { Size = 768, Distance = Distance.Cosine, Memory = Memory.Cold },\n\thnswConfig: new HnswConfigDiff { Memory = Memory.Cold }\n);\n```\n\nExample:\n```go\nimport (\n\t\"context\"\n\n\t\"github.com/qdrant/go-client/qdrant\"\n)\n\nclient.CreateCollection(context.Background(), &qdrant.CreateCollection{\n\tCollectionName: \"{collection_name}\",\n\tVectorsConfig: qdrant.NewVectorsConfig(&qdrant.VectorParams{\n\t\tSize: 768,\n\t\tDistance: qdrant.Distance_Cosine,\n\t\tMemory: qdrant.Memory_Cold.Enum(),\n\t}),\n\tHnswConfig: &qdrant.HnswConfigDiff{\n\t\tMemory: qdrant.Memory_Cold.Enum(),\n\t},\n})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:32.567Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":21,"totalLines":357,"estimatedTokens":2111}}461{"id":"doc-multiple_kubernetes_clusters_for_auto_devops_git-79de2c4a","source":"documentation","title":"Multiple Kubernetes clusters for Auto DevOps | GitLab Docs","url":"https://docs.gitlab.com/topics/autodevops/multiple_clusters_auto_devops/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationGetting startedTutorialsCI/CD YAML syntax referenceRunnersPipelinesJobsCI/CD componentsCI/CD inputsCI/CD variablesPipeline securityGitLab Secrets ManagerExternal secretsDebuggingAuto DevOpsRequirementsStagesCustomizeCI/CD variablesMultiple Kubernetes clustersCanary deploymentsUpgrade PostgreSQLPrepare for deploymentUpgrade Auto Deploy dependenciesDeploy to GKEDeploy to EKSDeploy to ECSDeploy to EC2TroubleshootingTestingCI/CD sustainabilityGoogle Cloud integrationMigrate to GitLab CI/CDExternal repository integrationsMobile DevOpsSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Use CI/CD to build your … /Auto DevOps /Customize /Multiple Kubernetes clustersHelp us learn about your current experience with the documentation. Take the survey.Multiple Kubernetes clusters for Auto , Premium, , GitLab Self-Managed, GitLab DedicatedWhen using Auto DevOps, you can deploy different environments to different Kubernetes clusters.The Deploy Job template used by Auto DevOps defines three environment / (every environment starting with review/)stagingproductionThese environments are tied to jobs using Auto Deploy, so they must have different deployment domains. You must define separate KUBE_CONTEXT and KUBE_INGRESS_BASE_DOMAIN variables for each of the three environments.Deploy to different clustersTo deploy your environments to different Kubernetes Kubernetes clusters with OpenTofu and GitLab.Associate the clusters to your a GitLab agent for Kubernetes on each cluster.Configure each agent to access your project.Install NGINX Ingress Controller in each cluster. Save the IP address and Kubernetes namespace for the next step.Configure the Auto DevOps CI/CD Pipeline variablesSet up a KUBE_CONTEXT variable for each environment. The value must point to the agent of the relevant cluster.Set up a KUBE_INGRESS_BASE_DOMAIN. You must configure the base domain for each environment to point to the Ingress of the relevant cluster.Add a KUBE_NAMESPACE variable with a value of the Kubernetes namespace you want your deployments to target. You can scope the variable to multiple environments.For deprecated, certificate-based to the project and select Operate > Kubernetes clusters from the left sidebar.Set the environment scope of each cluster.For each cluster, add a domain based on its Ingress IP address.Cluster environment scope is not respected when checking for active Kubernetes clusters. For a multi-cluster setup to work with Auto DevOps, you must create a fallback cluster with Cluster environment scope set to *. You can set any of the clusters you’ve already added as a fallback cluster.Example configurationsCluster nameCluster environment scopeKUBE_INGRESS_BASE_DOMAIN valueKUBE CONTEXT valueVariable environment scopeNotesreviewreview/*review.example.compath/to/project:review-agentreview/*A review cluster that runs all review apps.stagingstagingstaging.example.compath/to/project:staging-agentstagingOptional. A staging cluster that runs the deployments of the staging environments. You must enable it first.productionproductionexample.compath/to/project:production-agentproductionA production cluster that runs the production environment deployments. You can use incremental rollouts.Test your configurationAfter completing configuration, test your setup by creating a merge request. Verify whether your application deployed as a Review App in the Kubernetes cluster with the review/* environment scope. Similarly, check the other environments.Deploy to different clustersExample configurationsTest your configuration\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.674Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":975}}462{"id":"doc-danger_bot_gitlab_docs-403126a0","source":"documentation","title":"Danger bot | GitLab Docs","url":"https://docs.gitlab.com/development/dangerbot/","text":"Contribute to a GitLab contributionArchitectureDevelopment Rake tasksDevelopment processesAccessing session dataAI featuresAvoiding required stopsBackwards compatibilityChangelog entriesChatOps on GitLab.comCloud ConnectorCode review guidelinesDanger botData deletion guidelinesDependenciesDeprecation guidelinesEE featuresEmailsExperimentsFeature categorizationFeatures in /gitlab-org/components/danger-review/danger-review@1.2.0 if: $CI_SERVER_HOST == \"gitlab.com\"Create a Project access tokens with the api scope, Developer permission (so that it can add labels), and no expiration date (which actually means one year).Add the token as a CI/CD project variable named DANGER_GITLAB_API_TOKEN.You should add the ~“Danger bot” label to the merge request before sending it for review.Current usesHere is a (non-exhaustive) list of the kinds of things Danger has been used for at GitLab so styleDatabase reviewDocumentation reviewMerge request metricsReviewer rouletteSingle codebase effortKnown issuesWhen you work on a personal fork, Danger is run but its output is not added to a merge request comment and labels are not applied. This happens because the secret variable from the canonical project is not shared to forks.The best and recommended approach is to work from the community forks, where Danger is already configured.Configuring Danger for personal forksContributors can configure Danger for their forks with the following a personal API token that has the api scope set (don’t forget to copy it to the clipboard).In your fork, add a project CI/CD variable called DANGER_GITLAB_API_TOKEN with the token copied in the previous step.Make the variable masked so it doesn’t show up in the job logs. The variable cannot be protected, because it needs to be present for all branches.Danger comments in merge requestsAdvantagesDisadvantagesRun Danger locallyOperationDevelopment guidelinesWhen to use DangerImplementation detailsAdding labels via DangerShared rules and pluginsEnable Danger on a projectCurrent usesKnown issuesConfiguring Danger for personal forks\n\nExample:\n```shell\nbin/rake danger_local\n```\n\nExample:\n```ruby\nrequire \"gitlab-dangerfiles\"\n\nGitlab::Dangerfiles.for_project(self, &:import_defaults)\n```\n\nExample:\n```yaml\ninclude:\n - component: ${CI_SERVER_FQDN}/gitlab-org/components/danger-review/danger-review@1.2.0\n rules:\n - if: $CI_SERVER_HOST == \"gitlab.com\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.676Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":23,"estimatedTokens":603}}463{"id":"doc-dependencies_gitlab_docs-3196a9dd","source":"documentation","title":"Dependencies | GitLab Docs","url":"https://docs.gitlab.com/development/dependencies/","text":"Contribute to a GitLab contributionArchitectureDevelopment Rake tasksDevelopment processesAccessing session dataAI featuresAvoiding required stopsBackwards compatibilityChangelog entriesChatOps on GitLab.comCloud ConnectorCode review guidelinesDanger botData deletion guidelinesDependenciesDeprecation guidelinesEE featuresEmailsExperimentsFeature categorizationFeatures in .gitlab directoryFeature flags for GitLab developmentFIPS complianceFramework - DeclarativePolicyGitLab Dedicated featuresGotchasImage scalingIssues workflowInteracting componentsLabelsLicensingMaintenance modeMerge request conceptsMerge request workflowProfilingRails EndpointsRails initializersRails upgrade guidelinesReusing AbstractionsRenaming featuresRepository mirroringRuby upgrade guidelinesRuby 3 gotchasSecure partner onboarding processShared filesStorageTesting standards and stylesTesting (contract)End-to-end TestingTranslate GitLabURLs in GitLabWebhooksDevelopment style guidesFeature developmentGitLab project pipelinesContribute to GitLab RunnerContribute to GitLab PagesContribute to GitLab DistributionContribute to documentationGitLab Docs /Contribute /Contribute to GitLab /Development processes /DependenciesHelp us learn about your current experience with the documentation. Take the survey.DependenciesDependency updatesWe use the Renovate GitLab Bot to automatically create merge requests for updating (some) Node and Ruby dependencies in several projects. You can find the up-to-date list of projects managed by the renovate bot in the project’s README.Some key dependencies updated using renovate are:@gitlab/ui@gitlab/svgs@gitlab/eslint-pluginAnd any other package in the @gitlab/ scopeWe have the goal of updating all dependencies with renovate.Updating dependencies automatically has several benefits, have a look at this example MR.MRs are created automatically when new versions are released.MRs can easily be rebased and updated by just checking a checkbox in the MR description.MRs contain changelog summaries and links to compare the different package versions.MRs can be assigned to people directly responsible for the dependencies.Community contributions updating dependenciesIt is okay to reject Community Contributions that solely bump dependencies. Simple dependency updates are better done automatically for the reasons provided above. If a community contribution needs to be rebased, runs into conflicts, or goes stale, the effort required to instruct the contributor to correct it often outweighs the benefits.If a dependency update is accompanied with significant migration efforts, due to major version updates, a community contribution is acceptable.Here is a message you can use to explain to community contributors as to why we reject simple CONTRIBUTOR! Thank you very much for this contribution. It seems like you are doing a \"simple\" dependency update. If a dependency update is as simple as increasing the version number, we'd like a Bot to do this to save you and ourselves some time. This has certain benefits as outlined in our <a href=\"https://docs.gitlab.com/development/fe_guide/dependencies/#updating-dependencies\">Frontend development guidelines</a>. You might find that we do not currently update DEPENDENCY automatically, but we are planning to do so in [the near future](https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/21). Thank you for understanding, I will close this merge request. /closeDependency updatesCommunity contributions updating dependencies\n\nExample:\n```markdown\nHello CONTRIBUTOR!\n\nThank you very much for this contribution. It seems like you are doing a \"simple\" dependency update.\n\nIf a dependency update is as simple as increasing the version number, we'd like a Bot to do this to save you and ourselves some time.\n\nThis has certain benefits as outlined in our <a href=\"https://docs.gitlab.com/development/fe_guide/dependencies/#updating-dependencies\">Frontend development guidelines</a>.\n\nYou might find that we do not currently update DEPENDENCY automatically, but we are planning to do so in [the near future](https://gitlab.com/gitlab-org/frontend/rfcs/-/issues/21).\n\nThank you for understanding, I will close this merge request.\n/close\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.679Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":19,"estimatedTokens":1055}}464{"id":"doc-security_scanner_integration_gitlab_docs-de022e1b","source":"documentation","title":"Security scanner integration | GitLab Docs","url":"https://docs.gitlab.com/development/integrations/secure/","text":"Example:\n```yaml\nmysec_sast:\n image: registry.gitlab.com/secure/mysec\n artifacts:\n reports:\n sast: gl-sast-report.json\n```\n\nExample:\n```yaml\nmysec_dependency_scanning:\n rules:\n - if: $DEPENDENCY_SCANNING_DISABLED == 'true'\n when: never\n - if: $GITLAB_FEATURES =~ /\\bdependency_scanning\\b/\n exists:\n - '**/*.java'\n```\n\nExample:\n```shell\n$ gem install gitlab-security_report_schemas -v 0.1.2.min15.0.0.max15.2.1\nSuccessfully installed gitlab-security_report_schemas-0.1.2.min15.0.0.max15.2.1\nParsing documentation for gitlab-security_report_schemas-0.1.2.min15.0.0.max15.2.1\nDone installing documentation for gitlab-security_report_schemas after 0 seconds\n1 gem installed\n\n$ security-report-schemas\nSecurityReportSchemas 0.1.2.min15.0.0.max15.2.1.\nSupported schema versions: [\"15.0.0\", \"15.0.1\", \"15.0.2\", \"15.0.4\", \"15.0.5\", \"15.0.6\", \"15.0.7\", \"15.1.0\", \"15.1.1\", \"15.1.2\", \"15.1.3\", \"15.1.4\", \"15.2.0\", \"15.2.1\"]\n\nUsage: security-report-schemas REPORT_FILE_PATH [options]\n -r, --report_type=REPORT_TYPE Override the report type\n -w, --warnings Prints the warning messages\n\n$ security-report-schemas ~/Downloads/gl-dependency-scanning-report.json\nValidating dependency_scanning v15.0.0 against schema v15.0.0\nContent is invalid\n* root is missing required keys: dependency_files\n```\n\nExample:\n```json\n{\n \"location\": {\n \"dependency\": {\n \"package\": {\n \"name\": \"debug\"\n }\n }\n },\n \"name\": \"Regular Expression Denial of Service\",\n \"message\": \"Regular Expression Denial of Service in debug\",\n \"description\": \"The debug module is vulnerable to regular expression denial of service\n when untrusted user input is passed into the `o` formatter.\n It takes around 50k characters to block for 2 seconds making this a low severity issue.\"\n}\n```\n\nExample:\n```json\n{\n \"file\": \"client/package.json\",\n \"dependency\": {\n \"package\": {\n \"name\": \"handlebars\"\n },\n \"version\": \"4.0.11\"\n }\n}\n```\n\nExample:\n```json\n{\n \"dependency\": {\n \"package\": {\n \"name\": \"glib2.0\"\n },\n },\n \"version\": \"2.50.3-2+deb9u1\",\n \"operating_system\": \"debian:9\",\n \"image\": \"registry.gitlab.com/example/app:latest\"\n}\n```\n\nExample:\n```json\n{\n \"file\": \"src/main/java/com/gitlab/example/App.java\",\n \"start_line\": 41,\n \"end_line\": 41,\n \"class\": \"com.gitlab.security_products.tests.App\",\n \"method\": \"generateSecretToken1\"\n}\n```\n\nExample:\n```json\n{\n \"vulnerabilities\": [\n {\n \"category\": \"dependency_scanning\",\n \"name\": \"Regular Expression Denial of Service\",\n \"id\": \"123e4567-e89b-12d3-a456-426655440000\",\n \"solution\": \"Upgrade to new versions.\",\n \"scanner\": {\n \"id\": \"gemnasium\",\n \"name\": \"Gemnasium\"\n },\n \"identifiers\": [\n {\n \"type\": \"gemnasium\",\n \"name\": \"Gemnasium-642735a5-1425-428d-8d4e-3c854885a3c9\",\n \"value\": \"642735a5-1425-428d-8d4e-3c854885a3c9\"\n }\n ]\n }\n ],\n \"remediations\": [\n {\n \"fixes\": [\n {\n \"id\": \"123e4567-e89b-12d3-a456-426655440000\"\n }\n ],\n \"summary\": \"Upgrade to new version\",\n \"diff\": \"ZGlmZiAtLWdpdCBhL3lhcm4ubG9jayBiL3lhcm4ubG9jawppbmRleCAwZWNjOTJmLi43ZmE0NTU0IDEwMDY0NAotLS0gYS95Y==\"\n }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:12.858Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":8,"totalLines":135,"estimatedTokens":885}}465{"id":"doc-glab_ci_trigger_gitlab_docs-b8b7346c","source":"documentation","title":"glab ci trigger | GitLab Docs","url":"https://docs.gitlab.com/cli/ci/trigger/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Authenticate with GitLabCommandsglab aliasglab apiglab artifact-registryglab attestationglab authglab changelogglab check-updateglab ciglab ci cancelglab ci configglab ci deleteglab ci getglab ci lintglab ci listglab ci retryglab ci runglab ci run-trigglab ci statusglab ci traceglab ci triggerglab ci viewglab clusterglab completionglab configglab container-registryglab dependency-firewallglab deploy-keyglab duoglab gpg-keyglab incidentglab issueglab iterationglab jobglab labelglab mcpglab milestoneglab mrglab opentofuglab orbitglab packagesglab releaseglab repoglab runnerglab runner-controllerglab scheduleglab searchglab securefileglab securityglab skillsglab snippetglab ssh-keyglab stackglab todoglab tokenglab userglab variableglab versionglab whatsnewglab work-itemsEditor and IDE extensionsGitLab Docs /Extend /GitLab CLI (glab) /Commands /glab ci /glab ci triggerHelp us learn about your current experience with the documentation. Take the survey.glab ci triggerTrigger a manual CI/CD job.SynopsisWithout a job argument, you can select one interactively. You can trigger only jobs with manual status.glab ci trigger [<job-id | job-name>] [flags]Examples# Interactively select a job to trigger glab ci trigger # Trigger a manual job by ID glab ci trigger 224356863 # Trigger a manual job by name glab ci trigger lint Options -b, --branch string The branch to search for the job. Defaults to the current branch. -p, --pipeline-id int The pipeline ID to search for the job.Options inherited from parent commands -h, --help Show help for this command. -R, --repo string Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.SynopsisExamplesOptionsOptions inherited from parent commands\n\nExample:\n```plaintext\nglab ci trigger [<job-id | job-name>] [flags]\n```\n\nExample:\n```console\n# Interactively select a job to trigger\nglab ci trigger\n\n# Trigger a manual job by ID\nglab ci trigger 224356863\n\n# Trigger a manual job by name\nglab ci trigger lint\n```\n\nExample:\n```plaintext\n-b, --branch string The branch to search for the job. Defaults to the current branch.\n -p, --pipeline-id int The pipeline ID to search for the job.\n```\n\nExample:\n```plaintext\n-h, --help Show help for this command.\n -R, --repo string Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.325Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":32,"estimatedTokens":648}}466{"id":"doc-consider_upgrade_downtime_options_gitlab_docs-61d1edc6","source":"documentation","title":"Consider upgrade downtime options | GitLab Docs","url":"https://docs.gitlab.com/update/downtime_options/","text":"RequirementsInstallation methodsCloud providersOffline GitLabReference architecturesSteps after installingUpgrade GitLabBefore you upgradeUpgrade pathsDeprecations by versionDowntime optionsGitLab upgrade notesGitLab chart upgrade notesBackground migrationsUpgrade a GitLab instanceTroubleshooting and rolling backReleases and maintenanceOther upgrade pathsInstall GitLab RunnerConfigure GitLab RunnerGitLab Docs /Install /Upgrade GitLab /Before you upgrade /Downtime optionsHelp us learn about your current experience with the documentation. Take the survey.Consider upgrade downtime , Premium, Self-ManagedDowntime options during an upgrade depend on your instance must upgrade with downtime. Users see a Deploy in progress message or a 502 error.Multi-node between upgrading with or without downtime.To upgrade across multiple minor releases (for example, 14.6 to 14.9), you must take your GitLab instance offline and upgrade with downtime.Upgrades with downtimeBefore starting, review the version-specific upgrade notes for your upgrade 17 upgrade notesGitLab 16 upgrade notesGitLab 15 upgrade notesFor single-node instances, see upgrade Linux package instances. For multi-node instances, see upgrade a multi-node instance with downtime.Zero-downtime upgradesZero-downtime upgrades let you upgrade a live GitLab environment without taking it offline.For zero downtime, upgrade GitLab nodes in a specific order. Use load balancing, HA systems, and graceful reloads to minimize disruption.The documentation covers only core GitLab components. For upgrades or management of third-party services such as AWS RDS, see their documentation.To perform a zero downtime upgrade, see the documentation for your installation charts, GitLab Operator, or multi-node instances.Upgrades with downtimeZero-downtime upgrades\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.459Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":456}}467{"id":"doc-reduce_dependency_proxy_storage_for_container_im-48cfcbbc","source":"documentation","title":"Reduce dependency proxy storage for container images | GitLab Docs","url":"https://docs.gitlab.com/user/packages/dependency_proxy/reduce_dependency_proxy_storage/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationGetting startedTutorialsPackages & RegistriesPackage registryContainer registryAuthenticateBuild and push imagesDependency proxy for container imagesReduce dependency proxy storageDelete imagesProtected container repositoriesProtected container tagsImmutable container tagsReduce container registry storageReduce container registry data container images with build provenance container images from Amazon ECR to GitLabVirtual registryHarbor registryTerraform module registryEnvironmentsDeploymentsReleasesRoll out an application incrementallyFeature flagsGitLab PagesManage your infrastructureMonitor your applicationAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Deploy and release your … /Packages & Registries /Container registry /Dependency proxy for con… /Reduce dependency proxy storageHelp us learn about your current experience with the documentation. Take the survey.Reduce dependency proxy storage for container , Premium, , GitLab Self-Managed, GitLab DedicatedThere’s no automatic removal process for blobs. Unless you delete them manually, they’re stored indefinitely. This page covers several options for clearing unused items from the cache.Check dependency proxy storage useThe Usage quotas page displays storage usage for the dependency proxy for container images.Use the API to clear the cacheTo reclaim disk space used by image blobs that are no longer needed, use the dependency proxy API to clear the entire cache. If you clear the cache, the next time a pipeline runs it must pull an image or tag from Docker Hub.Cleanup policiesHistoryRequired role changed from Developer to Maintainer in GitLab 15.0.Required role changed from Maintainer to Owner in GitLab 17.0.Enable cleanup policies from within GitLabYou can enable an automatic time-to-live (TTL) policy for the dependency proxy for container images from the user interface. To do this, go to your group’s Settings > Packages and registries > Dependency Proxy and enable the setting to automatically clear items from the cache after 90 days.Enable cleanup policies with GraphQLThe cleanup policy is a scheduled job you can use to clear cached images that are no longer used, freeing up additional storage space. The policies use time-to-live (TTL) number of days is configured.All cached dependency proxy files that have not been pulled in that many days are deleted.Use the GraphQL API to enable and configure cleanup { updateDependencyProxyImageTtlGroupPolicy(input: { groupPath: \"<your-full-group-path>\", , } ) { dependencyProxyImageTtlPolicy { enabled ttl } errors } }See the Getting started with GraphQL guide to learn how to make GraphQL queries.When the policy is initially enabled, the default TTL setting is 90 days. Once enabled, stale dependency proxy files are queued for deletion each day. Deletion may not occur right away due to processing time. If the image is pulled after the cached files are marked as expired, the expired files are ignored and new files are downloaded and cached from the external registry.Check dependency proxy storage useUse the API to clear the cacheCleanup policiesEnable cleanup policies from within GitLabEnable cleanup policies with GraphQL\n\nExample:\n```graphql\nmutation {\n updateDependencyProxyImageTtlGroupPolicy(input:\n {\n groupPath: \"<your-full-group-path>\",\n enabled: true,\n ttl: 90\n }\n ) {\n dependencyProxyImageTtlPolicy {\n enabled\n ttl\n }\n errors\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.510Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":22,"estimatedTokens":936}}468{"id":"doc-glab_cluster_gitlab_docs-7b4b9df5","source":"documentation","title":"glab cluster | GitLab Docs","url":"https://docs.gitlab.com/cli/cluster/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Authenticate with GitLabCommandsglab aliasglab apiglab artifact-registryglab attestationglab authglab changelogglab check-updateglab ciglab clusterglab cluster agentglab cluster graphglab completionglab configglab container-registryglab dependency-firewallglab deploy-keyglab duoglab gpg-keyglab incidentglab issueglab iterationglab jobglab labelglab mcpglab milestoneglab mrglab opentofuglab orbitglab packagesglab releaseglab repoglab runnerglab runner-controllerglab scheduleglab searchglab securefileglab securityglab skillsglab snippetglab ssh-keyglab stackglab todoglab tokenglab userglab variableglab versionglab whatsnewglab work-itemsEditor and IDE extensionsGitLab Docs /Extend /GitLab CLI (glab) /Commands /glab clusterHelp us learn about your current experience with the documentation. Take the survey.glab clusterManage GitLab Agents for Kubernetes and their clusters.SynopsisAgents connect your cluster to GitLab, enabling pull-based deployments and secure access to the Kubernetes API.Options -R, --repo string Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.Options inherited from parent commands -h, --help Show help for this command.SubcommandsagentgraphSynopsisOptionsOptions inherited from parent commandsSubcommands\n\nExample:\n```plaintext\n-R, --repo string Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.\n```\n\nExample:\n```plaintext\n-h, --help Show help for this command.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.539Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":428}}469{"id":"doc-glab_ssh_key_gitlab_docs-fb21454a","source":"documentation","title":"glab ssh-key | GitLab Docs","url":"https://docs.gitlab.com/cli/ssh-key/","text":"Getting startedTutorialsIntegrationsWebhooksREST APIGraphQL APIOAuth 2.0 identity provider APIGitLab MCP serverGitLab Duo CLI (duo)GitLab CLI (glab)Authenticate with GitLabCommandsglab aliasglab apiglab artifact-registryglab attestationglab authglab changelogglab check-updateglab ciglab clusterglab completionglab configglab container-registryglab dependency-firewallglab deploy-keyglab duoglab gpg-keyglab incidentglab issueglab iterationglab jobglab labelglab mcpglab milestoneglab mrglab opentofuglab orbitglab packagesglab releaseglab repoglab runnerglab runner-controllerglab scheduleglab searchglab securefileglab securityglab skillsglab snippetglab ssh-keyglab ssh-key addglab ssh-key deleteglab ssh-key getglab ssh-key listglab stackglab todoglab tokenglab userglab variableglab versionglab whatsnewglab work-itemsEditor and IDE extensionsGitLab Docs /Extend /GitLab CLI (glab) /Commands /glab ssh-keyHelp us learn about your current experience with the documentation. Take the survey.glab ssh-keyManage SSH keys registered with your GitLab account.SynopsisAdd, list, get, and delete the SSH keys associated with your account.GitLab uses SSH keys to authenticate Git operations over SSH, and, depending on each key’s usage type, to verify signed commits.Options -R, --repo string Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.Options inherited from parent commands -h, --help Show help for this command.SubcommandsadddeletegetlistSynopsisOptionsOptions inherited from parent commandsSubcommands\n\nExample:\n```plaintext\n-R, --repo string Select another repository. You can use either OWNER/REPO or GROUP/NAMESPACE/REPO. The full URL or Git URL is also accepted.\n```\n\nExample:\n```plaintext\n-h, --help Show help for this command.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.543Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":13,"estimatedTokens":459}}470{"id":"doc-test_import_project_gitlab_docs-ee2b8f40","source":"documentation","title":"Test import project | GitLab Docs","url":"https://docs.gitlab.com/development/import_project/","text":"Contribute to a GitLab contributionArchitectureDevelopment Rake tasksDevelopment processesDevelopment style guidesFeature developmentActivityPubAdvanced searchAIApplication limitsApplication secretsApplication settingsApplication SLIsApproval rulesAudit eventsAuto DevOpsBackup and RestoreBuilt-in project templatesCalloutsCellsCI/CDCode commentsCode intelligenceCode OwnersSource Code ManagementData scienceData SeederDatabaseDesign and UIDevelopment seed filesDistributed tracingEmail OTPEvent StoreExact code searchExport CSVFrontend developmentGeoGit LFSGit object deduplicationGitalyGitLab Flavored Markdown (GLFM)GitLab ShellGitpod internal configurationGraphQLGenerating chaosPrinciples of Importer DesignImport (Bitbucket Cloud)Import (Bitbucket Server)Import (GitHub)Import (Migration by direct transfer)Import (Migration by file export)Import (test project)Identity verificationIntegrationsInternal analyticsInternal APIIssuable-like Rails models utilitiesIssue typesJenkins in local environmentsJira development environmentJSON guidelinesKubernetes integrationLoggingMCP serverObservabilityObservability for stage groupsPackageAuthenticationPermissionsProduct Qualified Lead (PQL)Pry debuggingVS Code debuggingBuild and deploy real-time view componentsRedisRemote Development WorkspacesRepository storage movesRoutingSec sectionSidekiqSolargraphSpam protection and CAPTCHAUploadsValue Stream AnalyticsVerify stageWikisWork items and work item typesWork items widgetsWorkhorsePrometheus metricsOrganizationUtilitiesGitLab project pipelinesContribute to GitLab RunnerContribute to GitLab PagesContribute to GitLab DistributionContribute to documentationGitLab Docs /Contribute /Contribute to GitLab /Feature development /Principles of Importer D… /Import (test project)Help us learn about your current experience with the documentation. Take the survey.Test import projectFor testing, we can import our own GitLab CE project (named gitlabhq in this case) under a group named qa-perf-testing. Project tarballs that can be used for testing can be found over on the performance-data project. A different project could be used if required.You can import the project into your GitLab environment in a number of ways. They are detailed as follows with the assumption that the recommended group qa-perf-testing and project gitlabhq are being set up.Importing the projectUse one of these methods to import the test project.Import by using the UIThe first option is to import the project tarball file by using the GitLab the group qa-perf-testing.Import the GitLab FOSS project tarball into the group.It should take up to 15 minutes for the project to fully import. You can head to the project’s main page for the current status.This method ignores all the errors silently (including the ones related to GITALY_DISABLE_REQUEST_LIMITS) and is used by GitLab users. For development and testing, check the other methods below.Import by using the import-project scriptA convenient script, bin/import-project, is provided with performance project to import the Project tarball into a GitLab environment via API from the terminal.It requires some preparation to use the script if you haven’t done so , set up Ruby and Ruby Bundler if they aren’t already available on the machine.Next, install the required Ruby Gems via Bundler with bundle install.For details how to use bin/import-project, /import-project --helpThe process should take up to 15 minutes for the project to import fully. The script checks the status periodically and exits after the import has completed.Import by using GitHubThere is also an option to import the project via the group qa-perf-testingImport the GitLab FOSS repository that’s mirrored on GitHub into the group via the UI.This method takes longer to import than the other methods and depends on several factors. It’s recommended to use the other methods.To test importing from GitHub Enterprise (GHE) to GitLab, you need a GHE instance. You can request a GitHub Enterprise Server trial and install it on Google Cloud Platform.GitLab team members can use Sandbox Cloud Realm for this purpose.Others can request a Google Cloud Platforms free trial.Import by using a Rake taskTo import the test project by using a Rake task, see Import large projects.Import by using the Rails consoleThe last option is to import a project using a Rails a Ruby on Rails console:# Omnibus GitLab gitlab-rails console # For installations from source sudo -u git -H bundle exec rails console -e productionCreate a project and run Project::TreeRestorer:shared_class = Struct.new(:export_path) do def error(message) raise message end end user = User.first shared = shared_class.new(path) project = Projects::CreateService.new(user, { , }).execute begin #Enable Request store RequestStore.begin! Gitlab::ImportExport::Project::TreeRestorer.new(user: user, , ).restore ensure RequestStore.end! RequestStore.clear! endIn case you need the repository as well, you can restore it = File.join(shared.export_path, Gitlab::ImportExport.project_bundle_filename) Gitlab::ImportExport::RepoRestorer.new(path_to_bundle: repo_path, , ).restoreWe are storing all import failures in the import_failures data table.To make sure that the project import finished without any issues, testingFor Performance testing, we a quite large project, gitlabhq should be a good example.Measure the execution time of Project::TreeRestorer.Count the number of executed SQL queries during the restore.Observe the number of GC cycles happening.You can use this ://gitlab.com/gitlab-org/gitlab/snippets/1924954 (must be logged in), which restores the project, and measures the execution time of Project::TreeRestorer, number of SQL queries and number of GC cycles happening.You can execute the script from the gdk/gitlab directory like exec rails r /path_to_script/script.rb project_name /path_to_extracted_project request_store_enabledAccess token setupMany of the tests also require a GitLab personal access token because numerous endpoints require authentication themselves.The GitLab documentation details how to create this token. The tests require that the token is generated by an administrator and that it has the API and read_repository permissions.Details on how to use the Access Token with each type of test are found in their respective documentation.Importing the projectImport by using the UIImport by using the import-project scriptImport by using GitHubImport by using a Rake taskImport by using the Rails consolePerformance testingAccess token setup\n\nExample:\n```shell\nbin/import-project --help\n```\n\nExample:\n```shell\n# Omnibus GitLab\ngitlab-rails console\n\n# For installations from source\nsudo -u git -H bundle exec rails console -e production\n```\n\nExample:\n```ruby\nshared_class = Struct.new(:export_path) do\n def error(message)\n raise message\n end\nend\n\nuser = User.first\n\nshared = shared_class.new(path)\n\nproject = Projects::CreateService.new(user, { name: name, namespace: user.namespace }).execute\nbegin\n #Enable Request store\n RequestStore.begin!\n Gitlab::ImportExport::Project::TreeRestorer.new(user: user, shared: shared, project: project).restore\nensure\n RequestStore.end!\n RequestStore.clear!\nend\n```\n\nExample:\n```ruby\nrepo_path = File.join(shared.export_path, Gitlab::ImportExport.project_bundle_filename)\n\nGitlab::ImportExport::RepoRestorer.new(path_to_bundle: repo_path,\n shared: shared,\n importable: project).restore\n```\n\nExample:\n```ruby\nproject.import_failures.all\n```\n\nExample:\n```shell\nbundle exec rails r /path_to_script/script.rb project_name /path_to_extracted_project request_store_enabled\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.577Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":59,"estimatedTokens":1925}}471{"id":"doc-gitlab_duo_feature_availability_and_configuratio-e7f463b2","source":"documentation","title":"GitLab Duo Feature Availability and Configuration | GitLab Docs","url":"https://docs.gitlab.com/development/ai_features/availability/","text":"Contribute to a GitLab contributionArchitectureDevelopment Rake tasksDevelopment processesAccessing session dataAI featuresLicensingFeature availabilityDeveloping AI Features for Duo Self-HostedGitLab Duo ChatCode SuggestionsAgent PlatformDevelopment playbookEvaluation guidelinesAI actionsAI usage trackingModel migrationsModel switchingLoggingGlossarySemantic searchServing models locallyComposite identityPrompt engineeringAvoiding required stopsBackwards compatibilityChangelog entriesChatOps on GitLab.comCloud ConnectorCode review guidelinesDanger botData deletion guidelinesDependenciesDeprecation guidelinesEE featuresEmailsExperimentsFeature categorizationFeatures in B -->|No| C[Cannot use GitLab Duo] B -->|Yes| D{Has GitLab Duo Pro/Enterprise license?} D -->|No| E[Cannot use GitLab Duo] D -->|Yes| F{Using GitLab Duo with specific group/project resource?} F -->|No| G[Can use GitLab Duo] F -->|Yes| H{Group/Project has GitLab Duo features enabled?} H -->|No| I[Cannot use GitLab Duo with this resource] H -->|Yes| J[Can use GitLab Duo with this resource] GitLab.com with GitLab Duo Core, GitLab Duo Pro, and GitLab Duo EnterpriseGitLab offers three tiers of AI Duo Core - Basic AI capabilitiesGitLab Duo Pro - Enhanced AI capabilities with more advanced featuresGitLab Duo Enterprise - Comprehensive AI capabilities with additional controls and featuresGitLab Duo Core ConfigurationWith the introduction of GitLab Duo Core, a new setting is available for top-level Premium and Ultimate groups.This setting allows group owners to control GitLab Duo Core GitLab Duo Core is enabled (“on”): Every member of the group automatically receives a GitLab Duo Core seatWhen GitLab Duo Core is disabled (“off”): No members of the group have GitLab Duo Core seatsFeature Availability by License TierFeatureGitLab Duo CoreGitLab Duo ProGitLab Duo EnterpriseChatAgentic Chat only. Limited to IDEFull functionalityFull functionalityCode SuggestionsAvailable in IDE and Web IDEAvailable in IDE and Web IDEAvailable in IDE and Web IDEAdditional AI featuresNot availableSome AvailableAll AvailableThis flow diagram shows how GitLab Duo feature availability works on GitLab.com with GitLab Duo Core settings taken into TD A[Start] --> B{Member of Premium/Ultimate group?} B -->|No| C[Cannot use GitLab Duo] B -->|Yes| D{Has GitLab Duo Pro/Enterprise license?} D -->|Yes| E[Can use GitLab Duo] D -->|No| F{Any Premium/Ultimate group has GitLab Duo Core enabled?} F -->|No| G[Cannot use GitLab Duo] F -->|Yes| H{Using Chat or Code Suggestions in IDE?} H -->|No| I[Cannot use GitLab Duo] H -->|Yes| J{Using GitLab Duo with specific group/project resource?} J -->|No| K[Can use GitLab Duo] J -->|Yes| L{Group/Project has GitLab Duo features enabled?} L -->|Yes| M[Can use GitLab Duo with this resource] L -->|No| N[Cannot use GitLab Duo with this resource] Configuration LocationsGitLab.com Settings PagesThe following settings pages are available for configuring GitLab Duo on GitLab.com:Admin Level/admin/gitlab_duoOnboard GitLab Duo Agent PlatformTop-Level Group Settings/groups/$GROUP_FULL_PATH/-/settings/gitlab_duoAssign paid GitLab Duo seats (if available)Access GitLab Duo Configuration/groups/$GROUP_PATH/-/settings/gitlab_duo/configurationConfigure GitLab Duo availability (“On by default”, “Off by default”, or “Always off”)Enable experimental and beta GitLab Duo featuresConfigure foundational agents availability (“On by default”, “Off by default”).Subgroup Settings/groups/$GROUP_FULL_PATH/-/editConfigure GitLab Duo availability for the subgroup and all its childrenProject Settings/$PROJECT_FULL_PATH/editUnder “Visibility, project features, permissions” sectionConfigure GitLab Duo availability for the specific projectGitLab Self-Managed and Dedicated InstancesFor Premium and Ultimate GitLab Self-Managed and Dedicated instances, the feature availability logic follows similar patterns as GitLab.com with one key administrators have the ability to set GitLab Duo features to “Always off” at the instance level. When configured this way, all GitLab Duo features are disabled for all users across the entire instance, regardless of individual license assignments.flowchart TD A[Start] --> B{Instance has GitLab Duo features set to 'Always off'?} B -->|Yes| C[Cannot use GitLab Duo] B -->|No| D{Has GitLab Duo Pro/Enterprise license?} D -->|No| E[Cannot use GitLab Duo] D -->|Yes| F{Using GitLab Duo with specific group/project resource?} F -->|No| G[Can use GitLab Duo] F -->|Yes| H{Group/Project has GitLab Duo features enabled?} H -->|No| I[Cannot use GitLab Duo with this resource] H -->|Yes| J[Can use GitLab Duo with this resource] GitLab Self-Managed and Dedicated with GitLab Duo Core, GitLab Duo Pro, and GitLab Duo EnterpriseInstance-Wide GitLab Duo Core ConfigurationFor GitLab Self-Managed and Dedicated instances, GitLab Duo Core is controlled through an instance-level setting. This setting is available to all Premium and Ultimate instances.Instance administrators GitLab Duo Core (“on”) - Every user in the instance automatically receives a GitLab Duo Core seatDisable GitLab Duo Core (“off”) - No users in the instance have GitLab Duo Core seatsLicense Tier Differences in Self-Managed and Dedicated InstancesThe same feature differentiation between GitLab Duo Core, GitLab Duo Pro, and GitLab Duo Enterprise applies to self-managed and dedicated Duo AI capabilities limited to IDE use cases and general coding assistanceGitLab Duo AI capabilities with broader feature accessGitLab Duo AI capabilities with additional enterprise controlsSelf-managed instances have additional configuration options for integrating with self-hosted AI models and controlling feature behavior.This flow diagram shows how GitLab Duo feature availability works on non-GitLab.com instances with GitLab Duo Core settings taken into TD A[Start] --> B{Instance has GitLab Duo features set to 'Always off'?} B -->|Yes| C[Cannot use GitLab Duo] B -->|No| D{Has GitLab Duo Pro/Enterprise license?} D -->|Yes| E[Can use GitLab Duo] D -->|No| F{Instance has GitLab Duo Core enabled?} F -->|No| G[Cannot use GitLab Duo] F -->|Yes| H{Using Chat or Code Suggestions in IDE?} H -->|No| I[Cannot use GitLab Duo] H -->|Yes| J{Using GitLab Duo with specific group/project resource?} J -->|No| K[Can use GitLab Duo] J -->|Yes| L{Group/Project has GitLab Duo features enabled?} L -->|Yes| M[Can use GitLab Duo with this resource] L -->|No| N[Cannot use GitLab Duo with this resource] GitLab Self-Managed and Dedicated Settings PagesThe following settings pages are available for configuring GitLab Duo on self-managed and dedicated Admin Settings/admin/gitlab_duoAssign paid GitLab Duo seats to usersAccess GitLab Duo Configuration/admin/gitlab_duo/configurationConfigure instance-wide GitLab Duo availabilityEnable experimental and beta GitLab Duo featuresConfigure GitLab Duo Chat conversation expiration periodsEnable Code Suggestions direct connectionsEnable beta AI models for self-hosted deploymentsConfigure AI logging settingsSet AI Gateway URL for self-hosted deployments/admin/gitlab_duo/model_selectionConfigure instance-level model selectionConfigure self-hosted AI model integrationsSelect specific self-hosted models for different GitLab Duo featuresGroup and Subgroup Settings/groups/$GROUP_FULL_PATH/-/editConfigure GitLab Duo availability for the group and all its child entitiesProject Settings/$PROJECT_FULL_PATH/editUnder “Visibility, project features, permissions” sectionConfigure GitLab Duo availability for the specific projectControlling GitLab Duo Feature AvailabilityNamespace billing and governanceUI Options and Database StatesCascading Settings ImplementationFeature Accessibility By ContextWhere Users Can Access GitLab Duo FeaturesAdditional IDE Access ScenariosPlatform-Specific BehaviorGitLab.com License AssignmentImpact on Feature AvailabilityExample ScenarioGitLab.com with GitLab Duo Core, GitLab Duo Pro, and GitLab Duo EnterpriseConfiguration LocationsGitLab.com Settings PagesGitLab Self-Managed and Dedicated InstancesGitLab Self-Managed and Dedicated with GitLab Duo Core, GitLab Duo Pro, and GitLab Duo EnterpriseGitLab Self-Managed and Dedicated Settings Pages\n\nExample:\n```ruby\n# Without a scope: uses the user's default GitLab Duo namespace\ngoverning_ns = current_user.governing_namespace\n# => Returns the user's default namespace or inferred namespace\n\n# With a scope: prefers the scope's top-level group if the user is a member\ngoverning_ns = current_user.governing_namespace(project)\n# => Returns the project's top-level group if the user is a member. Otherwise, returns the default namespace\n\n# Alias for clarity in billing contexts\nbillable_ns = current_user.billable_duo_namespace(resource)\n```\n\nExample:\n```text\nflowchart TD\n A[Start] --> B{Member of Premium/Ultimate group?}\n B -->|No| C[Cannot use GitLab Duo]\n B -->|Yes| D{Has GitLab Duo Pro/Enterprise license?}\n D -->|No| E[Cannot use GitLab Duo]\n D -->|Yes| F{Using GitLab Duo with specific\n group/project resource?}\n F -->|No| G[Can use GitLab Duo]\n F -->|Yes| H{Group/Project has\n GitLab Duo features enabled?}\n H -->|No| I[Cannot use GitLab Duo with\n this resource]\n H -->|Yes| J[Can use GitLab Duo with\n this resource]\n```\n\nExample:\n```text\nflowchart TD\n A[Start] --> B{Member of Premium/Ultimate group?}\n B -->|No| C[Cannot use GitLab Duo]\n B -->|Yes| D{Has GitLab Duo Pro/Enterprise license?}\n D -->|Yes| E[Can use GitLab Duo]\n D -->|No| F{Any Premium/Ultimate group has\n GitLab Duo Core enabled?}\n F -->|No| G[Cannot use GitLab Duo]\n F -->|Yes| H{Using Chat or\n Code Suggestions in IDE?}\n H -->|No| I[Cannot use GitLab Duo]\n H -->|Yes| J{Using GitLab Duo with specific\n group/project resource?}\n J -->|No| K[Can use GitLab Duo]\n J -->|Yes| L{Group/Project has\n GitLab Duo features enabled?}\n L -->|Yes| M[Can use GitLab Duo with\n this resource]\n L -->|No| N[Cannot use GitLab Duo with\n this resource]\n```\n\nExample:\n```text\nflowchart TD\n A[Start] --> B{Instance has GitLab Duo features\n set to 'Always off'?}\n B -->|Yes| C[Cannot use GitLab Duo]\n B -->|No| D{Has GitLab Duo Pro/Enterprise license?}\n D -->|No| E[Cannot use GitLab Duo]\n D -->|Yes| F{Using GitLab Duo with specific\n group/project resource?}\n F -->|No| G[Can use GitLab Duo]\n F -->|Yes| H{Group/Project has\n GitLab Duo features enabled?}\n H -->|No| I[Cannot use GitLab Duo with\n this resource]\n H -->|Yes| J[Can use GitLab Duo with\n this resource]\n```\n\nExample:\n```text\nflowchart TD\n A[Start] --> B{Instance has GitLab Duo features\n set to 'Always off'?}\n B -->|Yes| C[Cannot use GitLab Duo]\n B -->|No| D{Has GitLab Duo Pro/Enterprise license?}\n D -->|Yes| E[Can use GitLab Duo]\n D -->|No| F{Instance has GitLab Duo Core enabled?}\n F -->|No| G[Cannot use GitLab Duo]\n F -->|Yes| H{Using Chat or\n Code Suggestions in IDE?}\n H -->|No| I[Cannot use GitLab Duo]\n H -->|Yes| J{Using GitLab Duo with specific\n group/project resource?}\n J -->|No| K[Can use GitLab Duo]\n J -->|Yes| L{Group/Project has\n GitLab Duo features enabled?}\n L -->|Yes| M[Can use GitLab Duo with\n this resource]\n L -->|No| N[Cannot use GitLab Duo with\n this resource]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.660Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":102,"estimatedTokens":2896}}472{"id":"doc-timeline_events_gitlab_docs-27d87dda","source":"documentation","title":"Timeline events | GitLab Docs","url":"https://docs.gitlab.com/operations/incident_management/incident_timeline_events/","text":"Getting startedTutorialsManage your organizationOrganize work with projectsPlan and track workManage authentication and authorizationUse GitManage your codeUse CI/CD to build your applicationSecure your applicationDeploy and release your applicationManage your infrastructureMonitor your applicationGetting startedError trackingIncident managementAlertsIncidentsManage incidentsTimeline eventsLinked resourcesIncident management for SlackOn-call schedulesStatus pageObservabilityAnalyze GitLab usageRelease notesFeature supportFind your GitLab versionGitLab Docs /Use GitLab /Monitor your application /Incident management /Incidents /Timeline eventsHelp us learn about your current experience with the documentation. Take the survey.Timeline , Premium, , GitLab Self-Managed, GitLab DedicatedIncident timelines are an important part of record keeping for incidents. Timelines can show executives and external viewers what happened during an incident, and which steps were taken for it to be resolved.View the timelineIncident timeline events are listed in ascending order of the date and time. They are grouped with dates and are listed in ascending order of the time when they view the event timeline of an the top bar, select Search or go to and find your project.In the left sidebar, select Monitor > Incidents.Select an incident.Select the Timeline tab.Create an eventYou can create a timeline event in many ways in GitLab.Using the formCreate a timeline event manually using the form.Prerequisites:You must have the Developer, Maintainer, or Owner role for the project.To create a timeline the top bar, select Search or go to and find your project.In the left sidebar, select Monitor > Incidents.Select an incident.Select the Timeline tab.Select Add new timeline event.Complete the required fields.Select Save or Save and add another event.Using a quick actionYou can create a timeline event using the /timeline quick action.From a comment on the must have the Developer, Maintainer, or Owner role for the project.Internal notes added to incident timelines in public and internal incidents are visible to anyone with access to the incident.To create a timeline event from a comment on the the top bar, select Search or go to and find your project.In the left sidebar, select Monitor > Incidents.Select an incident.Create a comment or choose an existing comment.On the comment you want to add, select Add comment to incident timeline ( ).The comment is shown on the incident timeline as a timeline event.When incident severity changesA new timeline event is created when someone changes the severity of an incident.When labels in GitLab 15.3 with a feature flag named incident_timeline_events_from_labels. Disabled by default.The availability of this feature is controlled by a feature flag. For more information, see the history. This feature is available for testing, but not ready for production use.A new timeline event is created when someone adds or removes labels on an incident.Delete an eventYou can also delete timeline events.Prerequisites:You must have the Developer, Maintainer, or Owner role for the project.To delete a timeline the top bar, select Search or go to and find your project.In the left sidebar, select Monitor > Incidents.Select an incident.Select the Timeline tab.On the right of a timeline event, select More actions ( ) and then select Delete.To confirm, select Delete Event.Alternatively:On the right of a timeline event, select More actions ( ) and then select Edit.Select Delete.To confirm, select Delete event.Incident tagsWhen creating an event using the form or editing it, you can specify incident tags to capture relevant incident timestamps. Timeline tags are optional. You can choose more than one tag per event. When you create a timeline event and select the tags, the event note is populated with a default message. This allows for quick event creation. If a note has already been set, it isn’t changed. Added tags are displayed next to the timestamp.Formatting rulesIncident timeline events support the following GitLab Flavored Markdown features.Code.Emoji.Emphasis.GitLab-specific references.Images, rendered as a link to the uploaded image.Links.View the timelineCreate an eventUsing the formUsing a quick actionFrom a comment on the incidentWhen incident severity changesWhen labels changeDelete an eventIncident tagsFormatting rules\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.664Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":1100}}473{"id":"doc-one_step_import_gitlab_docs-c3d383f8","source":"documentation","title":"One-step import | GitLab Docs","url":"https://docs.gitlab.com/administration/packages/container_registry_metadata_database_one_step_import/","text":"Getting startedConfigure GitLabAdmin areaGitLab Relay (KAS)Application cache intervalCellsCI/CDClickHouse for analyticsConsulCronCustom HTML header tagsEnvironment variablesFile hooksGeoDisaster recovery (Geo)Geo sitesGit LFS administrationGit protocol v2Health checkHost the product documentationIncoming emailInstance limitsInstance reviewInvalidate Markdown cacheIssue closing patternLabelsLoad balancerLog systemMerge request approvalsMerge request diffs storageNFSObject storagePackagesContainer registryContainer registry metadata databaseNew installationsOne-step importThree-step importTroubleshootingUse Geo with the container registryTroubleshootingDependency ProxyPostfixPostgreSQLRedisReply by emailRepository storageSecrets ManagerServer hooksSidekiqSnippetsS/MIME signingStatic objects external storageTerraform stateTerraform state settingsTimezoneUploadsWeb terminalsWhat's newWikisConfigure GitLab DuoUpdate your settingsEnable features behind feature flagsMaintain GitLabMonitor GitLabSecure GitLabAdminister usersAdminister GitLab DedicatedAdminister GitLab RunnerGitLab Docs /Administer /Configure GitLab /Packages /Container registry /Container registry metad… /One-step importHelp us learn about your current experience with the documentation. Take the survey.One-step , Premium, Self-ManagedUse the one-step import method if you regularly run offline garbage collection. This method is a simpler operation compared to the three-step import method.One-step importThe registry must be shut down or remain in read-only mode during the import. Otherwise, data written during the import becomes inaccessible or leads to inconsistencies.GitLab 18.7 and laterEnsure the database is disabled in the registry['database'] section of your /etc/gitlab/gitlab.rb ['database'] = { 'enabled' => false, # Must be false! }Ensure the registry is set to read-only mode.Edit your /etc/gitlab/gitlab.rb and add the maintenance section to the registry['storage'] configuration. For example, for a gcs-backed registry using a gs://my-company-container-registry bucket, the configuration could be:## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => true # Must be set to true. } } }Save the file and reconfigure GitLab.Apply database migrations.Run the following gitlab-ctl registry-database import --log-to-stdoutIf the command completed successfully, the registry is fully imported. You can enable the database, turn off read-only mode in the configuration, and start the registry ['database'] = { 'enabled' => true, # Must be enabled now! } ## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => false } } }Save the file and reconfigure GitLab.GitLab 18.3 to 18.6Ensure the database is disabled in the registry['database'] section of your /etc/gitlab/gitlab.rb ['database'] = { 'enabled' => false, # Must be false! }Ensure the registry is set to read-only mode.Edit your /etc/gitlab/gitlab.rb and add the maintenance section to the registry['storage'] configuration. For example, for a gcs-backed registry using a gs://my-company-container-registry bucket, the configuration could be:## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => true # Must be set to true. } } }Save the file and reconfigure GitLab.Apply database migrations.Run the following -u registry gitlab-ctl registry-database import --log-to-stdoutIf the command completed successfully, the registry is fully imported. You can enable the database, turn off read-only mode in the configuration, and start the registry ['database'] = { 'enabled' => true, # Must be enabled now! } ## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => false } } }Save the file and reconfigure GitLab.GitLab 17.5 to 18.2Prerequisites:Create an external database.Add the database section to your /etc/gitlab/gitlab.rb file, but start with the metadata database ['database'] = { 'enabled' => false, # Must be false! 'host' => '<registry_database_host_placeholder_change_me>', 'port' => 5432, # Default, but set to the port of your database instance if it differs. 'user' => '<registry_database_username_placeholder_change_me>', 'password' => '<registry_database_placeholder_change_me>', 'dbname' => '<registry_database_name_placeholder_change_me>', 'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html. 'sslcert' => '</path/to/cert.pem>', 'sslkey' => '</path/to/private.key>', 'sslrootcert' => '</path/to/ca.pem>' }Ensure the registry is set to read-only mode.Edit your /etc/gitlab/gitlab.rb and add the maintenance section to the registry['storage'] configuration. For example, for a gcs-backed registry using a gs://my-company-container-registry bucket, the configuration could be:## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => true # Must be set to true. } } }Save the file and reconfigure GitLab.Apply database migrations if you have not done so.Run the following gitlab-ctl registry-database importIf the command completed successfully, the registry is now fully imported. You can now enable the database, turn off read-only mode in the configuration, and start the registry ['database'] = { 'enabled' => true, # Must be enabled now! 'host' => '<registry_database_host_placeholder_change_me>', 'port' => 5432, # Default, but set to the port of your database instance if it differs. 'user' => '<registry_database_username_placeholder_change_me>', 'password' => '<registry_database_placeholder_change_me>', 'dbname' => '<registry_database_name_placeholder_change_me>', 'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html. 'sslcert' => '</path/to/cert.pem>', 'sslkey' => '</path/to/private.key>', 'sslrootcert' => '</path/to/ca.pem>' } ## Object Storage - Container Registry registry['storage'] = { 'gcs' => { 'bucket' => '<my-company-container-registry>', 'chunksize' => 5242880 }, 'maintenance' => { 'readonly' => { 'enabled' => false } } }Save the file and reconfigure GitLab.You can now use the metadata database for all operations!After importLarge registries can have hundreds of thousands or even millions of blobs queued for garbage collection review after an import. This is expected, and at default worker intervals it takes time to process.For guidance on what to expect and how to speed up processing, import for an overview of expected behavior after completing an import.Check the health of online garbage collection to monitor the garbage collection review queues.Adjust the garbage collector worker interval to temporarily speed up processing for large backlogs.One-step importAfter import\n\nExample:\n```ruby\nregistry['database'] = {\n 'enabled' => false, # Must be false!\n}\n```\n\nExample:\n```ruby\n## Object Storage - Container Registry\nregistry['storage'] = {\n 'gcs' => {\n 'bucket' => '<my-company-container-registry>',\n 'chunksize' => 5242880\n },\n 'maintenance' => {\n 'readonly' => {\n 'enabled' => true # Must be set to true.\n }\n }\n}\n```\n\nExample:\n```shell\nsudo gitlab-ctl registry-database import --log-to-stdout\n```\n\nExample:\n```ruby\nregistry['database'] = {\n 'enabled' => true, # Must be enabled now!\n}\n\n## Object Storage - Container Registry\nregistry['storage'] = {\n 'gcs' => {\n 'bucket' => '<my-company-container-registry>',\n 'chunksize' => 5242880\n },\n 'maintenance' => {\n 'readonly' => {\n 'enabled' => false\n }\n }\n}\n```\n\nExample:\n```shell\nsudo -u registry gitlab-ctl registry-database import --log-to-stdout\n```\n\nExample:\n```ruby\nregistry['database'] = {\n 'enabled' => false, # Must be false!\n 'host' => '<registry_database_host_placeholder_change_me>',\n 'port' => 5432, # Default, but set to the port of your database instance if it differs.\n 'user' => '<registry_database_username_placeholder_change_me>',\n 'password' => '<registry_database_placeholder_change_me>',\n 'dbname' => '<registry_database_name_placeholder_change_me>',\n 'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html.\n 'sslcert' => '</path/to/cert.pem>',\n 'sslkey' => '</path/to/private.key>',\n 'sslrootcert' => '</path/to/ca.pem>'\n}\n```\n\nExample:\n```shell\nsudo gitlab-ctl registry-database import\n```\n\nExample:\n```ruby\nregistry['database'] = {\n 'enabled' => true, # Must be enabled now!\n 'host' => '<registry_database_host_placeholder_change_me>',\n 'port' => 5432, # Default, but set to the port of your database instance if it differs.\n 'user' => '<registry_database_username_placeholder_change_me>',\n 'password' => '<registry_database_placeholder_change_me>',\n 'dbname' => '<registry_database_name_placeholder_change_me>',\n 'sslmode' => 'require', # See the PostgreSQL documentation for additional information https://www.postgresql.org/docs/16/libpq-ssl.html.\n 'sslcert' => '</path/to/cert.pem>',\n 'sslkey' => '</path/to/private.key>',\n 'sslrootcert' => '</path/to/ca.pem>'\n}\n\n## Object Storage - Container Registry\nregistry['storage'] = {\n 'gcs' => {\n 'bucket' => '<my-company-container-registry>',\n 'chunksize' => 5242880\n },\n 'maintenance' => {\n 'readonly' => {\n 'enabled' => false\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.726Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":106,"estimatedTokens":2475}}474{"id":"doc-set_up_geo_for_two_single_node_sites_gitlab_docs-70849c00","source":"documentation","title":"Set up Geo for two single-node sites | GitLab Docs","url":"https://docs.gitlab.com/administration/geo/setup/two_single_node_sites/","text":"Example:\n```shell\nsudo -i\n```\n\nExample:\n```ruby\n##\n## The unique identifier for the Geo site. See\n## https://docs.gitlab.com/administration/geo_sites/#common-settings\n##\ngitlab_rails['geo_node_name'] = '<site_name_here>'\n```\n\nExample:\n```shell\ngitlab-ctl reconfigure\n```\n\nExample:\n```shell\ngitlab-ctl set-geo-primary-node\n```\n\nExample:\n```shell\ngitlab-ctl pg-password-md5 gitlab\n# Enter password: <your_db_password_here>\n# Confirm password: <your_db_password_here>\n# fca0b89a972d69f00eb3ec98a5838484\n```\n\nExample:\n```ruby\n# Fill with the hash generated by `gitlab-ctl pg-password-md5 gitlab`\npostgresql['sql_user_password'] = '<md5_hash_of_your_db_password>'\n\n# Every node that runs Puma or Sidekiq needs to have the database\n# password specified as below. If you have a high-availability setup, this\n# must be present in all application nodes.\ngitlab_rails['db_password'] = '<your_db_password_here>'\n```\n\nExample:\n```shell\ngitlab-ctl pg-password-md5 gitlab_replicator\n\n# Enter password: <your_replication_password_here>\n# Confirm password: <your_replication_password_here>\n# 950233c0dfc2f39c64cf30457c3b7f1e\n```\n\nExample:\n```ruby\n# Fill with the hash generated by `gitlab-ctl pg-password-md5 gitlab_replicator`\npostgresql['sql_replication_password'] = '<md5_hash_of_your_replication_password>'\n```\n\nExample:\n```sql\n--- Create a new user 'replicator'\nCREATE USER gitlab_replicator;\n\n--- Set/change a password and grants replication privilege\nALTER USER gitlab_replicator WITH REPLICATION ENCRYPTED PASSWORD '<replication_password>';\n```\n\nExample:\n```ruby\n## Geo Primary role\nroles(['geo_primary_role'])\n```\n\nExample:\n```shell\n##\n## Private address\n##\nip route get 255.255.255.255 | awk '{for (i=1; i<=NF; i++) if ($i == \"src\") { print \"Private address:\", $(i+1); exit }}'\n\n##\n## Public address\n##\necho \"External address: $(curl --silent \"ipinfo.io/ip\")\"\n```\n\nExample:\n```ruby\n##\n## Primary address\n## - replace '<primary_node_ip>' with the public or VPC address of your Geo primary node\n##\npostgresql['listen_address'] = '<primary_site_ip>'\n\n##\n# Allow PostgreSQL client authentication from the primary and secondary IPs. These IPs may be\n# public or VPC addresses in CIDR format, for example ['198.51.100.1/32', '198.51.100.2/32']\n##\npostgresql['md5_auth_cidr_addresses'] = ['<primary_site_ip>/32', '<secondary_site_ip>/32']\n```\n\nExample:\n```ruby\n## Disable automatic database migrations\ngitlab_rails['auto_migrate'] = false\n```\n\nExample:\n```shell\ngitlab-ctl reconfigure\ngitlab-ctl restart postgresql\n```\n\nExample:\n```ruby\ngitlab_rails['auto_migrate'] = true\n```\n\nExample:\n```shell\ncat ~gitlab-psql/data/server.crt\n```\n\nExample:\n```shell\ngitlab-ctl stop puma\ngitlab-ctl stop sidekiq\n```\n\nExample:\n```shell\ngitlab-rake gitlab:tcp_check[<primary_site_ip>,5432]\n```\n\nExample:\n```shell\neditor server.crt\n```\n\nExample:\n```shell\ninstall \\\n -D \\\n -o gitlab-psql \\\n -g gitlab-psql \\\n -m 0400 \\\n -T server.crt ~gitlab-psql/.postgresql/root.crt\n```\n\nExample:\n```shell\ninstall \\\n -D \\\n -o root \\\n -g root \\\n -m 0400 \\\n -T server.crt /root/.postgresql/root.crt\n```\n\nExample:\n```shell\nsudo \\\n -u gitlab-psql /opt/gitlab/embedded/bin/psql \\\n --list \\\n -U gitlab_replicator \\\n -d \"dbname=gitlabhq_production sslmode=verify-ca\" \\\n -W \\\n -h <primary_site_ip>\n```\n\nExample:\n```shell\ndocker exec -it <container_name> su - gitlab-psql -c '/opt/gitlab/embedded/bin/psql \\\n --list \\\n -U gitlab_replicator \\\n -d \"dbname=gitlabhq_production sslmode=verify-ca\" \\\n -W \\\n -h <primary_site_ip>'\n```\n\nExample:\n```ruby\n##\n## Geo Secondary role\n## - configure dependent flags automatically to enable Geo\n##\nroles(['geo_secondary_role'])\n```\n\nExample:\n```ruby\n##\n## Secondary address\n## - replace '<secondary_site_ip>' with the public or VPC address of your Geo secondary site\n##\npostgresql['listen_address'] = '<secondary_site_ip>'\npostgresql['md5_auth_cidr_addresses'] = ['<secondary_site_ip>/32']\n\n##\n## Database credentials password (defined previously in primary site)\n## - replicate same values here as defined in primary site\n##\npostgresql['sql_replication_password'] = '<md5_hash_of_your_replication_password>'\npostgresql['sql_user_password'] = '<md5_hash_of_your_db_password>'\ngitlab_rails['db_password'] = '<your_db_password_here>'\n```\n\nExample:\n```shell\ngitlab-ctl restart postgresql\n```\n\nExample:\n```shell\ngitlab-ctl replicate-geo-database \\\n --slot-name=<secondary_slot_name> \\\n --host=<primary_site_ip> \\\n --sslmode=verify-ca\n```\n\nExample:\n```shell\nsudo cat /etc/gitlab/gitlab-secrets.json\n```\n\nExample:\n```shell\nmv /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.`date +%F`\n```\n\nExample:\n```shell\nsudo editor /etc/gitlab/gitlab-secrets.json\n\n# paste the output of the `cat` command you ran on the primary\n# save and exit\n```\n\nExample:\n```shell\nchown root:root /etc/gitlab/gitlab-secrets.json\nchmod 0600 /etc/gitlab/gitlab-secrets.json\n```\n\nExample:\n```shell\ngitlab-ctl reconfigure\ngitlab-ctl restart\n```\n\nExample:\n```shell\nfind /etc/ssh -iname 'ssh_host_*' -exec cp {} {}.backup.`date +%F` \\;\n```\n\nExample:\n```shell\n# Run this from the secondary site, change `<primary_site_fqdn>` for the IP or FQDN of the server\nscp root@<primary_node_fqdn>:/etc/ssh/ssh_host_*_key* /etc/ssh\n```\n\nExample:\n```shell\n# Run this from the node on your primary site:\nsudo tar --transform 's/.*\\///g' -zcvf ~/geo-host-key.tar.gz /etc/ssh/ssh_host_*_key*\n\n# Run this on each node on your secondary site:\nscp <user_with_sudo>@<primary_site_fqdn>:geo-host-key.tar.gz .\ntar zxvf ~/geo-host-key.tar.gz -C /etc/ssh\n```\n\nExample:\n```shell\nchown root:root /etc/ssh/ssh_host_*_key*\nchmod 0600 /etc/ssh/ssh_host_*_key\n```\n\nExample:\n```shell\nfor file in /etc/ssh/ssh_host_*_key; do ssh-keygen -lf $file; done\n```\n\nExample:\n```shell\n1024 SHA256:FEZX2jQa2bcsd/fn/uxBzxhKdx4Imc4raXrHwsbtP0M root@serverhostname (DSA)\n256 SHA256:uw98R35Uf+fYEQ/UnJD9Br4NXUFPv7JAUln5uHlgSeY root@serverhostname (ECDSA)\n256 SHA256:sqOUWcraZQKd89y/QQv/iynPTOGQxcOTIXU/LsoPmnM root@serverhostname (ED25519)\n2048 SHA256:qwa+rgir2Oy86QI+PZi/QVR+MSmrdrpsuH7YyKknC+s root@serverhostname (RSA)\n```\n\nExample:\n```shell\n# This will print the fingerprint for private keys:\nfor file in /etc/ssh/ssh_host_*_key; do ssh-keygen -lf $file; done\n\n# This will print the fingerprint for public keys:\nfor file in /etc/ssh/ssh_host_*_key.pub; do ssh-keygen -lf $file; done\n```\n\nExample:\n```shell\n# Debian or Ubuntu installations\nsudo service ssh reload\n\n# CentOS installations\nsudo service sshd reload\n```\n\nExample:\n```shell\ngitlab-ctl restart\n```\n\nExample:\n```shell\ngitlab-rake gitlab:geo:check\n```\n\nExample:\n```ruby\ngitlab_rails['action_cable_allowed_origins'] = ['https://secondary.example.com', 'https://primary.example.com']\n```\n\nExample:\n```ruby\n# Primary site configuration example\n\n## Geo Primary role\nroles(['geo_primary_role'])\n\n## The unique identifier for the Geo site\ngitlab_rails['geo_node_name'] = 'headquarters'\n\n## External URL\nexternal_url 'https://gitlab.example.com'\n\n## Database configuration\ngitlab_rails['db_password'] = 'your_database_password_here'\npostgresql['sql_user_password'] = 'md5_hash_of_your_database_password'\npostgresql['sql_replication_password'] = 'md5_hash_of_your_replication_password'\n\n## PostgreSQL network configuration\npostgresql['listen_address'] = '10.0.1.10' # Primary site IP\npostgresql['md5_auth_cidr_addresses'] = ['10.0.1.10/32', '10.0.2.10/32'] # Primary and secondary IPs\n\n## Disable automatic migrations (handled centrally, and to avoid unplanned downtime)\ngitlab_rails['auto_migrate'] = false\n\n## SSL/TLS configuration\nnginx['listen_port'] = 80\nnginx['listen_https'] = false\nletsencrypt['enable'] = false\n\n## Object Storage configuration (optional)\ngitlab_rails['object_store']['enabled'] = true\ngitlab_rails['object_store']['connection'] = {\n 'provider' => 'AWS',\n 'region' => 'us-east-1',\n 'aws_access_key_id' => 'your_access_key',\n 'aws_secret_access_key' => 'your_secret_key'\n}\n\n## Monitoring configuration (optional)\nnode_exporter['listen_address'] = '0.0.0.0:9100'\ngitlab_workhorse['prometheus_listen_addr'] = '0.0.0.0:9229'\ngitlab_rails['monitoring_whitelist'] = ['127.0.0.0/8', '10.0.0.0/8']\n\n## Gitaly configuration\ngitaly['configuration'] = {\n prometheus_listen_addr: '0.0.0.0:9236',\n}\n\n## ActionCable allowed origins\ngitlab_rails['action_cable_allowed_origins'] = ['https://secondary.example.com', 'https://primary.example.com']\n```\n\nExample:\n```ruby\n# Secondary site configuration example\n\n## Geo Secondary role\nroles(['geo_secondary_role'])\n\n## The unique identifier for the Geo site\ngitlab_rails['geo_node_name'] = 'location-2'\n\n## External URL (can be the same as primary for unified URL setup)\nexternal_url 'https://gitlab.example.com'\n\n## Database configuration\ngitlab_rails['db_password'] = 'your_database_password_here'\npostgresql['sql_user_password'] = 'md5_hash_of_your_database_password'\npostgresql['sql_replication_password'] = 'md5_hash_of_your_replication_password'\n\n## PostgreSQL network configuration\npostgresql['listen_address'] = '10.0.2.10' # Secondary site IP\npostgresql['md5_auth_cidr_addresses'] = ['10.0.2.10/32']\n\n## SSL/TLS configuration\nnginx['listen_port'] = 80\nnginx['listen_https'] = false\nletsencrypt['enable'] = false\n\n## Object Storage configuration (must match primary)\ngitlab_rails['object_store']['enabled'] = true\ngitlab_rails['object_store']['connection'] = {\n 'provider' => 'AWS',\n 'region' => 'us-east-1',\n 'aws_access_key_id' => 'your_access_key',\n 'aws_secret_access_key' => 'your_secret_key'\n}\n\n## Monitoring configuration (optional)\nnode_exporter['listen_address'] = '0.0.0.0:9100'\ngitlab_workhorse['prometheus_listen_addr'] = '0.0.0.0:9229'\ngitlab_rails['monitoring_whitelist'] = ['127.0.0.0/8', '10.0.0.0/8']\n\n## Gitaly configuration\ngitaly['configuration'] = {\n prometheus_listen_addr: '0.0.0.0:9236',\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.761Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":45,"totalLines":424,"estimatedTokens":2458}}475{"id":"doc-test_plan_for_go_component_upgrade_gitlab_docs-67ced1ec","source":"documentation","title":"Test plan for Go component upgrade | GitLab Docs","url":"https://docs.gitlab.com/omnibus/development/test-plans/upgrade-golang-testplan/","text":"Contribute to GitLabContribute to GitLab RunnerContribute to GitLab PagesContribute to GitLab DistributionContribute to Omnibus GitLabGetting startedArchitectureRelease processBuild locallySet up a development environmentTest plansUpgrade Component test plan templateUpgrade golangUpgrade exiftoolUpgrade rubygemsUpgrade RedisUpgrade gitlab-exporterUpgrade go-crondGenerate test reportMaintainershipCI variablesChange package behaviorChange YAML config optionsAdd deprecation messagesAdd new gitlab-ctl commandsAdd new servicesAdd new software definitionsDatabase supportCreate patchesAdd or remove configuration optionsManage PostgreSQL versionsOmnibus mirrorVersion format for the packages and Docker imagesPipelinesWork with public_attributes.jsonRelease to AWSUpgrade software componentsUpgrade ChefHandle vulnerabilitiesHandle broken master pipelinesDeprecate and remove support for an OSContribute to GitLab Helm chartsContribute to GitLab OperatorContribute to documentationGitLab Docs /Contribute /Contribute to GitLab Dis… /Contribute to Omnibus Gi… /Test plans /Upgrade golangHelp us learn about your current experience with the documentation. Take the survey.Test plan for Go component upgradeCopy the following test plan to a comment of the merge request that upgrades the component.## Test plan - [ ] QA tests passed for FIPS and non FIPS builds, including triggering the `build-package-on-all-os` job - [ ] Confirmed build was done with desired version of go `strings /opt/gitlab/embedded/bin/gitaly | grep 'go1\\.' | tail -1` - [ ] Confirmed Omnibus-built services that are owned by distribution are working - [ ] Prometheus - (is scraping metrics) ```shell curl 'localhost:9090/api/v1/query?query=up' ``` - [ ] PgBouncer exporter - (metrics endpoint returns data) 1. [Configure PgBouncer](https://docs.gitlab.com/administration/postgresql/pgbouncer/). 1. Run: ```shell curl \"http://localhost:9188/metrics\" ``` - [ ] `redis-exporter` - (metrics endpoint returns data) ```shell curl \"http://localhost:9121/metrics\" ``` - [ ] `postgres-exporter` - (metrics endpoint returns data) ```shell curl \"http://localhost:9187/metrics\" ``` - [ ] `node-exporter` - (metrics endpoint returns data) ```shell curl \"http://localhost:9100/metrics\" ``` - [ ] `alertmanager` - (test trigger an alert) 1. Set `prometheus['listen_address'] = '0.0.0.0:9090'` in `/etc/gitlab/gitlab.rb` and run `sudo gitlab-ctl reconfigure`. 1. Shut down `gitaly` service: ```shell gitlab-ctl stop gitaly ``` 1. Wait 5 minutes and check Prometheus console `http://<gitlab host>:9090/alerts?search=` for service down alert. 1. Start `gitaly` service: ```shell gitlab-ctl start gitaly ``` 1. Wait 5 minutes and check Prometheus console `http://<gitlab host>:9090/alerts?search=` for service back up.\n\nExample:\n```markdown\n## Test plan\n\n- [ ] QA tests passed for FIPS and non FIPS builds, including triggering the `build-package-on-all-os` job\n- [ ] Confirmed build was done with desired version of go `strings /opt/gitlab/embedded/bin/gitaly | grep 'go1\\.' | tail -1`\n- [ ] Confirmed Omnibus-built services that are owned by distribution are working\n - [ ] Prometheus - (is scraping metrics)\n\n ```shell\n curl 'localhost:9090/api/v1/query?query=up'\n ```\n\n - [ ] PgBouncer exporter - (metrics endpoint returns data)\n\n 1. [Configure PgBouncer](https://docs.gitlab.com/administration/postgresql/pgbouncer/).\n 1. Run:\n\n ```shell\n curl \"http://localhost:9188/metrics\"\n ```\n\n - [ ] `redis-exporter` - (metrics endpoint returns data)\n\n ```shell\n curl \"http://localhost:9121/metrics\"\n ```\n\n - [ ] `postgres-exporter` - (metrics endpoint returns data)\n\n ```shell\n curl \"http://localhost:9187/metrics\"\n ```\n\n - [ ] `node-exporter` - (metrics endpoint returns data)\n\n ```shell\n curl \"http://localhost:9100/metrics\"\n ```\n\n - [ ] `alertmanager` - (test trigger an alert)\n\n 1. Set `prometheus['listen_address'] = '0.0.0.0:9090'` in `/etc/gitlab/gitlab.rb` and run `sudo gitlab-ctl reconfigure`.\n 1. Shut down `gitaly` service:\n\n ```shell\n gitlab-ctl stop gitaly\n ```\n\n 1. Wait 5 minutes and check Prometheus console `http://<gitlab host>:9090/alerts?search=` for service down alert.\n 1. Start `gitaly` service:\n\n ```shell\n gitlab-ctl start gitaly\n ```\n\n 1. Wait 5 minutes and check Prometheus console `http://<gitlab host>:9090/alerts?search=` for service back up.\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.763Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":62,"estimatedTokens":1115}}476{"id":"doc-troubleshooting_scim_gitlab_docs-4a0f0c4a","source":"documentation","title":"Troubleshooting SCIM | GitLab Docs","url":"https://docs.gitlab.com/user/group/saml_sso/troubleshooting_scim/","text":"Example:\n```plaintext\nThe member's email address is not allowed for this group. Check with your administrator.\n```\n\nExample:\n```plaintext\nThe member's email address is not linked to a SAML account or has an inactive\nSCIM identity.\n```\n\nExample:\n```plaintext\nUser is pending deprovisioning. Please wait for the user to be deprovisioned and try again later.\n```\n\nExample:\n```plaintext\nYou appear to have entered invalid credentials. Please confirm\nyou are using the correct information for an administrative account\n```\n\nExample:\n```plaintext\nError authenticating: null\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.768Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":28,"estimatedTokens":147}}477{"id":"doc-merge_request_diffs_frontend_overview_gitlab_doc-e6948ffd","source":"documentation","title":"Merge request diffs frontend overview | GitLab Docs","url":"https://docs.gitlab.com/development/merge_request_concepts/diffs/frontend/","text":"Contribute to a GitLab contributionArchitectureDevelopment Rake tasksDevelopment processesAccessing session dataAI featuresAvoiding required stopsBackwards compatibilityChangelog entriesChatOps on GitLab.comCloud ConnectorCode review guidelinesDanger botData deletion guidelinesDependenciesDeprecation guidelinesEE featuresEmailsExperimentsFeature categorizationFeatures in %% flowchart TB rendering of how components are rendered in the GitLab front end classDef code A[\"diffs~~app.vue\"] descVirtualScroller([\"Virtual Scroller\"]) codeForFiles[[\"v-for(diffFiles)\"]] B[\"diffs~~diff_file.vue\"] C[\"diffs~~diff_file_header.vue\"] D[\"diffs~~diff_stats.vue\"] E[\"diffs~~diff_content.vue\"] boolFileIsText{isTextFile} boolOnlyWhitespace{isWhitespaceOnly} boolNotDiffable{notDiffable} boolNoPreview{noPreview} descShowChanges([\"Show button to "Show changes"\"]) %% Non-text changes dirDiffViewer>\"vue_shared~~diff_viewer\"] F[\"./viewers/not_diffable.vue\"] G[\"./viewers/no_preview.vue\"] H[\"./diff_viewer.vue\"] I[\"diffs~~diff_view.vue\"] boolIsRenamed{isRenamed} boolIsModeChanged{isModeChanged} boolFileHasNoPath{hasNewPath} boolIsImage{isImage} J[\"./viewers/renamed.vue\"] K[\"./viewers/mode_changed.vue\"] descNoViewer([\"No viewer is rendered\"]) L[\"./viewers/image_diff_viewer.vue\"] M[\"./viewers/download.vue\"] N[\"vue_shared~~download_diff_viewer.vue\"] boolImageIsReplaced{isReplaced} O[\"vue_shared~~image_viewer.vue\"] switchImageMode((image_diff_viewer.mode)) P[\"./viewers/image_diff/onion_skin_viewer.vue\"] Q[\"./viewers/image_diff/swipe_viewer.vue\"] R[\"./viewers/image_diff/two_up_viewer.vue\"] S[\"diffs~~image_diff_overlay.vue\"] codeForImageDiscussions[[\"v-for(discussions)\"]] T[\"vue_shared~~design_note_pin.vue\"] U[\"vue_shared~~user_avatar_link.vue\"] V[\"diffs~~diff_discussions.vue\"] W[\"batch_comments~~diff_file_drafts.vue\"] codeForTwoUpDiscussions[[\"v-for(discussions)\"]] codeForTwoUpDrafts[[\"v-for(drafts)\"]] X[\"notes~~notable_discussion.vue\"] %% Text-file changes codeForDiffLines[[\"v-for(diffLines)\"]] Y[\"diffs~~diff_expansion_cell.vue\"] Z[\"diffs~~diff_row.vue\"] AA[\"diffs~~diff_line.vue\"] AB[\"batch_comments~~draft_note.vue\"] AC[\"diffs~~diff_comment_cell.vue\"] AD[\"diffs~~diff_gutter_avatars.vue\"] AE[\"ee-diffs~~inline_findings_gutter_icon_dropdown.vue\"] AF[\"notes~~noteable_note.vue\"] AG[\"notes~~note_actions.vue\"] AH[\"notes~~note_body.vue\"] AI[\"notes~~note_header.vue\"] AJ[\"notes~~reply_button.vue\"] AK[\"notes~~note_awards_list.vue\"] AL[\"notes~~note_edited_text.vue\"] AM[\"notes~~note_form.vue\"] AN[\"vue_shared~~awards_list.vue\"] AO[\"emoji~~picker.vue\"] AP[\"emoji~~emoji_list.vue\"] descEmojiVirtualScroll([\"Virtual Scroller\"]) AQ[\"emoji~~category.vue\"] AR[\"emoji~emoji_category.vue\"] AS[\"vue_shared~~markdown_editor.vue\"] class codeForFiles,codeForImageDiscussions code; class codeForTwoUpDiscussions,codeForTwoUpDrafts code; class codeForDiffLines code; %% Also apply code styling to this switch node class switchImageMode code; %% Also apply code styling to these boolean nodes class boolFileIsText,boolOnlyWhitespace,boolNotDiffable,boolNoPreview code; class boolIsRenamed,boolIsModeChanged,boolFileHasNoPath,boolIsImage code; class boolImageIsReplaced code; A --> descVirtualScroller A -->|\"Virtual Scroller is disabled when Find in page search (Command/Control+f) is used.\"|codeForFiles descVirtualScroller --> codeForFiles codeForFiles --> B --> C --> D B --> E %% File view flags cascade E --> boolFileIsText boolFileIsText --> |yes| I boolFileIsText --> |no| boolOnlyWhitespace boolOnlyWhitespace --> |yes| descShowChanges boolOnlyWhitespace --> |no| dirDiffViewer dirDiffViewer --> H H --> boolNotDiffable boolNotDiffable --> |yes| F boolNotDiffable --> |no| boolNoPreview boolNoPreview --> |yes| G boolNoPreview --> |no| boolIsRenamed boolIsRenamed --> |yes| J boolIsRenamed --> |no| boolIsModeChanged boolIsModeChanged --> |yes| K boolIsModeChanged --> |no| boolFileHasNoPath boolFileHasNoPath --> |yes| boolIsImage boolFileHasNoPath --> |no| descNoViewer boolIsImage --> |yes| L boolIsImage --> |no| M M --> N %% Image diff viewer L --> boolImageIsReplaced boolImageIsReplaced --> |yes| switchImageMode boolImageIsReplaced --> |no| O switchImageMode -->|\"'twoup' (default)\"| R switchImageMode -->|'onion'| P switchImageMode -->|'swipe'| Q P & Q --> S S --> codeForImageDiscussions S --> AM R-->|\"Rendered in note container div\"|U & W & V %% Do not combine this with the \"P & Q --> S\" statement above %% The order of these node relationships defines the %% layout of the graph, and we need it in this order. R --> S V --> codeForTwoUpDiscussions W --> codeForTwoUpDrafts %% This invisible link forces `noteable_discussion` %% to render above `design_note_pin` X ~~~ T codeForTwoUpDrafts --> AB codeForImageDiscussions & codeForTwoUpDiscussions & codeForTwoUpDrafts --> T codeForTwoUpDiscussions --> X %% Text file diff viewer I --> codeForDiffLines codeForDiffLines --> Z codeForDiffLines -->|\"isMatchLine?\"| Y codeForDiffLines -->|\"hasCodeQuality?\"| AA codeForDiffLines -->|\"hasDraftNote(s)?\"| AB Z -->|\"hasCodeQuality?\"| AE Z -->|\"hasDiscussions?\"| AD AA --> AC %% Draft notes AB --> AF AF --> AG & AH & AI AG --> AJ AH --> AK & AL & AM AK --> AN --> AO --> AP --> descEmojiVirtualScroll --> AQ --> AR AM --> AS Some of the components are rendered more than others, but the main component is diff_row.vue. This component renders every diff line in a diff file. For performance reasons, this component is a functional component. However, when we upgrade to Vue 3, this is no longer required.The main diff app component is the main entry point to the diffs app. One of the most important parts of this component is to dispatch the action that assigns discussions to diff lines. This action gets dispatched after the metadata request is completed, and after the batch diffs requests are finished. There is also a watcher set up to watch for changes in both the diff files array and the notes array. Whenever a change happens here, the set discussion action gets dispatched.The DiffRow component is set up in a way that allows us to store the diff line data in one format. Previously, we had to request two different formats for inline and side-by-side. The DiffRow component then uses this standard format to render the diff line data. With this standard format, the user can then switch between inline and side-by-side without the need to re-fetch any data.For this component, a lot of the data used and rendered gets memoized and cached, based on various conditions. It is possible that data sometimes gets cached between each different component render.Vuex storeThe Vuex store for the diffs app consists of 3 different commentsThe notes module is responsible for the discussions, including diff discussions. In this module, the discussions get fetched, and the polling for new discussions is set up. This module gets shared with the issue app as well, so changes here need to be tested in both issues and merge requests.The diffs module is responsible for everything related to diffs. This includes, but is not limited to, fetching diffs, assigning diff discussions to lines, and creating diff discussions.Finally, the batch comments module is not complex, and is responsible only for the draft comments feature. However, this module does dispatch actions in the notes and diff modules whenever draft comments are published.API RequestsMetadataThe diffs metadata endpoint exists to fetch the base data the diffs app requires quickly, without the need to fetch all the diff files. This includes, but is not limited filenames, including some extra meta data for diff filesAdded and removed line numbersBranch namesDiff versionsThe most important part of the metadata response is the diff filenames. This data allows the diffs app to render the file browser inside of the diffs app, without waiting for all batch diffs requests to complete.When the metadata response is received, the diff file data is processed into the correct structure that the frontend requires to render the file browser in either tree view or list view.The structure for this file object is:{ \"key\": \"\", \"path\": \"\", \"name\": \"\", \"type\": \"\", \"tree\": [], \"changed\": true, \"diffLoaded\": false, \"filePaths\": { \"old\": file.old_path, \"new\": file.new_path }, \"tempFile\": false, \"deleted\": false, \"fileHash\": \"\", \"addedLines\": 1, \"removedLines\": 1, \"parentPath\": \"/\", \"submodule\": false }Batch diffsTo reduce the response size for the diffs endpoint, we are splitting this response up into different requests, the response size of each request.Allow the diffs app to start rendering diffs as quickly as the first request finishes.To make the first request quicker, the request gets sent asking for a small amount of diffs. The number of diffs requested then increases, until the maximum number of diffs per request is 30.When the request finishes, the diffs app formats the data received into a format that makes it easier for the diffs app to render the diffs lines.%%{init: { \"fontFamily\": \"GitLab Sans\" }}%% graph TD diffs flowchart of steps taken when rendering a diff, including retrieval and display preparations A[fetchDiffFilesBatch] --> B[commit SET_DIFF_DATA_BATCH] --> C[prepareDiffData] --> D[prepareRawDiffFile] --> E[ensureBasicDiffFileLines] --> F[prepareDiffFileLines] --> G[finalizeDiffFile] --> H[deduplicateFilesList] After this has been completed, the diffs app can now begin to render the diff lines. However, before anything can be rendered the diffs app does one more format. It takes the diff line data, and maps the data into a format for easier switching between inline and side-by-side modes. This formatting happens in a computed property inside the diff_content.vue component.Render queueThis might not be required any more. Some investigation work is required to decide the future of the render queue. The virtual scroll bar we created has probably removed any performance benefit we got from this approach.To render diffs quickly, we have a render queue that allows the diffs to render only if the browser is idle. This saves the browser getting frozen when rendering a lot of large diffs at once, and allows us to reduce the total blocking time.This pipeline of rendering files happens only if all the below conditions are true for every diff file. If any of these are false, then this render queue does not happen and the diffs get rendered as expected.Are the diffs in this file already rendered?Does this diff have a viewer? (Meaning, is it not a download?)Is the diff expanded?This chart gives a brief overview of the pipeline that happens:%%{init: { \"fontFamily\": \"GitLab Sans\" }}%% graph TD queue pipeline of the steps in the render queue pipeline A[startRenderDiffsQueue] -->B B[commit RENDER_FILE current file index] -->C C[canRenderNextFile?] C -->|Yes| D[Render file] -->B C -->|No| E[Re-run requestIdleCallback] -->C The checks that the idle time remaining less than 5 ms?Have we already tried to render this file 4 times?After these checks happen, the file is marked in Vuex as renderable, which allows the diffs app to start rendering the diff lines and discussions.Diffs Vue appComponentsVuex storeAPI RequestsMetadataBatch diffsRender queue\n\nExample:\n```text\n%%{init: { \"fontFamily\": \"GitLab Sans\" }}%%\n flowchart TB\n accTitle: Component rendering\n accDescr: Flowchart of how components are rendered in the GitLab front end\n classDef code font-family: monospace;\n\n A[\"diffs~~app.vue\"]\n descVirtualScroller([\"Virtual Scroller\"])\n codeForFiles[[\"v-for(diffFiles)\"]]\n B[\"diffs~~diff_file.vue\"]\n C[\"diffs~~diff_file_header.vue\"]\n D[\"diffs~~diff_stats.vue\"]\n E[\"diffs~~diff_content.vue\"]\n boolFileIsText{isTextFile}\n boolOnlyWhitespace{isWhitespaceOnly}\n boolNotDiffable{notDiffable}\n boolNoPreview{noPreview}\n descShowChanges([\"Show button to "Show changes"\"])\n %% Non-text changes\n dirDiffViewer>\"vue_shared~~diff_viewer\"]\n F[\"./viewers/not_diffable.vue\"]\n G[\"./viewers/no_preview.vue\"]\n H[\"./diff_viewer.vue\"]\n I[\"diffs~~diff_view.vue\"]\n boolIsRenamed{isRenamed}\n boolIsModeChanged{isModeChanged}\n boolFileHasNoPath{hasNewPath}\n boolIsImage{isImage}\n J[\"./viewers/renamed.vue\"]\n K[\"./viewers/mode_changed.vue\"]\n descNoViewer([\"No viewer is rendered\"])\n L[\"./viewers/image_diff_viewer.vue\"]\n M[\"./viewers/download.vue\"]\n N[\"vue_shared~~download_diff_viewer.vue\"]\n boolImageIsReplaced{isReplaced}\n O[\"vue_shared~~image_viewer.vue\"]\n switchImageMode((image_diff_viewer.mode))\n P[\"./viewers/image_diff/onion_skin_viewer.vue\"]\n Q[\"./viewers/image_diff/swipe_viewer.vue\"]\n R[\"./viewers/image_diff/two_up_viewer.vue\"]\n S[\"diffs~~image_diff_overlay.vue\"]\n codeForImageDiscussions[[\"v-for(discussions)\"]]\n T[\"vue_shared~~design_note_pin.vue\"]\n U[\"vue_shared~~user_avatar_link.vue\"]\n V[\"diffs~~diff_discussions.vue\"]\n W[\"batch_comments~~diff_file_drafts.vue\"]\n codeForTwoUpDiscussions[[\"v-for(discussions)\"]]\n codeForTwoUpDrafts[[\"v-for(drafts)\"]]\n X[\"notes~~notable_discussion.vue\"]\n %% Text-file changes\n codeForDiffLines[[\"v-for(diffLines)\"]]\n Y[\"diffs~~diff_expansion_cell.vue\"]\n Z[\"diffs~~diff_row.vue\"]\n AA[\"diffs~~diff_line.vue\"]\n AB[\"batch_comments~~draft_note.vue\"]\n AC[\"diffs~~diff_comment_cell.vue\"]\n AD[\"diffs~~diff_gutter_avatars.vue\"]\n AE[\"ee-diffs~~inline_findings_gutter_icon_dropdown.vue\"]\n AF[\"notes~~noteable_note.vue\"]\n AG[\"notes~~note_actions.vue\"]\n AH[\"notes~~note_body.vue\"]\n AI[\"notes~~note_header.vue\"]\n AJ[\"notes~~reply_button.vue\"]\n AK[\"notes~~note_awards_list.vue\"]\n AL[\"notes~~note_edited_text.vue\"]\n AM[\"notes~~note_form.vue\"]\n AN[\"vue_shared~~awards_list.vue\"]\n AO[\"emoji~~picker.vue\"]\n AP[\"emoji~~emoji_list.vue\"]\n descEmojiVirtualScroll([\"Virtual Scroller\"])\n AQ[\"emoji~~category.vue\"]\n AR[\"emoji~emoji_category.vue\"]\n AS[\"vue_shared~~markdown_editor.vue\"]\n\n class codeForFiles,codeForImageDiscussions code;\n class codeForTwoUpDiscussions,codeForTwoUpDrafts code;\n class codeForDiffLines code;\n %% Also apply code styling to this switch node\n class switchImageMode code;\n %% Also apply code styling to these boolean nodes\n class boolFileIsText,boolOnlyWhitespace,boolNotDiffable,boolNoPreview code;\n class boolIsRenamed,boolIsModeChanged,boolFileHasNoPath,boolIsImage code;\n class boolImageIsReplaced code;\n\n A --> descVirtualScroller\n A -->|\"Virtual Scroller is\n disabled when\n Find in page search\n (Command/Control+f) is used.\"|codeForFiles\n descVirtualScroller --> codeForFiles\n codeForFiles --> B --> C --> D\n B --> E\n\n %% File view flags cascade\n E --> boolFileIsText\n boolFileIsText --> |yes| I\n boolFileIsText --> |no| boolOnlyWhitespace\n\n boolOnlyWhitespace --> |yes| descShowChanges\n boolOnlyWhitespace --> |no| dirDiffViewer\n\n dirDiffViewer --> H\n\n H --> boolNotDiffable\n\n boolNotDiffable --> |yes| F\n boolNotDiffable --> |no| boolNoPreview\n\n boolNoPreview --> |yes| G\n boolNoPreview --> |no| boolIsRenamed\n\n boolIsRenamed --> |yes| J\n boolIsRenamed --> |no| boolIsModeChanged\n\n boolIsModeChanged --> |yes| K\n boolIsModeChanged --> |no| boolFileHasNoPath\n\n boolFileHasNoPath --> |yes| boolIsImage\n boolFileHasNoPath --> |no| descNoViewer\n\n boolIsImage --> |yes| L\n boolIsImage --> |no| M\n M --> N\n\n %% Image diff viewer\n L --> boolImageIsReplaced\n\n boolImageIsReplaced --> |yes| switchImageMode\n boolImageIsReplaced --> |no| O\n\n switchImageMode -->|\"'twoup' (default)\"| R\n switchImageMode -->|'onion'| P\n switchImageMode -->|'swipe'| Q\n\n P & Q --> S\n S --> codeForImageDiscussions\n S --> AM\n\n R-->|\"Rendered in\n note container div\"|U & W & V\n %% Do not combine this with the \"P & Q --> S\" statement above\n %% The order of these node relationships defines the\n %% layout of the graph, and we need it in this order.\n R --> S\n\n V --> codeForTwoUpDiscussions\n W --> codeForTwoUpDrafts\n\n %% This invisible link forces `noteable_discussion`\n %% to render above `design_note_pin`\n X ~~~ T\n\n codeForTwoUpDrafts --> AB\n codeForImageDiscussions & codeForTwoUpDiscussions & codeForTwoUpDrafts --> T\n codeForTwoUpDiscussions --> X\n\n %% Text file diff viewer\n I --> codeForDiffLines\n codeForDiffLines --> Z\n codeForDiffLines -->|\"isMatchLine?\"| Y\n codeForDiffLines -->|\"hasCodeQuality?\"| AA\n codeForDiffLines -->|\"hasDraftNote(s)?\"| AB\n\n Z -->|\"hasCodeQuality?\"| AE\n Z -->|\"hasDiscussions?\"| AD\n\n AA --> AC\n\n %% Draft notes\n AB --> AF\n AF --> AG & AH & AI\n AG --> AJ\n AH --> AK & AL & AM\n AK --> AN --> AO --> AP --> descEmojiVirtualScroll --> AQ --> AR\n AM --> AS\n```\n\nExample:\n```javascript\n{\n \"key\": \"\",\n \"path\": \"\",\n \"name\": \"\",\n \"type\": \"\",\n \"tree\": [],\n \"changed\": true,\n \"diffLoaded\": false,\n \"filePaths\": {\n \"old\": file.old_path,\n \"new\": file.new_path\n },\n \"tempFile\": false,\n \"deleted\": false,\n \"fileHash\": \"\",\n \"addedLines\": 1,\n \"removedLines\": 1,\n \"parentPath\": \"/\",\n \"submodule\": false\n}\n```\n\nExample:\n```text\n%%{init: { \"fontFamily\": \"GitLab Sans\" }}%%\ngraph TD\n accTitle: Formatting diffs\n accDescr: A flowchart of steps taken when rendering a diff, including retrieval and display preparations\n A[fetchDiffFilesBatch] -->\n B[commit SET_DIFF_DATA_BATCH] -->\n C[prepareDiffData] -->\n D[prepareRawDiffFile] -->\n E[ensureBasicDiffFileLines] -->\n F[prepareDiffFileLines] -->\n G[finalizeDiffFile] -->\n H[deduplicateFilesList]\n```\n\nExample:\n```text\n%%{init: { \"fontFamily\": \"GitLab Sans\" }}%%\ngraph TD\n accTitle: Render queue pipeline\n accDescr: Flowchart of the steps in the render queue pipeline\n A[startRenderDiffsQueue] -->B\n B[commit RENDER_FILE current file index] -->C\n C[canRenderNextFile?]\n C -->|Yes| D[Render file] -->B\n C -->|No| E[Re-run requestIdleCallback] -->C\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.806Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":4,"totalLines":235,"estimatedTokens":4497}}478{"id":"doc-jedis_guide_java_docs-62184068","source":"documentation","title":"Jedis guide (Java) | Docs","url":"https://redis.io/docs/latest/develop/clients/jedis/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"description\":\"Connect your Java application to a Redis database\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Jedis guide (Java)\",\"tableOfContents\":{\"sections\":[{\"id\":\"install\",\"title\":\"Install\"},{\"id\":\"connect-and-test\",\"title\":\"Connect and test\"},{\"id\":\"more-information\",\"title\":\"More information\"}]},\"codeExamples\":[{\"codetabsId\":\"landing-stepimport\",\"description\":\"Foundational: Import required Jedis classes for Redis client functionality\",\"difficulty\":\"beginner\",\"id\":\"import\",\"languages\":[{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_landing-stepimport\"}]},{\"codetabsId\":\"landing-stepconnect\",\"description\":\"Foundational: Connect to a Redis server and establish a client connection\",\"difficulty\":\"beginner\",\"id\":\"connect\",\"languages\":[{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_landing-stepconnect\"}]},{\"codetabsId\":\"landing-stepset_get_string\",\"description\":\"Foundational: Set and retrieve string values using SET and GET commands\",\"difficulty\":\"beginner\",\"id\":\"set_get_string\",\"languages\":[{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_landing-stepset_get_string\"}]},{\"codetabsId\":\"landing-stepset_get_hash\",\"description\":\"Foundational: Store and retrieve hash data structures using HSET and HGETALL\",\"difficulty\":\"beginner\",\"id\":\"set_get_hash\",\"languages\":[{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_landing-stepset_get_hash\"}]},{\"codetabsId\":\"landing-stepclose\",\"description\":\"Foundational: Properly close a Redis client connection to release resources\",\"difficulty\":\"beginner\",\"id\":\"close\",\"languages\":[{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_landing-stepclose\"}]}]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```xml\n<dependency>\n <groupId>redis.clients</groupId>\n <artifactId>jedis</artifactId>\n <version>7.2.0</version>\n</dependency>\n```\n\nExample:\n```text\nrepositories {\n mavenCentral()\n}\n//...\ndependencies {\n implementation 'redis.clients:jedis:7.2.0'\n //...\n}\n```\n\nExample:\n```java\nimport redis.clients.jedis.RedisClient;\nimport java.util.HashMap;\nimport java.util.Map;\n```\n\nExample:\n```java\nimport redis.clients.jedis.RedisClient;\nimport java.util.HashMap;\nimport java.util.Map;\n\npublic class LandingExample {\n\n public void run() {\n RedisClient jedis = new RedisClient(\"redis://localhost:6379\");\n\n String res1 = jedis.set(\"bike:1\", \"Deimos\");\n System.out.println(res1); // >>> OK\n\n String res2 = jedis.get(\"bike:1\");\n System.out.println(res2); // >>> Deimos\n\n Map<String, String> hash = new HashMap<>();\n hash.put(\"name\", \"John\");\n hash.put(\"surname\", \"Smith\");\n hash.put(\"company\", \"Redis\");\n hash.put(\"age\", \"29\");\n\n Long res3 = jedis.hset(\"user-session:123\", hash);\n System.out.println(res3); // >>> 4\n\n Map<String, String> res4 = jedis.hgetAll(\"user-session:123\");\n System.out.println(res4);\n // >>> {name=John, surname=Smith, company=Redis, age=29}\n\n jedis.close();\n }\n}\n```\n\nExample:\n```java\nRedisClient jedis = new RedisClient(\"redis://localhost:6379\");\n```\n\nExample:\n```java\nString res1 = jedis.set(\"bike:1\", \"Deimos\");\n System.out.println(res1); // >>> OK\n\n String res2 = jedis.get(\"bike:1\");\n System.out.println(res2); // >>> Deimos\n```\n\nExample:\n```java\nMap<String, String> hash = new HashMap<>();\n hash.put(\"name\", \"John\");\n hash.put(\"surname\", \"Smith\");\n hash.put(\"company\", \"Redis\");\n hash.put(\"age\", \"29\");\n\n Long res3 = jedis.hset(\"user-session:123\", hash);\n System.out.println(res3); // >>> 4\n\n Map<String, String> res4 = jedis.hgetAll(\"user-session:123\");\n System.out.println(res4);\n // >>> {name=John, surname=Smith, company=Redis, age=29}\n```\n\nExample:\n```java\njedis.close();\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.389Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":8,"totalLines":103,"estimatedTokens":1064}}479{"id":"doc-libraries_and_tools_docs-c09dd62f","source":"documentation","title":"Libraries and tools | Docs","url":"https://redis.io/docs/latest/integrate","text":"{\"categories\":null,\"description\":\"\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Libraries and tools\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nDevelop with Redis Libraries and tools Redis products Commands Docs Docs → Libraries and tools Libraries and tools Search libraries and tools… Filter by type… Library Framework Observability Provisioning Data migration Data integration Cloud service data integration Redis Data Integration Redis Data Integration keeps Redis in sync with the primary database in near real time. Learn more → Read more tool Redis Insight Redis Insight is a powerful tool for visualizing and optimizing data in Redis. Learn more → Read more service Redis MCP Redis MCP server lets MCP clients access the features of Redis. Learn more → Read more library Python client for Redis redis-py is a Python library for Redis. Learn more → Read more library RedisVL RedisVL provides a powerful, dedicated Python client library for using Redis as a vector database. Leverage Redis's speed, reliability, and vector-based semantic search capabilities to supercharge your application. Learn more → Read more data migration RIOT-X Redis Input/Output Tools (RIOT-X) is a command-line utility designed to help you get data in and out of Redis. Learn more → Read more library Java client for Redis jedis is a Java library for Redis. Learn more → Read more library Java client for Redis Lettuce is a Java library for Redis. Learn more → Read more library Node.js client for Redis node-redis is a Node.js client library for Redis. Learn more → Read more library C#/.NET client for Redis StackExchange.Redis is a C#/.NET library for Redis. Learn more → Read more cloud service Amazon Bedrock With Amazon Bedrock, users can access foundational AI models from a variety of vendors through a single API, streamlining the process of leveraging generative artificial intelligence. Learn more → Read more library Go client for Redis go-redis is a Go client library for Redis. Learn more → Read more library n8n Redis vector store Use Redis as a vector store with n8n workflows Learn more → Read more library PHP client for Redis Predis is a PHP client for Redis. Learn more → Read more provisioning Pulumi provider for Redis Cloud With the Redis Cloud Resource Provider you can provision Redis Cloud resources by using the programming language of your choice. Learn more → Read more provisioning Terraform provider for Redis Cloud The Redis Cloud Terraform provider allows you to provision and manage Redis Cloud resources. Learn more → Read more library C client for Redis hiredis is a minimalistic C client library for Redis. Learn more → Read more observability Prometheus and Grafana with Redis Software You can use Prometheus and Grafana to collect and visualize your Redis Software metrics. Learn more → Read more library Redis for AI Python, JavaScript, and Java libraries for building AI applications with vector search, RAG, and semantic caching. Learn more → Read more observability Prometheus and Grafana with Redis Cloud You can use Prometheus and Grafana to collect and visualize your Redis Cloud metrics. Learn more → Read more library Ruby client for Redis redis-rb is a Ruby client library for Redis. Learn more → Read more observability Datadog with Redis Cloud To collect, view, and monitor metrics data from your databases and other cluster components, you can connect Datadog to your Redis Cloud cluster using the Redis Datadog Integration. Learn more → Read more observability Datadog with Redis Software To collect, view, and monitor metrics data from your databases and other cluster components, you can connect Datadog to your Redis Software cluster using the Redis Datadog Integration. Learn more → Read more observability Dynatrace with Redis Cloud To collect, view, and monitor metrics data from your databases and other cluster components, you can connect Dynatrace to your Redis Cloud cluster using the Redis Dynatrace Integration. Learn more → Read more observability Dynatrace with Redis Software To collect, view, and monitor metrics data from your databases and other cluster components, you can connect Dynatrace to your Redis Software cluster using the Redis Dynatrace Integration. Learn more → Read more observability Nagios with Redis Software This Nagios plugin enables you to monitor the status of Redis Software related components and alerts. Learn more → Read more observability New Relic with Redis Cloud To collect, view, and monitor metrics data from your databases and other cluster components, you can connect New Relic to your Redis Cloud cluster using the Redis New Relic Integration. Learn more → Read more observability New Relic with Redis Software To collect, view, and monitor metrics data from your databases and other cluster components, you can connect New Relic to your Redis Software cluster using the Redis New Relic Integration. Learn more → Read more cloud service Redis on Railway Railway simplifies your infrastructure stack from servers to observability with a single, scalable, easy-to-use platform. The Railway Redis database template allows you to provision and connect a Redis database with zero configuration, alongside your other services. Scale your application with Redis on Railway with highly performant networking and intuitive scaling. Learn more → Read more observability Uptrace with Redis Software To collect, view, and monitor metrics data from your databases and other cluster components, you can connect Uptrace to your Redis Software cluster using OpenTelemetry Collector. Learn more → Read more data integration Confluent with Redis Cloud The Redis Sink connector for Confluent Cloud allows you to send data from Confluent Cloud to your Redis Cloud database. Learn more → Read more framework Spring Data Redis Spring Data Redis integrates Redis with the Spring framework, letting you use Redis as a cache and add client-side failover to your connections. Learn more → Read more framework Redis with FastAPI The fastapi-redis-sdk provides automatic connection pooling and dependency-injection caching for FastAPI, with HTTP-native ETag and Cache-Control support. Learn more → Read more library FusionCache for C#/.NET FusionCache is an easy to use, fast and robust hybrid cache with advanced resiliency features for C#/.NET applications. Learn more → Read more library RedisOM for .NET Redis OM for .NET is an object-mapping library for Redis. Learn more → Read more library RedisOM for Java The Redis OM for Java library is based on the Spring framework and provides object-mapping abstractions. Learn more → Read more library RedisOM for Node.js Redis OM for Node.js is an object-mapping library for Redis. Learn more → Read more library RedisOM for Python Redis OM for Python is an object-mapping library for Redis. Learn more → Read more library Rust client for Redis redis-rs is a Rust client library for Redis. Learn more → Read more cloud Redis Cloud on AWS Deploy and manage Redis Cloud databases on AWS with seamless integration and global availability. Learn more → Read more cloud Redis Cloud on Azure Deploy and manage Redis Cloud databases on Azure with enterprise-grade security and global reach. Learn more → Read more cloud Redis Cloud on Google Cloud Deploy and manage Redis Cloud databases on Google Cloud with scalable infrastructure and AI/ML integration. Learn more → Read more platform Redis with Vercel Connect Redis to your Vercel applications for enhanced performance and data management. Learn more → Read more platform Redis Cloud on Heroku Add Redis Cloud to your Heroku applications for fast data storage and caching. Learn more → Read more platform Redis on Kubernetes Deploy Redis Enterprise on Kubernetes with operators and helm charts. Learn more → Read more platform Redis Software with Docker Deploy Redis Software using Docker for development and testing environments. Learn more → Read more ai Redis with Google Agent Development Kit (ADK) Use Redis as the memory, search, and caching layer for Google ADK agents via the adk-redis package. Learn more → Read more ai Redis with LangChain Use Redis as a vector database and memory store for LangChain AI applications. Learn more → Read more # A C D F G J N P R S T U\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.391Z","totalSectionsIncluded":3,"totalCodeBlocksIncluded":0,"totalLines":7,"estimatedTokens":2106}}480{"id":"doc-riot_x_docs-b04915e6","source":"documentation","title":"RIOT-X | Docs","url":"https://redis.io/docs/latest/integrate/riot/","text":"{\"categories\":[\"docs\",\"integrate\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\"],\"description\":\"Redis Input/Output Tools\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"mig\",\"location\":\"body\",\"title\":\"RIOT-X\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.399Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":101}}481{"id":"doc-quickstart_docs-f3776c70","source":"documentation","title":"Quickstart | Docs","url":"https://redis.io/docs/latest/integrate/redis-data-integration/quick-start-guide/","text":"{\"categories\":[\"redis-di\"],\"description\":\"Get started with a simple pipeline example\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Quickstart\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```bash\ncurl -v -k -d '{\"eviction_policy\": \"noeviction\"}' \\\n -u '<USERNAME>:<PASSWORD>' \\\n -H \"Content-Type: application/json\" \\\n -X PUT https://<CLUSTER_FQDN>:9443/v1/bdbs/<BDB_UID>\n```\n\nExample:\n```bash\ncurl -v -k -d '{\"data_persistence\":\"aof\"}' \\\n -u '<USERNAME>:<PASSWORD>' \\\n -H \"Content-Type: application/json\" \n -X PUT https://<CLUSTER_FQDN>:9443/v1/bdbs/<BDB_UID>\ncurl -v -k -d '{\"aof_policy\":\"appendfsync-every-sec\"}' \\\n -u '<USERNAME>:<PASSWORD>' \\\n -H \"Content-Type: application/json\" \\\n -X PUT https://<CLUSTER_FQDN>:9443/v1/bdbs/<BDB_UID>\n```\n\nExample:\n```bash\nredis-di set-context <unique-context-name> --api-url https://<host> --user <user>\n```\n\nExample:\n```bash\nredis-di use-context <context name>\n```\n\nExample:\n```bash\nredis-di deploy --dir <path to pipeline folder>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.405Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":5,"totalLines":40,"estimatedTokens":295}}482{"id":"doc-managed_auth_with_openid_connect_render_docs-62fdb1dd","source":"documentation","title":"Managed Auth with OpenID Connect – Render Docs","url":"https://render.com/docs/oidc","text":"jsonCopy to clipboard{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"Federated\": \"{YOUR_PROVIDER_ARN}\" }, \"Action\": \"sts:AssumeRoleWithWebIdentity\", \"Condition\": { \"StringEquals\": { \"oidc.render.com/{YOUR_WORKSPACE_ID}:aud\": \"sts.amazonaws.com\" } } } ]}\n\nplaintextCopy to clipboardworkspace:{WORKSPACE_ID}:environment:{ENVIRONMENT_ID}:service:{SERVICE_ID}\n\njsonCopy to clipboard// Limit to services in workspace `tea-abc123`// that belong to environment `evm-def456`\"StringLike\": { \"oidc.render.com/{YOUR_WORKSPACE_ID}:sub\": \"workspace:tea-abc123:environment:evm-def456:service:*\"} // Limit to the single service with ID `srv-ghi789`\"StringLike\": { \"oidc.render.com/{YOUR_WORKSPACE_ID}:sub\": \"workspace:*:environment:*:service:srv-ghi789\"}\n\nindex.tstypescriptCopy to clipboardimport Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic(); const message = await client.messages.create({ , messages: [{ role: \"user\", content: \"Hello, Claude\" }], model: \"claude-sonnet-5\"}); for (const block of message.content) { if (block.type === \"text\") { console.log(block.text); }}\n\nmain.pypythonCopy to clipboardfrom anthropic import Anthropic client = Anthropic() message = client.messages.create( model=\"claude-sonnet-5\", max_tokens=1024, messages=[{\"role\": \"user\", \"content\": \"Hello, Claude\"}],)print(message.content[0].text)\n\nindex.tstypescriptCopy to clipboardimport { readFileSync } from \"node:fs\";import OpenAI from \"openai\"; const tokenPath = process.env.OPENAI_IDENTITY_TOKEN_FILE!; const client = new OpenAI({ workloadIdentity: { !, !, provider: { tokenType: \"jwt\", getToken: () => readFileSync(tokenPath, \"utf8\").trim(), }, },});\n\nmain.pypythonCopy to clipboardimport osfrom pathlib import Path from openai import OpenAI TOKEN_PATH = os.environ.get(\"OPENAI_IDENTITY_TOKEN_FILE\") client = OpenAI( workload_identity={ \"identity_provider_id\": os.environ[\"OPENAI_IDENTITY_PROVIDER_ID\"], \"service_account_id\": os.environ[\"OPENAI_SERVICE_ACCOUNT_ID\"], \"provider\": { \"token_type\": \"jwt\", \"get_token\": Path(TOKEN_PATH).read_text().strip }, },)\n\nExample:\n```json\n{ \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Principal\": { \"Federated\": \"{YOUR_PROVIDER_ARN}\" }, \"Action\": \"sts:AssumeRoleWithWebIdentity\", \"Condition\": { \"StringEquals\": { \"oidc.render.com/{YOUR_WORKSPACE_ID}:aud\": \"sts.amazonaws.com\" } } } ]}\n```\n\nExample:\n```text\nworkspace:{WORKSPACE_ID}:environment:{ENVIRONMENT_ID}:service:{SERVICE_ID}\n```\n\nExample:\n```json\n// Limit to services in workspace `tea-abc123`// that belong to environment `evm-def456`\"StringLike\": { \"oidc.render.com/{YOUR_WORKSPACE_ID}:sub\": \"workspace:tea-abc123:environment:evm-def456:service:*\"}\n// Limit to the single service with ID `srv-ghi789`\"StringLike\": { \"oidc.render.com/{YOUR_WORKSPACE_ID}:sub\": \"workspace:*:environment:*:service:srv-ghi789\"}\n```\n\nExample:\n```typescript\nimport Anthropic from '@anthropic-ai/sdk';\nconst client = new Anthropic();\nconst message = await client.messages.create({ max_tokens: 1024, messages: [{ role: \"user\", content: \"Hello, Claude\" }], model: \"claude-sonnet-5\"});\nfor (const block of message.content) { if (block.type === \"text\") { console.log(block.text); }}\n```\n\nExample:\n```python\nfrom anthropic import Anthropic\nclient = Anthropic()\nmessage = client.messages.create( model=\"claude-sonnet-5\", max_tokens=1024, messages=[{\"role\": \"user\", \"content\": \"Hello, Claude\"}],)print(message.content[0].text)\n```\n\nExample:\n```typescript\nimport { readFileSync } from \"node:fs\";import OpenAI from \"openai\";\nconst tokenPath = process.env.OPENAI_IDENTITY_TOKEN_FILE!;\nconst client = new OpenAI({ workloadIdentity: { identityProviderId: process.env.OPENAI_IDENTITY_PROVIDER_ID!, serviceAccountId: process.env.OPENAI_SERVICE_ACCOUNT_ID!, provider: { tokenType: \"jwt\", getToken: () => readFileSync(tokenPath, \"utf8\").trim(), }, },});\n```\n\nExample:\n```python\nimport osfrom pathlib import Path\nfrom openai import OpenAI\nTOKEN_PATH = os.environ.get(\"OPENAI_IDENTITY_TOKEN_FILE\")\nclient = OpenAI( workload_identity={ \"identity_provider_id\": os.environ[\"OPENAI_IDENTITY_PROVIDER_ID\"], \"service_account_id\": os.environ[\"OPENAI_SERVICE_ACCOUNT_ID\"], \"provider\": { \"token_type\": \"jwt\", \"get_token\": Path(TOKEN_PATH).read_text().strip }, },)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.785Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":7,"totalLines":61,"estimatedTokens":1134}}483{"id":"doc-relations_and_joins_in_prisma_8_prisma_documenta-1023ee66","source":"documentation","title":"Relations and joins in Prisma 8 | Prisma Documentation","url":"https://www.prisma.io/docs/orm/v8/fundamentals/relations-and-joins","text":"For the complete Prisma documentation index optimized for AI agents, see https://www.prisma.io/docs/llms.txt. A markdown version of every docs page is available by appending .md to its URL.\n\nThe Prisma 8 Release Candidate is available.Explore the next Prisma ORM workflow.Read the docs\n\nExample:\n```text\nimport { db } from \"./prisma/db\";\n\nconst posts = await db.orm.public.Post\n .where({ published: true })\n .include(\"author\")\n .all();\n// posts[0].author is the full User record\n```\n\nExample:\n```text\nmodel Profile {\n id String @id @default(cuid(2))\n bio String\n userId String @unique\n user User @relation(fields: [userId], references: [id])\n}\n```\n\nExample:\n```text\nconst profileWithUser = await db.orm.public.Profile\n .where({ userId: user.id })\n .include(\"user\")\n .first();\n// { id, bio, userId, user: { id, email, name, createdAt } }\n```\n\nExample:\n```text\nconst plan = db.sql.public.user\n .as(\"u\")\n .innerJoin(db.sql.public.profile.as(\"pr\"), (f, fns) => fns.eq(f.pr.userId, f.u.id))\n .select((f) => ({ email: f.u.email, bio: f.pr.bio }))\n .build();\n\nconst usersWithProfiles = await db.runtime().execute(plan);\n```\n\nExample:\n```text\n[ { email: 'alice@prisma.io', bio: 'Writes about typed databases.' } ]\n```\n\nExample:\n```text\nmodel User {\n id String @id @default(cuid(2))\n email String @unique\n posts Post[]\n}\n\nmodel Post {\n id String @id @default(cuid(2))\n title String\n authorId String\n author User @relation(fields: [authorId], references: [id])\n}\n```\n\nExample:\n```text\n// Each user with their posts\nconst usersWithPosts = await db.orm.public.User.include(\"posts\").all();\n// Array<{ id, email, posts: Post[] }>\n\n// Each post with its author\nconst postsWithAuthors = await db.orm.public.Post.include(\"author\").all();\n// Array<{ id, title, authorId, author: User }>\n```\n\nExample:\n```text\nconst usersWithRecentPosts = await db.orm.public.User\n .select(\"id\", \"email\")\n .include(\"posts\", (post) =>\n post\n .select(\"id\", \"title\", \"createdAt\")\n .orderBy((p) => p.createdAt.desc())\n .take(5),\n )\n .take(10)\n .all();\n// Array<{ id, email, posts: Array<{ id, title, createdAt }> }>\n```\n\nExample:\n```text\nmodel Tag {\n id String @id @default(cuid(2))\n name String @unique\n posts PostTag[]\n}\n\nmodel PostTag {\n id String @id @default(cuid(2))\n postId String\n tagId String\n post Post @relation(fields: [postId], references: [id])\n tag Tag @relation(fields: [tagId], references: [id])\n}\n```\n\nExample:\n```text\nconst postsWithTags = await db.orm.public.Post\n .where({ published: true })\n .include(\"tags\", (postTag) => postTag.include(\"tag\"))\n .all();\n```\n\nExample:\n```text\n[\n {\n title: 'Hello Prisma 8',\n // ...\n tags: [\n { id: 'k2…', postId: 'i3…', tagId: 't1…', tag: { id: 't1…', name: 'typescript' } },\n { id: 'k3…', postId: 'i3…', tagId: 't2…', tag: { id: 't2…', name: 'databases' } }\n ]\n },\n { title: 'Typed queries', tags: [ /* one link record */ ] }\n]\n```\n\nExample:\n```text\nawait db.orm.public.PostTag.create({ postId: post.id, tagId: tag.id });\n```\n\nExample:\n```text\n// Users who have at least one published post\nconst activeAuthors = await db.orm.public.User\n .where((u) => u.posts.some((p) => p.published.eq(true)))\n .all();\n\n// Posts that carry a specific tag\nconst taggedPosts = await db.orm.public.Post\n .where((p) => p.tags.some((pt) => pt.tagId.eq(tag.id)))\n .all();\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:08.293Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":13,"totalLines":151,"estimatedTokens":856}}484{"id":"doc-prisma_8_cli_configuration_prisma_documentation-07eb824b","source":"documentation","title":"Prisma 8 CLI configuration | Prisma Documentation","url":"https://www.prisma.io/docs/cli/v8/configuration","text":"For the complete Prisma documentation index optimized for AI agents, see https://www.prisma.io/docs/llms.txt. A markdown version of every docs page is available by appending .md to its URL.\n\nThe Prisma 8 Release Candidate is available.Explore the next Prisma ORM workflow.Read the docs\n\nExample:\n```text\nimport \"dotenv/config\";\nimport { defineConfig } from \"@prisma/orm-postgres/config\";\n\nexport default defineConfig({\n contract: \"./prisma/contract.prisma\",\n db: {\n connection: process.env[\"DATABASE_URL\"]!,\n },\n});\n```\n\nExample:\n```text\nbunx @prisma/cli@next contract emit --config ./config/prisma-next.config.ts\n```\n\nExample:\n```text\nimport { defineConfig } from \"@prisma/orm-postgres/config\";\n\nexport default defineConfig({\n contract: \"./prisma/contract.prisma\",\n});\n```\n\nExample:\n```text\nimport { defineConfig } from \"@prisma/orm-postgres/config\";\nimport pgvector from \"@prisma/orm-extension-pgvector/control\";\n\nexport default defineConfig({\n contract: \"./prisma/contract.prisma\",\n extensions: [pgvector],\n db: {\n connection: process.env[\"DATABASE_URL\"]!,\n },\n});\n```\n\nExample:\n```text\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\"\n```\n\nExample:\n```text\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\" --json\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:08.294Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":6,"totalLines":56,"estimatedTokens":314}}485{"id":"doc-db_verify_prisma_8_cli_prisma_documentation-900a9b30","source":"documentation","title":"db verify | Prisma 8 CLI | Prisma Documentation","url":"https://www.prisma.io/docs/cli/v8/db-verify","text":"For the complete Prisma documentation index optimized for AI agents, see https://www.prisma.io/docs/llms.txt. A markdown version of every docs page is available by appending .md to its URL.\n\nThe Prisma 8 Release Candidate is available.Explore the next Prisma ORM workflow.Read the docs\n\nExample:\n```text\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\"\n```\n\nExample:\n```text\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\"\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\" --strict\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\" --schema-only\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\" --marker-only\n```\n\nExample:\n```text\nbunx @prisma/cli@next db verify --db \"$DATABASE_URL\" --json\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:08.295Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":23,"estimatedTokens":182}}486{"id":"doc-rust_proto_design_decisions_protocol_buffers_doc-16537eba","source":"documentation","title":"Rust Proto Design Decisions | Protocol Buffers Documentation","url":"https://protobuf.dev/reference/rust/rust-design-decisions/","text":"Protocol Buffers Documentation\n\nExample:\n```rust\nstruct SomeMsg(Box<cpp::SomeMsg>);\nstruct SomeMsgView<'a>(&'a cpp::SomeMsg);\nstruct SomeMsgMut<'a>(&'a mut cpp::SomeMsg);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:09.228Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":47}}487{"id":"doc-extension_declarations_protocol_buffers_document-3a282f98","source":"documentation","title":"Extension Declarations | Protocol Buffers Documentation","url":"https://protobuf.dev/programming-guides/extension_declarations","text":"Protocol Buffers Documentation\n\nExample:\n```proto\nedition = \"2023\";\n\nmessage Foo {\n extensions 4 to 1000 [\n declaration = {\n number: 4,\n full_name: \".my.package.event_annotations\",\n type: \".logs.proto.ValidationAnnotations\",\n repeated: true },\n declaration = {\n number: 999,\n full_name: \".foo.package.bar\",\n type: \"int32\"}];\n}\n```\n\nExample:\n```proto\npackage my.package;\nextend Foo {\n repeated logs.proto.ValidationAnnotations event_annotations = 4;\n}\n```\n\nExample:\n```proto\npackage foo.package;\nextend Foo {\n optional int32 bar = 999;\n}\n```\n\nExample:\n```proto\nedition = \"2023\";\n\nmessage Foo {\n extensions 4 to 1000 [\n declaration = {\n number: 500,\n full_name: \".my.package.event_annotations\",\n type: \".logs.proto.ValidationAnnotations\",\n reserved: true }];\n}\n```\n\nExample:\n```proto\nmessage ExtensionRangeOptions {\n message Declaration {\n optional int32 number = 1;\n optional string full_name = 2;\n optional string type = 3;\n optional bool reserved = 5;\n optional bool repeated = 6;\n }\n repeated Declaration declaration = 2;\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:09.268Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":65,"estimatedTokens":283}}488{"id":"doc-google_protobuf_wellknowntypes_uint64value_class-aefd9496","source":"documentation","title":"Google.Protobuf.WellKnownTypes.UInt64Value Class Reference","url":"https://protobuf.dev/reference/csharp/api-docs/class/google/protobuf/well-known-types/u-int64-value.html","text":"Wrapper message for uint64.\n\nThe JSON representation for UInt64Value is JSON string.\n\nConstructors and Destructors UInt64Value() UInt64Value(UInt64Value other)\n\nProperties Descriptor pbr::MessageDescriptor Descriptor pbr::MessageDescriptor pb::IMessage. Parser pb::MessageParser< UInt64Value > Value ulong The uint64 value.\n\nPublic attributes ValueFieldNumber = 1 const int Field number for the \"value\" field.\n\nAPI Reference:\nPublic functions CalculateSize() int Clone() UInt64Value Equals(object other) override bool Equals(UInt64Value other) bool GetHashCode() override int MergeFrom(UInt64Value other) void MergeFrom(pb::CodedInputStream input) void ToString() override string WriteTo(pb::CodedOutputStream output) void\n\nDescriptor pbr::MessageDescriptor Descriptor Descriptor pbr::MessageDescriptor pb::IMessage. Descriptor Parser pb::MessageParser< UInt64Value > Parser Value ulong Value The uint64 value. Public attributes ValueFieldNumber const int ValueFieldNumber = 1 Field number for the \"value\" field. Public functions CalculateSize int CalculateSize() Clone UInt64Value Clone() Equals override bool Equals( object other ) Equals bool Equals( UInt64Value other ) GetHashCode override int GetHashCode() MergeFrom void MergeFrom( UInt64Value other ) MergeFrom void MergeFrom( pb::CodedInputStream input ) ToString override string ToString() UInt64Value UInt64Value() UInt64Value UInt64Value( UInt64Value other ) WriteTo void WriteTo( pb::CodedOutputStream output )\n\nExample:\n```text\npbr::MessageDescriptor Descriptor\n```\n\nExample:\n```text\npbr::MessageDescriptor pb::IMessage. Descriptor\n```\n\nExample:\n```text\npb::MessageParser< UInt64Value > Parser\n```\n\nExample:\n```text\nulong Value\n```\n\nExample:\n```text\nconst int ValueFieldNumber = 1\n```\n\nExample:\n```text\nint CalculateSize()\n```\n\nExample:\n```text\nUInt64Value Clone()\n```\n\nExample:\n```text\noverride bool Equals(\n object other\n)\n```\n\nExample:\n```text\nbool Equals(\n UInt64Value other\n)\n```\n\nExample:\n```text\noverride int GetHashCode()\n```\n\nExample:\n```text\nvoid MergeFrom(\n UInt64Value other\n)\n```\n\nExample:\n```text\nvoid MergeFrom(\n pb::CodedInputStream input\n)\n```\n\nExample:\n```text\noverride string ToString()\n```\n\nExample:\n```text\nUInt64Value()\n```\n\nExample:\n```text\nUInt64Value(\n UInt64Value other\n)\n```\n\nExample:\n```text\nvoid WriteTo(\n pb::CodedOutputStream output\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:09.358Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":16,"totalLines":108,"estimatedTokens":589}}489{"id":"doc-index-585e00a9","source":"documentation","title":"Index","url":"https://protobuf.dev/reference/java/api-docs/index-all.html","text":"A B C D E F G H I J K L M N O P R S T U V W Z A AbstractMessage - Class in com.google.protobuf A partial implementation of the Message interface which implements as many methods of that interface as possible in terms of other methods. AbstractMessage() - Constructor for class com.google.protobuf.AbstractMessage AbstractMessage.Builder<BuilderType extends AbstractMessage.Builder<BuilderType>> - Class in com.google.protobuf A partial implementation of the Message.Builder interface which implements as many methods of that interface as possible in terms of other methods. AbstractMessageLite<MessageType extends AbstractMessageLite<MessageType,BuilderType>,BuilderType extends AbstractMessageLite.Builder<MessageType,BuilderType>> - Class in com.google.protobuf A partial implementation of the MessageLite interface which implements as many methods of that interface as possible in terms of other methods. AbstractMessageLite() - Constructor for class com.google.protobuf.AbstractMessageLite AbstractMessageLite.Builder<MessageType extends AbstractMessageLite<MessageType,BuilderType>,BuilderType extends AbstractMessageLite.Builder<MessageType,BuilderType>> - Class in com.google.protobuf A partial implementation of the Message.Builder interface which implements as many methods of that interface as possible in terms of other methods. AbstractParser<MessageType extends MessageLite> - Class in com.google.protobuf A partial implementation of the Parser interface which implements as many methods of that interface as possible in terms of other methods. AbstractParser() - Constructor for class com.google.protobuf.AbstractParser add(Extension<?, ?>) - Method in class com.google.protobuf.ExtensionRegistry Add an extension from a generated file to the registry. add(GeneratedMessage.GeneratedExtension<?, ?>) - Method in class com.google.protobuf.ExtensionRegistry Add an extension from a generated file to the registry. add(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.ExtensionRegistry Add a non-message-type extension to the registry by descriptor. add(Descriptors.FieldDescriptor, Message) - Method in class com.google.protobuf.ExtensionRegistry Add a message-type extension to the registry by descriptor. add(GeneratedMessageLite.GeneratedExtension<?, ?>) - Method in class com.google.protobuf.ExtensionRegistryLite Add an extension from a lite generated file to the registry. add(ExtensionLite<?, ?>) - Method in class com.google.protobuf.ExtensionRegistryLite Add an extension from a lite generated file to the registry only if it is a non-lite extension i.e. add(Descriptors.Descriptor) - Method in class com.google.protobuf.TypeRegistry.Builder Adds a message type and all types defined in the same .proto file as well as all transitively imported .proto files to this TypeRegistry.Builder. add(Iterable<Descriptors.Descriptor>) - Method in class com.google.protobuf.TypeRegistry.Builder Adds message types and all types defined in the same .proto file as well as all transitively imported .proto files to this TypeRegistry.Builder. add(Duration, Duration) - Static method in class com.google.protobuf.util.Durations Add two durations. add(Descriptors.Descriptor) - Method in class com.google.protobuf.util.JsonFormat.TypeRegistry.Builder Adds a message type and all types defined in the same .proto file as well as all transitively imported .proto files to this JsonFormat.TypeRegistry.Builder. add(Iterable<Descriptors.Descriptor>) - Method in class com.google.protobuf.util.JsonFormat.TypeRegistry.Builder Adds message types and all types defined in the same .proto file as well as all transitively imported .proto files to this JsonFormat.TypeRegistry.Builder. add(Timestamp, Duration) - Static method in class com.google.protobuf.util.Timestamps Add a duration to a timestamp. add(Timestamp, Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.add(com.google.protobuf.Timestamp, com.google.protobuf.Duration) instead. add(Duration, Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.add(com.google.protobuf.Duration, com.google.protobuf.Duration) instead. addAllAnnotation(Iterable<? extends DescriptorProtos.GeneratedCodeInfo.Annotation>) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addAllDependency(Iterable<String>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. addAllEnumType(Iterable<? extends DescriptorProtos.EnumDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addAllEnumType(Iterable<? extends DescriptorProtos.EnumDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addAllEnumvalue(Iterable<? extends EnumValue>) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addAllExtension(Iterable<? extends DescriptorProtos.FieldDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addAllExtension(Iterable<? extends DescriptorProtos.FieldDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addAllExtensionRange(Iterable<? extends DescriptorProtos.DescriptorProto.ExtensionRange>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addAllField(Iterable<? extends DescriptorProtos.FieldDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addAllFields(Iterable<? extends Field>) - Method in class com.google.protobuf.Type.Builder The list of fields. addAllFile(Iterable<? extends PluginProtos.CodeGeneratorResponse.File>) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addAllFile(Iterable<? extends DescriptorProtos.FileDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addAllFileToGenerate(Iterable<String>) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. addAllLeadingDetachedComments(Iterable<String>) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; addAllLocation(Iterable<? extends DescriptorProtos.SourceCodeInfo.Location>) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addAllMessageType(Iterable<? extends DescriptorProtos.DescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addAllMethod(Iterable<? extends DescriptorProtos.MethodDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addAllMethods(Iterable<? extends Method>) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addAllMixins(Iterable<? extends Mixin>) - Method in class com.google.protobuf.Api.Builder Included interfaces. addAllName(Iterable<? extends DescriptorProtos.UninterpretedOption.NamePart>) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addAllNestedType(Iterable<? extends DescriptorProtos.DescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addAllOneofDecl(Iterable<? extends DescriptorProtos.OneofDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addAllOneofs(Iterable<String>) - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. addAllOptions(Iterable<? extends Option>) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addAllOptions(Iterable<? extends Option>) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addAllOptions(Iterable<? extends Option>) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addAllOptions(Iterable<? extends Option>) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addAllOptions(Iterable<? extends Option>) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addAllOptions(Iterable<? extends Option>) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addAllPath(Iterable<? extends Integer>) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. addAllPath(Iterable<? extends Integer>) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. addAllPaths(Iterable<String>) - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. addAllProtoFile(Iterable<? extends DescriptorProtos.FileDescriptorProto>) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addAllPublicDependency(Iterable<? extends Integer>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. addAllReservedName(Iterable<String>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. addAllReservedName(Iterable<String>) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. addAllReservedRange(Iterable<? extends DescriptorProtos.DescriptorProto.ReservedRange>) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addAllReservedRange(Iterable<? extends DescriptorProtos.EnumDescriptorProto.EnumReservedRange>) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addAllService(Iterable<? extends DescriptorProtos.ServiceDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addAllSpan(Iterable<? extends Integer>) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addAllUninterpretedOption(Iterable<? extends DescriptorProtos.UninterpretedOption>) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addAllValue(Iterable<? extends DescriptorProtos.EnumValueDescriptorProto>) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addAllValues(Iterable<? extends Value>) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addAllWeakDependency(Iterable<? extends Integer>) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. addAnnotation(DescriptorProtos.GeneratedCodeInfo.Annotation) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addAnnotation(int, DescriptorProtos.GeneratedCodeInfo.Annotation) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addAnnotation(DescriptorProtos.GeneratedCodeInfo.Annotation.Builder) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addAnnotation(int, DescriptorProtos.GeneratedCodeInfo.Annotation.Builder) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addAnnotationBuilder() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addAnnotationBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. addDependency(String) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. addDependencyBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. addEnumType(DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addEnumType(int, DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addEnumType(DescriptorProtos.EnumDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addEnumType(int, DescriptorProtos.EnumDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addEnumType(DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addEnumType(int, DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addEnumType(DescriptorProtos.EnumDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addEnumType(int, DescriptorProtos.EnumDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addEnumTypeBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addEnumTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; addEnumTypeBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addEnumTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; addEnumvalue(EnumValue) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addEnumvalue(int, EnumValue) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addEnumvalue(EnumValue.Builder) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addEnumvalue(int, EnumValue.Builder) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addEnumvalueBuilder() - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addEnumvalueBuilder(int) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. addExtension(DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addExtension(int, DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addExtension(DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addExtension(int, DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumValueOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ExtensionRangeOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FieldOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder addExtension(DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addExtension(int, DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addExtension(DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addExtension(int, DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FileOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MessageOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MethodOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.OneofOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder addExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ServiceOptions, List<Type>>, Type) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder addExtensionBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addExtensionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; addExtensionBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addExtensionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; addExtensionRange(DescriptorProtos.DescriptorProto.ExtensionRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addExtensionRange(int, DescriptorProtos.DescriptorProto.ExtensionRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addExtensionRange(DescriptorProtos.DescriptorProto.ExtensionRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addExtensionRange(int, DescriptorProtos.DescriptorProto.ExtensionRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addExtensionRangeBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addExtensionRangeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; addField(DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addField(int, DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addField(DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addField(int, DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addFieldBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addFieldBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; addFields(Field) - Method in class com.google.protobuf.Type.Builder The list of fields. addFields(int, Field) - Method in class com.google.protobuf.Type.Builder The list of fields. addFields(Field.Builder) - Method in class com.google.protobuf.Type.Builder The list of fields. addFields(int, Field.Builder) - Method in class com.google.protobuf.Type.Builder The list of fields. addFieldsBuilder() - Method in class com.google.protobuf.Type.Builder The list of fields. addFieldsBuilder(int) - Method in class com.google.protobuf.Type.Builder The list of fields. addFile(PluginProtos.CodeGeneratorResponse.File) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addFile(int, PluginProtos.CodeGeneratorResponse.File) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addFile(PluginProtos.CodeGeneratorResponse.File.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addFile(int, PluginProtos.CodeGeneratorResponse.File.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addFile(DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addFile(int, DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addFile(DescriptorProtos.FileDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addFile(int, DescriptorProtos.FileDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addFileBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addFileBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; addFileBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addFileBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; addFileToGenerate(String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. addFileToGenerateBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. addLeadingDetachedComments(String) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; addLeadingDetachedCommentsBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; addLocation(DescriptorProtos.SourceCodeInfo.Location) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addLocation(int, DescriptorProtos.SourceCodeInfo.Location) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addLocation(DescriptorProtos.SourceCodeInfo.Location.Builder) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addLocation(int, DescriptorProtos.SourceCodeInfo.Location.Builder) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addLocationBuilder() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addLocationBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. addMessageType(DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addMessageType(int, DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addMessageType(DescriptorProtos.DescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addMessageType(int, DescriptorProtos.DescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addMessageTypeBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addMessageTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. addMethod(DescriptorProtos.MethodDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addMethod(int, DescriptorProtos.MethodDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addMethod(DescriptorProtos.MethodDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addMethod(int, DescriptorProtos.MethodDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addMethodBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addMethodBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; addMethods(Method) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addMethods(int, Method) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addMethods(Method.Builder) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addMethods(int, Method.Builder) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addMethodsBuilder() - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addMethodsBuilder(int) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. addMixins(Mixin) - Method in class com.google.protobuf.Api.Builder Included interfaces. addMixins(int, Mixin) - Method in class com.google.protobuf.Api.Builder Included interfaces. addMixins(Mixin.Builder) - Method in class com.google.protobuf.Api.Builder Included interfaces. addMixins(int, Mixin.Builder) - Method in class com.google.protobuf.Api.Builder Included interfaces. addMixinsBuilder() - Method in class com.google.protobuf.Api.Builder Included interfaces. addMixinsBuilder(int) - Method in class com.google.protobuf.Api.Builder Included interfaces. addName(DescriptorProtos.UninterpretedOption.NamePart) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addName(int, DescriptorProtos.UninterpretedOption.NamePart) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addName(DescriptorProtos.UninterpretedOption.NamePart.Builder) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addName(int, DescriptorProtos.UninterpretedOption.NamePart.Builder) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addNameBuilder() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addNameBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; addNestedType(DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addNestedType(int, DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addNestedType(DescriptorProtos.DescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addNestedType(int, DescriptorProtos.DescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addNestedTypeBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addNestedTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; addOneofDecl(DescriptorProtos.OneofDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addOneofDecl(int, DescriptorProtos.OneofDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addOneofDecl(DescriptorProtos.OneofDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addOneofDecl(int, DescriptorProtos.OneofDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addOneofDeclBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addOneofDeclBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; addOneofs(String) - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. addOneofsBytes(ByteString) - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. addOptions(Option) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addOptions(int, Option) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addOptions(Option.Builder) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addOptions(int, Option.Builder) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addOptions(Option) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addOptions(int, Option) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addOptions(Option.Builder) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addOptions(int, Option.Builder) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addOptions(Option) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addOptions(int, Option) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addOptions(Option.Builder) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addOptions(int, Option.Builder) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addOptions(Option) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addOptions(int, Option) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addOptions(Option.Builder) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addOptions(int, Option.Builder) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addOptions(Option) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addOptions(int, Option) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addOptions(Option.Builder) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addOptions(int, Option.Builder) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addOptions(Option) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addOptions(int, Option) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addOptions(Option.Builder) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addOptions(int, Option.Builder) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addOptionsBuilder() - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addOptionsBuilder(int) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. addOptionsBuilder() - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addOptionsBuilder(int) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. addOptionsBuilder() - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addOptionsBuilder(int) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. addOptionsBuilder() - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addOptionsBuilder(int) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. addOptionsBuilder() - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addOptionsBuilder(int) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. addOptionsBuilder() - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addOptionsBuilder(int) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. addPath(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. addPath(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. addPaths(String) - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. addPathsBytes(ByteString) - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. addProtoFile(DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addProtoFile(int, DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addProtoFile(DescriptorProtos.FileDescriptorProto.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addProtoFile(int, DescriptorProtos.FileDescriptorProto.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addProtoFileBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addProtoFileBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. addPublicDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Any.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Api.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.BoolValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.BytesValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DoubleValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Duration.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DynamicMessage.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Empty.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Enum.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.EnumValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Field.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.FieldMask.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.FloatValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Int32Value.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Int64Value.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.ListValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in interface com.google.protobuf.Message.Builder Like setRepeatedField, but appends the value as a new element. addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Method.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Mixin.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Option.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.SourceContext.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.StringValue.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Struct.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Timestamp.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Type.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.UInt32Value.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.UInt64Value.Builder addRepeatedField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Value.Builder addReservedName(String) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. addReservedName(String) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. addReservedNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. addReservedNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. addReservedRange(DescriptorProtos.DescriptorProto.ReservedRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addReservedRange(int, DescriptorProtos.DescriptorProto.ReservedRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addReservedRange(DescriptorProtos.DescriptorProto.ReservedRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addReservedRange(int, DescriptorProtos.DescriptorProto.ReservedRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addReservedRange(DescriptorProtos.EnumDescriptorProto.EnumReservedRange) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addReservedRange(int, DescriptorProtos.EnumDescriptorProto.EnumReservedRange) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addReservedRange(DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addReservedRange(int, DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addReservedRangeBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addReservedRangeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; addReservedRangeBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addReservedRangeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. addService(DescriptorProtos.ServiceDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addService(int, DescriptorProtos.ServiceDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addService(DescriptorProtos.ServiceDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addService(int, DescriptorProtos.ServiceDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addServiceBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addServiceBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; addSpan(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. addValue(DescriptorProtos.EnumValueDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addValue(int, DescriptorProtos.EnumValueDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addValue(DescriptorProtos.EnumValueDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addValue(int, DescriptorProtos.EnumValueDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addValueBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addValueBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; addValues(Value) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addValues(int, Value) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addValues(Value.Builder) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addValues(int, Value.Builder) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addValuesBuilder() - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addValuesBuilder(int) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. addWeakDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. AGGREGATE_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption ALLOW_ALIAS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumOptions AlreadyCalledException() - Constructor for exception com.google.protobuf.RpcUtil.AlreadyCalledException ANNOTATION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo Any - Class in com.google.protobuf `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. Any.Builder - Class in com.google.protobuf `Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. AnyOrBuilder - Interface in com.google.protobuf AnyProto - Class in com.google.protobuf Api - Class in com.google.protobuf Api is a light-weight descriptor for an API Interface. Api.Builder - Class in com.google.protobuf Api is a light-weight descriptor for an API Interface. ApiOrBuilder - Interface in com.google.protobuf ApiProto - Class in com.google.protobuf appendTo(MessageOrBuilder, Appendable) - Method in class com.google.protobuf.util.JsonFormat.Printer Converts a protobuf message to JSON format. asByteStringList() - Method in interface com.google.protobuf.ProtocolStringList Returns a view of the data as a list of ByteStrings. asInvalidProtocolBufferException() - Method in exception com.google.protobuf.UninitializedMessageException Converts this exception to an InvalidProtocolBufferException. asReadOnlyByteBuffer() - Method in class com.google.protobuf.ByteString Constructs a read-only java.nio.ByteBuffer whose content is equal to the contents of this byte string. asReadOnlyByteBufferList() - Method in class com.google.protobuf.ByteString Constructs a list of read-only java.nio.ByteBuffer objects such that the concatenation of their contents is equal to the contents of this byte string. assignDescriptors(Descriptors.FileDescriptor) - Method in interface com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner Deprecated. B BEGIN_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation between(Timestamp, Timestamp) - Static method in class com.google.protobuf.util.Timestamps Calculate the difference between two timestamps. BlockingRpcChannel - Interface in com.google.protobuf Abstract interface for a blocking RPC channel. BlockingService - Interface in com.google.protobuf Blocking equivalent to Service. BOOL_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Value BoolValue - Class in com.google.protobuf Wrapper message for `bool`. BoolValue.Builder - Class in com.google.protobuf Wrapper message for `bool`. BoolValueOrBuilder - Interface in com.google.protobuf build() - Method in class com.google.protobuf.Any.Builder build() - Method in class com.google.protobuf.Api.Builder build() - Method in class com.google.protobuf.BoolValue.Builder build() - Method in class com.google.protobuf.BytesValue.Builder build() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder build() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder build() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder build() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder build() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder build() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder build() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder build() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder build() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder build() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder build() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder build() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder build() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder build() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder build() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder build() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder build() - Method in class com.google.protobuf.DoubleValue.Builder build() - Method in class com.google.protobuf.Duration.Builder build() - Method in class com.google.protobuf.DynamicMessage.Builder build() - Method in class com.google.protobuf.Empty.Builder build() - Method in class com.google.protobuf.Enum.Builder build() - Method in class com.google.protobuf.EnumValue.Builder build() - Method in class com.google.protobuf.Field.Builder build() - Method in class com.google.protobuf.FieldMask.Builder build() - Method in class com.google.protobuf.FloatValue.Builder build() - Method in class com.google.protobuf.Int32Value.Builder build() - Method in class com.google.protobuf.Int64Value.Builder build() - Method in class com.google.protobuf.ListValue.Builder build() - Method in interface com.google.protobuf.Message.Builder build() - Method in interface com.google.protobuf.MessageLite.Builder Constructs the message based on the state of the Builder. build() - Method in class com.google.protobuf.Method.Builder build() - Method in class com.google.protobuf.Mixin.Builder build() - Method in class com.google.protobuf.Option.Builder build() - Method in class com.google.protobuf.SourceContext.Builder build() - Method in class com.google.protobuf.StringValue.Builder build() - Method in class com.google.protobuf.Struct.Builder build() - Method in class com.google.protobuf.TextFormat.Parser.Builder build() - Method in class com.google.protobuf.TextFormatParseInfoTree.Builder Build the TextFormatParseInfoTree. build() - Method in class com.google.protobuf.Timestamp.Builder build() - Method in class com.google.protobuf.Type.Builder build() - Method in class com.google.protobuf.TypeRegistry.Builder Builds a TypeRegistry. build() - Method in class com.google.protobuf.UInt32Value.Builder build() - Method in class com.google.protobuf.UInt64Value.Builder build() - Method in class com.google.protobuf.util.JsonFormat.TypeRegistry.Builder Builds a JsonFormat.TypeRegistry. build() - Method in class com.google.protobuf.Value.Builder Builder() - Constructor for class com.google.protobuf.AbstractMessage.Builder Builder() - Constructor for class com.google.protobuf.AbstractMessageLite.Builder Builder() - Constructor for class com.google.protobuf.TextFormat.Parser.Builder builder() - Static method in class com.google.protobuf.TextFormatParseInfoTree Create a builder for a ParseInfoTree. buildFrom(DescriptorProtos.FileDescriptorProto, Descriptors.FileDescriptor[]) - Static method in class com.google.protobuf.Descriptors.FileDescriptor Construct a FileDescriptor. buildFrom(DescriptorProtos.FileDescriptorProto, Descriptors.FileDescriptor[], boolean) - Static method in class com.google.protobuf.Descriptors.FileDescriptor Construct a FileDescriptor. buildPartial() - Method in class com.google.protobuf.Any.Builder buildPartial() - Method in class com.google.protobuf.Api.Builder buildPartial() - Method in class com.google.protobuf.BoolValue.Builder buildPartial() - Method in class com.google.protobuf.BytesValue.Builder buildPartial() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder buildPartial() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder buildPartial() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder buildPartial() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder buildPartial() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder buildPartial() - Method in class com.google.protobuf.DoubleValue.Builder buildPartial() - Method in class com.google.protobuf.Duration.Builder buildPartial() - Method in class com.google.protobuf.DynamicMessage.Builder buildPartial() - Method in class com.google.protobuf.Empty.Builder buildPartial() - Method in class com.google.protobuf.Enum.Builder buildPartial() - Method in class com.google.protobuf.EnumValue.Builder buildPartial() - Method in class com.google.protobuf.Field.Builder buildPartial() - Method in class com.google.protobuf.FieldMask.Builder buildPartial() - Method in class com.google.protobuf.FloatValue.Builder buildPartial() - Method in class com.google.protobuf.Int32Value.Builder buildPartial() - Method in class com.google.protobuf.Int64Value.Builder buildPartial() - Method in class com.google.protobuf.ListValue.Builder buildPartial() - Method in interface com.google.protobuf.Message.Builder buildPartial() - Method in interface com.google.protobuf.MessageLite.Builder Like MessageLite.Builder.build(), but does not throw an exception if the message is missing required fields. buildPartial() - Method in class com.google.protobuf.Method.Builder buildPartial() - Method in class com.google.protobuf.Mixin.Builder buildPartial() - Method in class com.google.protobuf.Option.Builder buildPartial() - Method in class com.google.protobuf.SourceContext.Builder buildPartial() - Method in class com.google.protobuf.StringValue.Builder buildPartial() - Method in class com.google.protobuf.Struct.Builder buildPartial() - Method in class com.google.protobuf.Timestamp.Builder buildPartial() - Method in class com.google.protobuf.Type.Builder buildPartial() - Method in class com.google.protobuf.UInt32Value.Builder buildPartial() - Method in class com.google.protobuf.UInt64Value.Builder buildPartial() - Method in class com.google.protobuf.Value.Builder byteAt(int) - Method in class com.google.protobuf.ByteString Gets the byte at the given index. ByteOutput - Class in com.google.protobuf An output target for raw bytes. ByteOutput() - Constructor for class com.google.protobuf.ByteOutput ByteString - Class in com.google.protobuf Immutable sequence of bytes. ByteString.ByteIterator - Interface in com.google.protobuf This interface extends Iterator<Byte>, so that we can return an unboxed byte. ByteString.Output - Class in com.google.protobuf Outputs to a ByteString instance. BytesValue - Class in com.google.protobuf Wrapper message for `bytes`. BytesValue.Builder - Class in com.google.protobuf Wrapper message for `bytes`. BytesValueOrBuilder - Interface in com.google.protobuf C callBlockingMethod(Descriptors.MethodDescriptor, RpcController, Message, Message) - Method in interface com.google.protobuf.BlockingRpcChannel Call the given method of the remote service and blocks until it returns. callBlockingMethod(Descriptors.MethodDescriptor, RpcController, Message) - Method in interface com.google.protobuf.BlockingService Equivalent to Service.callMethod(com.google.protobuf.Descriptors.MethodDescriptor, com.google.protobuf.RpcController, com.google.protobuf.Message, com.google.protobuf.RpcCallback<com.google.protobuf.Message>), except that callBlockingMethod() returns the result of the RPC or throws a ServiceException if there is a failure, rather than passing the information to a callback. callMethod(Descriptors.MethodDescriptor, RpcController, Message, Message, RpcCallback<Message>) - Method in interface com.google.protobuf.RpcChannel Call the given method of the remote service. callMethod(Descriptors.MethodDescriptor, RpcController, Message, RpcCallback<Message>) - Method in interface com.google.protobuf.Service Call a method of the service specified by MethodDescriptor. CARDINALITY_FIELD_NUMBER - Static variable in class com.google.protobuf.Field CARDINALITY_OPTIONAL_VALUE - Static variable in enum com.google.protobuf.Field.Cardinality For optional fields. CARDINALITY_REPEATED_VALUE - Static variable in enum com.google.protobuf.Field.Cardinality For repeated fields. CARDINALITY_REQUIRED_VALUE - Static variable in enum com.google.protobuf.Field.Cardinality For required fields. CARDINALITY_UNKNOWN_VALUE - Static variable in enum com.google.protobuf.Field.Cardinality For fields with unknown cardinality. CC_ENABLE_ARENAS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions CC_GENERIC_SERVICES_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions checkLastTagWas(int) - Method in class com.google.protobuf.CodedInputStream Verifies that the last call to readTag() returned the given tag value. checkNoSpaceLeft() - Method in class com.google.protobuf.CodedOutputStream Verifies that CodedOutputStream.spaceLeft() returns zero. checkNotNegative(Duration) - Static method in class com.google.protobuf.util.Durations Ensures that the given Duration is not negative. checkPositive(Duration) - Static method in class com.google.protobuf.util.Durations Ensures that the given Duration is positive. checkValid(Duration) - Static method in class com.google.protobuf.util.Durations Throws an IllegalArgumentException if the given Duration is not valid. checkValid(Duration.Builder) - Static method in class com.google.protobuf.util.Durations Builds the given builder and throws an IllegalArgumentException if it is not valid. checkValid(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Throws an IllegalArgumentException if the given Timestamp is not valid. checkValid(Timestamp.Builder) - Static method in class com.google.protobuf.util.Timestamps Builds the given builder and throws an IllegalArgumentException if it is not valid. clear() - Method in class com.google.protobuf.AbstractMessage.Builder clear() - Method in class com.google.protobuf.Any.Builder clear() - Method in class com.google.protobuf.Api.Builder clear() - Method in class com.google.protobuf.BoolValue.Builder clear() - Method in class com.google.protobuf.BytesValue.Builder clear() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder clear() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder clear() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder clear() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder clear() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder clear() - Method in class com.google.protobuf.DoubleValue.Builder clear() - Method in class com.google.protobuf.Duration.Builder clear() - Method in class com.google.protobuf.DynamicMessage.Builder clear() - Method in class com.google.protobuf.Empty.Builder clear() - Method in class com.google.protobuf.Enum.Builder clear() - Method in class com.google.protobuf.EnumValue.Builder clear() - Method in class com.google.protobuf.Field.Builder clear() - Method in class com.google.protobuf.FieldMask.Builder clear() - Method in class com.google.protobuf.FloatValue.Builder clear() - Method in class com.google.protobuf.Int32Value.Builder clear() - Method in class com.google.protobuf.Int64Value.Builder clear() - Method in class com.google.protobuf.ListValue.Builder clear() - Method in class com.google.protobuf.MapField clear() - Method in class com.google.protobuf.MapFieldLite clear() - Method in interface com.google.protobuf.Message.Builder clear() - Method in interface com.google.protobuf.MessageLite.Builder Resets all fields to their default values. clear() - Method in class com.google.protobuf.Method.Builder clear() - Method in class com.google.protobuf.Mixin.Builder clear() - Method in class com.google.protobuf.Option.Builder clear() - Method in class com.google.protobuf.SourceContext.Builder clear() - Method in class com.google.protobuf.StringValue.Builder clear() - Method in class com.google.protobuf.Struct.Builder clear() - Method in class com.google.protobuf.Timestamp.Builder clear() - Method in class com.google.protobuf.Type.Builder clear() - Method in class com.google.protobuf.UInt32Value.Builder clear() - Method in class com.google.protobuf.UInt64Value.Builder clear() - Method in class com.google.protobuf.Value.Builder clearAggregateValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional string aggregate_value = 8; clearAllowAlias() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Set this option to true to allow mapping different tag names to the same value. clearAnnotation() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. clearBegin() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the starting offset in bytes in the generated code that relates to the identified object. clearBoolValue() - Method in class com.google.protobuf.Value.Builder Represents a boolean value. clearCardinality() - Method in class com.google.protobuf.Field.Builder The field cardinality. clearCcEnableArenas() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Enables the use of arenas for the proto messages in this file. clearCcGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. clearClientStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if client streams multiple client messages clearCompilerVersion() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. clearContent() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file contents. clearCsharpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Namespace for generated classes; defaults to the package. clearCtype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. clearDefaultValue() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For numeric types, contains the original text representation of the value. clearDefaultValue() - Method in class com.google.protobuf.Field.Builder The string value of the default value of this field. clearDependency() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. clearDeprecated() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. clearDoubleValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional double double_value = 6; clearEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Exclusive. clearEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Exclusive. clearEnd() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. clearEnd() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the ending offset in bytes in the generated code that relates to the identified offset. clearEnumType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; clearEnumType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; clearEnumvalue() - Method in class com.google.protobuf.Enum.Builder Enum value definitions. clearError() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder Error message. clearExtendee() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For extensions, this is the name of the type being extended. clearExtension() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumValueOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ExtensionRangeOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FieldOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder clearExtension() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FileOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MessageOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MethodOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.OneofOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder clearExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ServiceOptions, ?>) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder clearExtensionRange() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Any.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Api.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.BoolValue.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.BytesValue.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder clearField() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DoubleValue.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Duration.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Empty.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Enum.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.EnumValue.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Field.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.FieldMask.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.FloatValue.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Int32Value.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Int64Value.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.ListValue.Builder clearField(Descriptors.FieldDescriptor) - Method in interface com.google.protobuf.Message.Builder Clears the field. clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Method.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Mixin.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Option.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.SourceContext.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.StringValue.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Struct.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Timestamp.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Type.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.UInt32Value.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.UInt64Value.Builder clearField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Value.Builder clearFields() - Method in class com.google.protobuf.Struct.Builder clearFields() - Method in class com.google.protobuf.Type.Builder The list of fields. clearFile() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; clearFile() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; clearFileName() - Method in class com.google.protobuf.SourceContext.Builder The path-qualified name of the .proto file that contained the associated protobuf element. clearFileToGenerate() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. clearGeneratedCodeInfo() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. clearGoPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Go package where structs generated from this .proto will be placed. clearIdempotencyLevel() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; clearIdentifierValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. clearInputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Input and output type names. clearInsertionPoint() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. clearIsExtension() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required bool is_extension = 2; clearJavaGenerateEqualsAndHash() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Deprecated. clearJavaGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool java_generic_services = 17 [default = false]; clearJavaMultipleFiles() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. clearJavaOuterClassname() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Controls the name of the wrapper Java class generated for the .proto file. clearJavaPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Java package where classes generated from this .proto will be placed. clearJavaStringCheckUtf8() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. clearJsonName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder JSON name of this field. clearJsonName() - Method in class com.google.protobuf.Field.Builder The field JSON name. clearJstype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The jstype option determines the JavaScript type used for values of the field. clearKind() - Method in class com.google.protobuf.Field.Builder The field type. clearKind() - Method in class com.google.protobuf.Value.Builder clearLabel() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldDescriptorProto.Label label = 4; clearLazy() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Should this field be parsed lazily? Lazy applies only to message-type fields. clearLeadingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. clearLeadingDetachedComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; clearListValue() - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. clearLocation() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. clearMajor() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 major = 1; clearMapEntry() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Whether the message is an automatically generated map entry type for the maps field. clearMessageSetWireFormat() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Set true to use the old proto1 MessageSet wire format for extensions. clearMessageType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. clearMethod() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; clearMethods() - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. clearMinor() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 minor = 2; clearMixins() - Method in class com.google.protobuf.Api.Builder Included interfaces. clearName() - Method in class com.google.protobuf.Api.Builder The fully qualified name of this interface, including package name followed by the interface's simple name. clearName() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file name, relative to the output directory. clearName() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder file name, relative to root of source tree clearName() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional string name = 1; clearName() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; clearName() - Method in class com.google.protobuf.Enum.Builder Enum type name. clearName() - Method in class com.google.protobuf.EnumValue.Builder Enum value name. clearName() - Method in class com.google.protobuf.Field.Builder The field name. clearName() - Method in class com.google.protobuf.Method.Builder The simple name of this method. clearName() - Method in class com.google.protobuf.Mixin.Builder The fully qualified name of the interface which is included. clearName() - Method in class com.google.protobuf.Option.Builder The option's name. clearName() - Method in class com.google.protobuf.Type.Builder The fully qualified message name. clearNamePart() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required string name_part = 1; clearNanos() - Method in class com.google.protobuf.Duration.Builder Signed fractions of a second at nanosecond resolution of the span of time. clearNanos() - Method in class com.google.protobuf.Timestamp.Builder Non-negative fractions of a second at nanosecond resolution. clearNegativeIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional int64 negative_int_value = 5; clearNestedType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; clearNoStandardDescriptorAccessor() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. clearNullValue() - Method in class com.google.protobuf.Value.Builder Represents a null value. clearNumber() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional int32 number = 2; clearNumber() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional int32 number = 3; clearNumber() - Method in class com.google.protobuf.EnumValue.Builder Enum value number. clearNumber() - Method in class com.google.protobuf.Field.Builder The field number. clearNumberValue() - Method in class com.google.protobuf.Value.Builder Represents a double value. clearObjcClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.AbstractMessage.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Any.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Api.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.BoolValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.BytesValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DoubleValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Duration.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Empty.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Enum.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.EnumValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Field.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.FieldMask.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.FloatValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Int32Value.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Int64Value.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.ListValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in interface com.google.protobuf.Message.Builder Clears the oneof. clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Method.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Mixin.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Option.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.SourceContext.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.StringValue.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Struct.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Timestamp.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Type.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.UInt32Value.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.UInt64Value.Builder clearOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.Value.Builder clearOneofDecl() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; clearOneofIndex() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If set, gives the index of a oneof in the containing type's oneof_decl list. clearOneofIndex() - Method in class com.google.protobuf.Field.Builder The index of the field type in `Type.oneofs`, for message or enumeration types. clearOneofs() - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. clearOptimizeFor() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; clearOptions() - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. clearOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; clearOptions() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; clearOptions() - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. clearOptions() - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. clearOptions() - Method in class com.google.protobuf.Field.Builder The protocol buffer options. clearOptions() - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. clearOptions() - Method in class com.google.protobuf.Type.Builder The protocol buffer options. clearOutputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string output_type = 3; clearPackage() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder e.g. clearPacked() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. clearPacked() - Method in class com.google.protobuf.Field.Builder Whether to use alternative packed wire representation. clearParameter() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The generator parameter passed on the command-line. clearPatch() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 patch = 3; clearPath() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. clearPath() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. clearPaths() - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. clearPhpClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the php class prefix which is prepended to all php generated classes from this .proto. clearPhpGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool php_generic_services = 42 [default = false]; clearPhpMetadataNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated metadata classes. clearPhpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated classes. clearPositiveIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional uint64 positive_int_value = 4; clearProto3Optional() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If true, this is a proto3 \"optional\". clearProtoFile() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. clearPublicDependency() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. clearPyGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool py_generic_services = 18 [default = false]; clearRequestStreaming() - Method in class com.google.protobuf.Method.Builder If true, the request is streamed. clearRequestTypeUrl() - Method in class com.google.protobuf.Method.Builder A URL of the input message type. clearReservedName() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. clearReservedName() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. clearReservedRange() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; clearReservedRange() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. clearResponseStreaming() - Method in class com.google.protobuf.Method.Builder If true, the response is streamed. clearResponseTypeUrl() - Method in class com.google.protobuf.Method.Builder The URL of the output message type. clearRoot() - Method in class com.google.protobuf.Mixin.Builder If non-empty specifies a path under which inherited HTTP paths are rooted. clearRubyPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the package of ruby generated classes. clearSeconds() - Method in class com.google.protobuf.Duration.Builder Signed seconds of the span of time. clearSeconds() - Method in class com.google.protobuf.Timestamp.Builder Represents seconds of UTC time since Unix epoch :00Z. clearServerStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if server streams multiple server messages clearService() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; clearSourceCodeInfo() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. clearSourceContext() - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. clearSourceContext() - Method in class com.google.protobuf.Enum.Builder The source context. clearSourceContext() - Method in class com.google.protobuf.Type.Builder The source context. clearSourceFile() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the filesystem path to the original source .proto. clearSpan() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. clearStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Inclusive. clearStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Inclusive. clearStart() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. clearStringValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional bytes string_value = 7; clearStringValue() - Method in class com.google.protobuf.Value.Builder Represents a string value. clearStructValue() - Method in class com.google.protobuf.Value.Builder Represents a structured value. clearSuffix() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". clearSupportedFeatures() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder A bitmask of supported features that the code generator supports. clearSwiftPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. clearSyntax() - Method in class com.google.protobuf.Api.Builder The source syntax of the service. clearSyntax() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder The syntax of the proto file. clearSyntax() - Method in class com.google.protobuf.Enum.Builder The source syntax. clearSyntax() - Method in class com.google.protobuf.Method.Builder The source syntax of this method. clearSyntax() - Method in class com.google.protobuf.Type.Builder The source syntax. clearTrailingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder optional string trailing_comments = 4; clearType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If type_name is set, this need not be set. clearTypeName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For message and enum types, this is the name of the type. clearTypeUrl() - Method in class com.google.protobuf.Any.Builder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. clearTypeUrl() - Method in class com.google.protobuf.Field.Builder The field type URL, without the scheme, for message or enumeration types. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. clearUninterpretedOption() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. clearValue() - Method in class com.google.protobuf.Any.Builder Must be a valid serialized protocol buffer of the above specified type. clearValue() - Method in class com.google.protobuf.BoolValue.Builder The bool value. clearValue() - Method in class com.google.protobuf.BytesValue.Builder The bytes value. clearValue() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; clearValue() - Method in class com.google.protobuf.DoubleValue.Builder The double value. clearValue() - Method in class com.google.protobuf.FloatValue.Builder The float value. clearValue() - Method in class com.google.protobuf.Int32Value.Builder The int32 value. clearValue() - Method in class com.google.protobuf.Int64Value.Builder The int64 value. clearValue() - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. clearValue() - Method in class com.google.protobuf.StringValue.Builder The string value. clearValue() - Method in class com.google.protobuf.UInt32Value.Builder The uint32 value. clearValue() - Method in class com.google.protobuf.UInt64Value.Builder The uint64 value. clearValues() - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. clearVersion() - Method in class com.google.protobuf.Api.Builder A version string for this interface. clearWeak() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder For Google-internal migration only. clearWeakDependency() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. CLIENT_STREAMING_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto clone() - Method in class com.google.protobuf.AbstractMessage.Builder clone() - Method in class com.google.protobuf.AbstractMessageLite.Builder clone() - Method in class com.google.protobuf.Any.Builder clone() - Method in class com.google.protobuf.Api.Builder clone() - Method in class com.google.protobuf.BoolValue.Builder clone() - Method in class com.google.protobuf.BytesValue.Builder clone() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder clone() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder clone() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder clone() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder clone() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder clone() - Method in class com.google.protobuf.DoubleValue.Builder clone() - Method in class com.google.protobuf.Duration.Builder clone() - Method in class com.google.protobuf.DynamicMessage.Builder clone() - Method in class com.google.protobuf.Empty.Builder clone() - Method in class com.google.protobuf.Enum.Builder clone() - Method in class com.google.protobuf.EnumValue.Builder clone() - Method in class com.google.protobuf.Field.Builder clone() - Method in class com.google.protobuf.FieldMask.Builder clone() - Method in class com.google.protobuf.FloatValue.Builder clone() - Method in class com.google.protobuf.Int32Value.Builder clone() - Method in class com.google.protobuf.Int64Value.Builder clone() - Method in class com.google.protobuf.ListValue.Builder clone() - Method in interface com.google.protobuf.Message.Builder clone() - Method in interface com.google.protobuf.MessageLite.Builder Clones the Builder. clone() - Method in class com.google.protobuf.Method.Builder clone() - Method in class com.google.protobuf.Mixin.Builder clone() - Method in class com.google.protobuf.Option.Builder clone() - Method in class com.google.protobuf.SourceContext.Builder clone() - Method in class com.google.protobuf.StringValue.Builder clone() - Method in class com.google.protobuf.Struct.Builder clone() - Method in class com.google.protobuf.Timestamp.Builder clone() - Method in class com.google.protobuf.Type.Builder clone() - Method in class com.google.protobuf.UInt32Value.Builder clone() - Method in class com.google.protobuf.UInt64Value.Builder clone() - Method in class com.google.protobuf.Value.Builder CODE_SIZE_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode etc. CodedInputStream - Class in com.google.protobuf Reads and decodes protocol message fields. CodedOutputStream - Class in com.google.protobuf Encodes and writes protocol message fields. CodedOutputStream.OutOfSpaceException - Exception in com.google.protobuf If you create a CodedOutputStream around a simple flat array, you must not attempt to write more bytes than the array has space. com.google.protobuf - package com.google.protobuf com.google.protobuf.compiler - package com.google.protobuf.compiler com.google.protobuf.util - package com.google.protobuf.util comparator() - Static method in class com.google.protobuf.util.Durations Returns a Comparator for Durations which sorts in increasing chronological order. comparator() - Static method in class com.google.protobuf.util.Timestamps Returns a Comparator for Timestamps which sorts in increasing chronological order. compare(Duration, Duration) - Static method in class com.google.protobuf.util.Durations Compares two durations. compare(Timestamp, Timestamp) - Static method in class com.google.protobuf.util.Timestamps Compares two timestamps. compareTo(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.Descriptors.FieldDescriptor Compare with another FieldDescriptor. COMPILER_VERSION_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest computeBoolSize(int, boolean) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bool field, including tag. computeBoolSizeNoTag(boolean) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bool field. computeByteArraySize(int, byte[]) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bytes field, including tag. computeByteArraySizeNoTag(byte[]) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bytes field. computeByteBufferSize(int, ByteBuffer) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bytes field, including tag. computeByteBufferSizeNoTag(ByteBuffer) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bytes field. computeBytesSize(int, ByteString) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bytes field, including tag. computeBytesSizeNoTag(ByteString) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a bytes field. computeDoubleSize(int, double) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a double field, including tag. computeDoubleSizeNoTag(double) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a double field, including tag. computeEnumSize(int, int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an enum field, including tag. computeEnumSizeNoTag(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an enum field. computeFixed32Size(int, int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a fixed32 field, including tag. computeFixed32SizeNoTag(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a fixed32 field. computeFixed64Size(int, long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a fixed64 field, including tag. computeFixed64SizeNoTag(long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a fixed64 field. computeFloatSize(int, float) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a float field, including tag. computeFloatSizeNoTag(float) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a float field, including tag. computeGroupSize(int, MessageLite) - Static method in class com.google.protobuf.CodedOutputStream Deprecated. groups are deprecated. computeGroupSizeNoTag(MessageLite) - Static method in class com.google.protobuf.CodedOutputStream Deprecated. computeInt32Size(int, int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an int32 field, including tag. computeInt32SizeNoTag(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an int32 field, including tag. computeInt64Size(int, long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an int64 field, including tag. computeInt64SizeNoTag(long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an int64 field, including tag. computeLazyFieldMessageSetExtensionSize(int, LazyFieldLite) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an lazily parsed MessageSet extension field to the stream. computeLazyFieldSize(int, LazyFieldLite) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an embedded message in lazy field, including tag. computeLazyFieldSizeNoTag(LazyFieldLite) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an embedded message stored in lazy field. computeMessageSetExtensionSize(int, MessageLite) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a MessageSet extension to the stream. computeMessageSize(int, MessageLite) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an embedded message field, including tag. computeMessageSizeNoTag(MessageLite) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an embedded message field. computeRawMessageSetExtensionSize(int, ByteString) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an unparsed MessageSet extension field to the stream. computeRawVarint32Size(int) - Static method in class com.google.protobuf.CodedOutputStream Deprecated. use CodedOutputStream.computeUInt32SizeNoTag(int) instead. computeRawVarint64Size(long) - Static method in class com.google.protobuf.CodedOutputStream Deprecated. use CodedOutputStream.computeUInt64SizeNoTag(long) instead. computeSFixed32Size(int, int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sfixed32 field, including tag. computeSFixed32SizeNoTag(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sfixed32 field. computeSFixed64Size(int, long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sfixed64 field, including tag. computeSFixed64SizeNoTag(long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sfixed64 field. computeSInt32Size(int, int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sint32 field, including tag. computeSInt32SizeNoTag(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sint32 field. computeSInt64Size(int, long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sint64 field, including tag. computeSInt64SizeNoTag(long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode an sint64 field. computeStringSize(int, String) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a string field, including tag. computeStringSizeNoTag(String) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a string field. computeTagSize(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a tag. computeUInt32Size(int, int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a uint32 field, including tag. computeUInt32SizeNoTag(int) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a uint32 field. computeUInt64Size(int, long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a uint64 field, including tag. computeUInt64SizeNoTag(long) - Static method in class com.google.protobuf.CodedOutputStream Compute the number of bytes that would be needed to encode a uint64 field, including tag. concat(ByteString) - Method in class com.google.protobuf.ByteString Concatenate the given ByteString to this one. containsFields(String) - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. containsFields(String) - Method in class com.google.protobuf.Struct Unordered map of dynamically typed values. containsFields(String) - Method in interface com.google.protobuf.StructOrBuilder Unordered map of dynamically typed values. CONTENT_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File copy() - Method in class com.google.protobuf.MapField Returns a deep copy of this MapField. copyFrom(byte[], int, int) - Static method in class com.google.protobuf.ByteString Copies the given bytes into a ByteString. copyFrom(byte[]) - Static method in class com.google.protobuf.ByteString Copies the given bytes into a ByteString. copyFrom(ByteBuffer, int) - Static method in class com.google.protobuf.ByteString Copies the next size bytes from a java.nio.ByteBuffer into a ByteString. copyFrom(ByteBuffer) - Static method in class com.google.protobuf.ByteString Copies the remaining bytes from a java.nio.ByteBuffer into a ByteString. copyFrom(String, String) - Static method in class com.google.protobuf.ByteString Encodes text into a sequence of bytes using the named charset and returns the result as a ByteString. copyFrom(String, Charset) - Static method in class com.google.protobuf.ByteString Encodes text into a sequence of bytes using the named charset and returns the result as a ByteString. copyFrom(Iterable<ByteString>) - Static method in class com.google.protobuf.ByteString Concatenates all byte strings in the iterable and returns the result. copyFromUtf8(String) - Static method in class com.google.protobuf.ByteString Encodes text into a sequence of UTF-8 bytes and returns the result as a ByteString. copyTo(byte[], int) - Method in class com.google.protobuf.ByteString Copies bytes into a buffer at the given offset. copyTo(byte[], int, int, int) - Method in class com.google.protobuf.ByteString Deprecated. Instead, call byteString.substring(sourceOffset, sourceOffset + numberToCopy).copyTo(target, targetOffset) copyTo(ByteBuffer) - Method in class com.google.protobuf.ByteString Copies bytes into a ByteBuffer. CORD_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType CORD = 1; createDurationFromMicros(long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.fromMicros(long) instead. createDurationFromMillis(long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.fromMillis(long) instead. createDurationFromNanos(long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.fromNanos(long) instead. createTimestampFromMicros(long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.fromMicros(long) instead. createTimestampFromMillis(long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.fromMillis(long) instead. createTimestampFromNanos(long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.fromNanos(long) instead. CSHARP_NAMESPACE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions CTYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions D decodeZigZag32(int) - Static method in class com.google.protobuf.CodedInputStream Decode a ZigZag-encoded 32-bit value. decodeZigZag64(long) - Static method in class com.google.protobuf.CodedInputStream Decode a ZigZag-encoded 64-bit value. DEFAULT_BUFFER_SIZE - Static variable in class com.google.protobuf.CodedOutputStream The buffer size used in CodedOutputStream.newInstance(OutputStream). DEFAULT_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto DEFAULT_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Field defaultInstance - Variable in class com.google.protobuf.ExtensionRegistry.ExtensionInfo A default instance of the extension's type, if it has a message type. DEPENDENCY_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumOptions DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueOptions DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MessageOptions DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodOptions DEPRECATED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceOptions descriptor - Variable in class com.google.protobuf.ExtensionRegistry.ExtensionInfo The extension's descriptor. DescriptorProtos - Class in com.google.protobuf DescriptorProtos.DescriptorProto - Class in com.google.protobuf Describes a message type. DescriptorProtos.DescriptorProto.Builder - Class in com.google.protobuf Describes a message type. DescriptorProtos.DescriptorProto.ExtensionRange - Class in com.google.protobuf Protobuf type google.protobuf.DescriptorProto.ExtensionRange DescriptorProtos.DescriptorProto.ExtensionRange.Builder - Class in com.google.protobuf Protobuf type google.protobuf.DescriptorProto.ExtensionRange DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder - Interface in com.google.protobuf DescriptorProtos.DescriptorProto.ReservedRange - Class in com.google.protobuf Range of reserved tag numbers. DescriptorProtos.DescriptorProto.ReservedRange.Builder - Class in com.google.protobuf Range of reserved tag numbers. DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder - Interface in com.google.protobuf DescriptorProtos.DescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.EnumDescriptorProto - Class in com.google.protobuf Describes an enum type. DescriptorProtos.EnumDescriptorProto.Builder - Class in com.google.protobuf Describes an enum type. DescriptorProtos.EnumDescriptorProto.EnumReservedRange - Class in com.google.protobuf Range of reserved numeric values. DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder - Class in com.google.protobuf Range of reserved numeric values. DescriptorProtos.EnumDescriptorProto.EnumReservedRangeOrBuilder - Interface in com.google.protobuf DescriptorProtos.EnumDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.EnumOptions - Class in com.google.protobuf Protobuf type google.protobuf.EnumOptions DescriptorProtos.EnumOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.EnumOptions DescriptorProtos.EnumOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.EnumValueDescriptorProto - Class in com.google.protobuf Describes a value within an enum. DescriptorProtos.EnumValueDescriptorProto.Builder - Class in com.google.protobuf Describes a value within an enum. DescriptorProtos.EnumValueDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.EnumValueOptions - Class in com.google.protobuf Protobuf type google.protobuf.EnumValueOptions DescriptorProtos.EnumValueOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.EnumValueOptions DescriptorProtos.EnumValueOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.ExtensionRangeOptions - Class in com.google.protobuf Protobuf type google.protobuf.ExtensionRangeOptions DescriptorProtos.ExtensionRangeOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.ExtensionRangeOptions DescriptorProtos.ExtensionRangeOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.FieldDescriptorProto - Class in com.google.protobuf Describes a field within a message. DescriptorProtos.FieldDescriptorProto.Builder - Class in com.google.protobuf Describes a field within a message. DescriptorProtos.FieldDescriptorProto.Label - Enum in com.google.protobuf Protobuf enum google.protobuf.FieldDescriptorProto.Label DescriptorProtos.FieldDescriptorProto.Type - Enum in com.google.protobuf Protobuf enum google.protobuf.FieldDescriptorProto.Type DescriptorProtos.FieldDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.FieldOptions - Class in com.google.protobuf Protobuf type google.protobuf.FieldOptions DescriptorProtos.FieldOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.FieldOptions DescriptorProtos.FieldOptions.CType - Enum in com.google.protobuf Protobuf enum google.protobuf.FieldOptions.CType DescriptorProtos.FieldOptions.JSType - Enum in com.google.protobuf Protobuf enum google.protobuf.FieldOptions.JSType DescriptorProtos.FieldOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.FileDescriptorProto - Class in com.google.protobuf Describes a complete .proto file. DescriptorProtos.FileDescriptorProto.Builder - Class in com.google.protobuf Describes a complete .proto file. DescriptorProtos.FileDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.FileDescriptorSet - Class in com.google.protobuf The protocol compiler can output a FileDescriptorSet containing the .proto files it parses. DescriptorProtos.FileDescriptorSet.Builder - Class in com.google.protobuf The protocol compiler can output a FileDescriptorSet containing the .proto files it parses. DescriptorProtos.FileDescriptorSetOrBuilder - Interface in com.google.protobuf DescriptorProtos.FileOptions - Class in com.google.protobuf Protobuf type google.protobuf.FileOptions DescriptorProtos.FileOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.FileOptions DescriptorProtos.FileOptions.OptimizeMode - Enum in com.google.protobuf Generated classes can be optimized for speed or code size. DescriptorProtos.FileOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.GeneratedCodeInfo - Class in com.google.protobuf Describes the relationship between generated code and its original source file. DescriptorProtos.GeneratedCodeInfo.Annotation - Class in com.google.protobuf Protobuf type google.protobuf.GeneratedCodeInfo.Annotation DescriptorProtos.GeneratedCodeInfo.Annotation.Builder - Class in com.google.protobuf Protobuf type google.protobuf.GeneratedCodeInfo.Annotation DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder - Interface in com.google.protobuf DescriptorProtos.GeneratedCodeInfo.Builder - Class in com.google.protobuf Describes the relationship between generated code and its original source file. DescriptorProtos.GeneratedCodeInfoOrBuilder - Interface in com.google.protobuf DescriptorProtos.MessageOptions - Class in com.google.protobuf Protobuf type google.protobuf.MessageOptions DescriptorProtos.MessageOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.MessageOptions DescriptorProtos.MessageOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.MethodDescriptorProto - Class in com.google.protobuf Describes a method of a service. DescriptorProtos.MethodDescriptorProto.Builder - Class in com.google.protobuf Describes a method of a service. DescriptorProtos.MethodDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.MethodOptions - Class in com.google.protobuf Protobuf type google.protobuf.MethodOptions DescriptorProtos.MethodOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.MethodOptions DescriptorProtos.MethodOptions.IdempotencyLevel - Enum in com.google.protobuf Is this method side-effect-free (or safe in HTTP parlance), or idempotent, or neither? HTTP based RPC implementation may choose GET verb for safe methods, and PUT verb for idempotent methods instead of the default POST. DescriptorProtos.MethodOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.OneofDescriptorProto - Class in com.google.protobuf Describes a oneof. DescriptorProtos.OneofDescriptorProto.Builder - Class in com.google.protobuf Describes a oneof. DescriptorProtos.OneofDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.OneofOptions - Class in com.google.protobuf Protobuf type google.protobuf.OneofOptions DescriptorProtos.OneofOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.OneofOptions DescriptorProtos.OneofOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.ServiceDescriptorProto - Class in com.google.protobuf Describes a service. DescriptorProtos.ServiceDescriptorProto.Builder - Class in com.google.protobuf Describes a service. DescriptorProtos.ServiceDescriptorProtoOrBuilder - Interface in com.google.protobuf DescriptorProtos.ServiceOptions - Class in com.google.protobuf Protobuf type google.protobuf.ServiceOptions DescriptorProtos.ServiceOptions.Builder - Class in com.google.protobuf Protobuf type google.protobuf.ServiceOptions DescriptorProtos.ServiceOptionsOrBuilder - Interface in com.google.protobuf DescriptorProtos.SourceCodeInfo - Class in com.google.protobuf Encapsulates information about the original source file from which a FileDescriptorProto was generated. DescriptorProtos.SourceCodeInfo.Builder - Class in com.google.protobuf Encapsulates information about the original source file from which a FileDescriptorProto was generated. DescriptorProtos.SourceCodeInfo.Location - Class in com.google.protobuf Protobuf type google.protobuf.SourceCodeInfo.Location DescriptorProtos.SourceCodeInfo.Location.Builder - Class in com.google.protobuf Protobuf type google.protobuf.SourceCodeInfo.Location DescriptorProtos.SourceCodeInfo.LocationOrBuilder - Interface in com.google.protobuf DescriptorProtos.SourceCodeInfoOrBuilder - Interface in com.google.protobuf DescriptorProtos.UninterpretedOption - Class in com.google.protobuf A message representing a option the parser does not recognize. DescriptorProtos.UninterpretedOption.Builder - Class in com.google.protobuf A message representing a option the parser does not recognize. DescriptorProtos.UninterpretedOption.NamePart - Class in com.google.protobuf The name of the uninterpreted option. DescriptorProtos.UninterpretedOption.NamePart.Builder - Class in com.google.protobuf The name of the uninterpreted option. DescriptorProtos.UninterpretedOption.NamePartOrBuilder - Interface in com.google.protobuf DescriptorProtos.UninterpretedOptionOrBuilder - Interface in com.google.protobuf Descriptors - Class in com.google.protobuf Contains a collection of classes which describe protocol message types. Descriptors() - Constructor for class com.google.protobuf.Descriptors Descriptors.Descriptor - Class in com.google.protobuf Describes a message type. Descriptors.DescriptorValidationException - Exception in com.google.protobuf Thrown when building descriptors fails because the source DescriptorProtos are not valid. Descriptors.EnumDescriptor - Class in com.google.protobuf Describes an enum type. Descriptors.EnumValueDescriptor - Class in com.google.protobuf Describes one value within an enum type. Descriptors.FieldDescriptor - Class in com.google.protobuf Describes a field of a message type. Descriptors.FieldDescriptor.JavaType - Enum in com.google.protobuf Descriptors.FieldDescriptor.Type - Enum in com.google.protobuf Descriptors.FileDescriptor - Class in com.google.protobuf Describes a .proto file, including everything defined within. Descriptors.FileDescriptor.InternalDescriptorAssigner - Interface in com.google.protobuf Deprecated. Descriptors.FileDescriptor.Syntax - Enum in com.google.protobuf The syntax of the .proto file. Descriptors.GenericDescriptor - Class in com.google.protobuf All descriptors implement this to make it easier to implement tools like DescriptorPool. Descriptors.MethodDescriptor - Class in com.google.protobuf Describes one method within a service type. Descriptors.OneofDescriptor - Class in com.google.protobuf Describes an oneof of a message type. Descriptors.ServiceDescriptor - Class in com.google.protobuf Describes a service type. distance(Timestamp, Timestamp) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.between(com.google.protobuf.Timestamp, com.google.protobuf.Timestamp) instead. divide(Duration, double) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. divide(Duration, long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. divide(Duration, Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. DOUBLE_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption DoubleValue - Class in com.google.protobuf Wrapper message for `double`. DoubleValue.Builder - Class in com.google.protobuf Wrapper message for `double`. DoubleValueOrBuilder - Interface in com.google.protobuf Duration - Class in com.google.protobuf A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. Duration.Builder - Class in com.google.protobuf A Duration represents a signed, fixed-length span of time represented as a count of seconds and fractions of seconds at nanosecond resolution. DURATION_SECONDS_MAX - Static variable in class com.google.protobuf.util.TimeUtil Deprecated. DURATION_SECONDS_MIN - Static variable in class com.google.protobuf.util.TimeUtil Deprecated. DurationOrBuilder - Interface in com.google.protobuf DurationProto - Class in com.google.protobuf Durations - Class in com.google.protobuf.util Utilities to help create/manipulate protobuf/duration.proto. DynamicMessage - Class in com.google.protobuf An implementation of Message that can represent arbitrary types, given a Descriptors.Descriptor. DynamicMessage.Builder - Class in com.google.protobuf Builder for DynamicMessages. E EMPTY - Static variable in class com.google.protobuf.ByteString Empty ByteString. Empty - Class in com.google.protobuf A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. EMPTY - Static variable in class com.google.protobuf.TextFormatParseLocation The empty location. Empty.Builder - Class in com.google.protobuf A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. emptyMapField(MapEntry<K, V>) - Static method in class com.google.protobuf.MapField Returns an immutable empty MapField. emptyMapField() - Static method in class com.google.protobuf.MapFieldLite Returns an singleton immutable empty MapFieldLite instance. EmptyOrBuilder - Interface in com.google.protobuf EmptyProto - Class in com.google.protobuf enableAliasing(boolean) - Method in class com.google.protobuf.CodedInputStream Enables ByteString aliasing of the underlying buffer, trading off on buffer pinning for data copies. encodeZigZag32(int) - Static method in class com.google.protobuf.CodedOutputStream Encode a ZigZag-encoded 32-bit value. encodeZigZag64(long) - Static method in class com.google.protobuf.CodedOutputStream Encode a ZigZag-encoded 64-bit value. END_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange END_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange END_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange END_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation endsWith(ByteString) - Method in class com.google.protobuf.ByteString Tests if this bytestring ends with the specified suffix. ensureMutable() - Method in class com.google.protobuf.MapField entrySet() - Method in class com.google.protobuf.MapFieldLite Enum - Class in com.google.protobuf Enum type definition. Enum.Builder - Class in com.google.protobuf Enum type definition. ENUM_TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto ENUM_TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto EnumOrBuilder - Interface in com.google.protobuf EnumValue - Class in com.google.protobuf Enum value definition. EnumValue.Builder - Class in com.google.protobuf Enum value definition. ENUMVALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Enum EnumValueOrBuilder - Interface in com.google.protobuf EPOCH - Static variable in class com.google.protobuf.util.Timestamps A constant holding the Timestamp of epoch time, :00.000000000Z. equals(Object) - Method in class com.google.protobuf.AbstractMessage equals(Object) - Method in class com.google.protobuf.Any equals(Object) - Method in class com.google.protobuf.Api equals(Object) - Method in class com.google.protobuf.BoolValue equals(Object) - Method in class com.google.protobuf.ByteString equals(Object) - Method in class com.google.protobuf.BytesValue equals(Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest equals(Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse equals(Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File equals(Object) - Method in class com.google.protobuf.compiler.PluginProtos.Version equals(Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange equals(Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange equals(Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange equals(Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet equals(Object) - Method in class com.google.protobuf.DescriptorProtos.FileOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation equals(Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo equals(Object) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto equals(Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions equals(Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo equals(Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location equals(Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption equals(Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart equals(Object) - Method in class com.google.protobuf.DoubleValue equals(Object) - Method in class com.google.protobuf.Duration equals(Object) - Method in class com.google.protobuf.Empty equals(Object) - Method in class com.google.protobuf.Enum equals(Object) - Method in class com.google.protobuf.EnumValue equals(Object) - Method in class com.google.protobuf.Field equals(Object) - Method in class com.google.protobuf.FieldMask equals(Object) - Method in class com.google.protobuf.FloatValue equals(Object) - Method in class com.google.protobuf.Int32Value equals(Object) - Method in class com.google.protobuf.Int64Value equals(Object) - Method in class com.google.protobuf.ListValue equals(Object) - Method in class com.google.protobuf.MapField equals(Object) - Method in class com.google.protobuf.MapFieldLite Checks whether two map fields are equal. equals(Object) - Method in interface com.google.protobuf.Message Compares the specified object with this message for equality. equals(Object) - Method in class com.google.protobuf.Method equals(Object) - Method in class com.google.protobuf.Mixin equals(Object) - Method in class com.google.protobuf.Option equals(Object) - Method in class com.google.protobuf.SourceContext equals(Object) - Method in class com.google.protobuf.StringValue equals(Object) - Method in class com.google.protobuf.Struct equals(Object) - Method in class com.google.protobuf.TextFormatParseLocation equals(Object) - Method in class com.google.protobuf.Timestamp equals(Object) - Method in class com.google.protobuf.Type equals(Object) - Method in class com.google.protobuf.UInt32Value equals(Object) - Method in class com.google.protobuf.UInt64Value equals(Object) - Method in class com.google.protobuf.Value ERROR_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse errorText() - Method in interface com.google.protobuf.RpcController If failed() is true, returns a human-readable description of the error. escapeBytes(ByteString) - Static method in class com.google.protobuf.TextFormat Escapes bytes in the format used in protocol buffer text format, which is the same as the format used for C string literals. escapeBytes(byte[]) - Static method in class com.google.protobuf.TextFormat Like TextFormat.escapeBytes(ByteString), but used for byte array. escapeDoubleQuotesAndBackslashes(String) - Static method in class com.google.protobuf.TextFormat Escape double quotes and backslashes in a String for emittingUnicode output of a message. escapingNonAscii(boolean) - Method in class com.google.protobuf.TextFormat.Printer Return a new Printer instance with the specified escape mode. ExperimentalApi - Annotation Type in com.google.protobuf Indicates a public API that can change at any time, and has no guarantee of API stability and backward-compatibility. EXTENDEE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto Extension<ContainingType extends MessageLite,Type> - Class in com.google.protobuf Interface that generated extensions implement. Extension() - Constructor for class com.google.protobuf.Extension Extension.MessageType - Enum in com.google.protobuf Type of a message extension. EXTENSION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto EXTENSION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto EXTENSION_RANGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto ExtensionLite<ContainingType extends MessageLite,Type> - Class in com.google.protobuf Lite interface that generated extensions implement. ExtensionLite() - Constructor for class com.google.protobuf.ExtensionLite ExtensionRegistry - Class in com.google.protobuf A table of known extensions, searchable by name or field number. ExtensionRegistry.ExtensionInfo - Class in com.google.protobuf A (Descriptor, Message) pair, returned by lookup methods. ExtensionRegistryLite - Class in com.google.protobuf Equivalent to ExtensionRegistry but supports only \"lite\" types. F failed() - Method in interface com.google.protobuf.RpcController After a call has finished, returns true if the call failed. FEATURE_NONE_VALUE - Static variable in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature FEATURE_NONE = 0; FEATURE_PROTO3_OPTIONAL_VALUE - Static variable in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature FEATURE_PROTO3_OPTIONAL = 1; Field - Class in com.google.protobuf A single field of a message type. Field.Builder - Class in com.google.protobuf A single field of a message type. Field.Cardinality - Enum in com.google.protobuf Whether a field is optional, required, or repeated. Field.Kind - Enum in com.google.protobuf Basic field types. FIELD_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto FieldMask - Class in com.google.protobuf `FieldMask` represents a set of symbolic field paths, for : \"f.a\" paths: \"f.b.d\" Here `f` represents a field in some root message, `a` and `b` fields in the message found in `f`, and `d` a field found in the message in `f.b`. FieldMask.Builder - Class in com.google.protobuf `FieldMask` represents a set of symbolic field paths, for : \"f.a\" paths: \"f.b.d\" Here `f` represents a field in some root message, `a` and `b` fields in the message found in `f`, and `d` a field found in the message in `f.b`. FieldMaskOrBuilder - Interface in com.google.protobuf FieldMaskProto - Class in com.google.protobuf FieldMaskUtil - Class in com.google.protobuf.util Utility helper functions to work with FieldMask. FieldMaskUtil.MergeOptions - Class in com.google.protobuf.util Options to customize merging behavior. FieldOrBuilder - Interface in com.google.protobuf FIELDS_FIELD_NUMBER - Static variable in class com.google.protobuf.Struct FIELDS_FIELD_NUMBER - Static variable in class com.google.protobuf.Type FieldType - Enum in com.google.protobuf Enumeration identifying all relevant type information for a protobuf field. FILE_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse FILE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorSet FILE_NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.SourceContext FILE_TO_GENERATE_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest find(String) - Method in class com.google.protobuf.TypeRegistry Find a type by its full name. find(String) - Method in class com.google.protobuf.util.JsonFormat.TypeRegistry Find a type by its full name. findEnumTypeByName(String) - Method in class com.google.protobuf.Descriptors.Descriptor Finds a nested enum type by name. findEnumTypeByName(String) - Method in class com.google.protobuf.Descriptors.FileDescriptor Find an enum type in the file by name. findExtensionByName(String) - Method in class com.google.protobuf.Descriptors.FileDescriptor Find an extension in the file by name. findExtensionByName(String) - Method in class com.google.protobuf.ExtensionRegistry Deprecated. findExtensionByNumber(Descriptors.Descriptor, int) - Method in class com.google.protobuf.ExtensionRegistry Deprecated. findFieldByName(String) - Method in class com.google.protobuf.Descriptors.Descriptor Finds a field by name. findFieldByNumber(int) - Method in class com.google.protobuf.Descriptors.Descriptor Finds a field by field number. findImmutableExtensionByName(String) - Method in class com.google.protobuf.ExtensionRegistry Find an extension for immutable APIs by fully-qualified field name, in the proto namespace. findImmutableExtensionByNumber(Descriptors.Descriptor, int) - Method in class com.google.protobuf.ExtensionRegistry Find an extension by containing type and field number for immutable APIs. findInitializationErrors() - Method in class com.google.protobuf.AbstractMessage.Builder findInitializationErrors() - Method in class com.google.protobuf.AbstractMessage findInitializationErrors() - Method in interface com.google.protobuf.MessageOrBuilder Returns a list of field paths (e.g. findLiteExtensionByNumber(ContainingType, int) - Method in class com.google.protobuf.ExtensionRegistryLite Find an extension by containing type and field number. findMessageTypeByName(String) - Method in class com.google.protobuf.Descriptors.FileDescriptor Find a message type in the file by name. findMethodByName(String) - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Find a method by name. findMutableExtensionByName(String) - Method in class com.google.protobuf.ExtensionRegistry Find an extension for mutable APIs by fully-qualified field name, in the proto namespace. findMutableExtensionByNumber(Descriptors.Descriptor, int) - Method in class com.google.protobuf.ExtensionRegistry Find an extension by containing type and field number for mutable APIs. findNestedTypeByName(String) - Method in class com.google.protobuf.Descriptors.Descriptor Finds a nested message type by name. findServiceByName(String) - Method in class com.google.protobuf.Descriptors.FileDescriptor Find a service type in the file by name. findValueByName(String) - Method in class com.google.protobuf.Descriptors.EnumDescriptor Find an enum value by name. findValueByNumber(int) - Method in class com.google.protobuf.Descriptors.EnumDescriptor Find an enum value by number. findValueByNumberCreatingIfUnknown(int) - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get the enum value for a number. FloatValue - Class in com.google.protobuf Wrapper message for `float`. FloatValue.Builder - Class in com.google.protobuf Wrapper message for `float`. FloatValueOrBuilder - Interface in com.google.protobuf flush() - Method in class com.google.protobuf.CodedOutputStream Flushes the stream and forces any buffered bytes to be written. forId(int) - Static method in enum com.google.protobuf.FieldType Looks up the appropriate FieldType by it's identifier. forNumber(int) - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature forNumber(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label forNumber(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type forNumber(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType forNumber(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType forNumber(int) - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode forNumber(int) - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel forNumber(int) - Static method in enum com.google.protobuf.Field.Cardinality forNumber(int) - Static method in enum com.google.protobuf.Field.Kind forNumber(int) - Static method in enum com.google.protobuf.NullValue forNumber(int) - Static method in enum com.google.protobuf.Syntax forNumber(int) - Static method in enum com.google.protobuf.Value.KindCase fromDays(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of days. fromFieldNumbers(Class<? extends Message>, int...) - Static method in class com.google.protobuf.util.FieldMaskUtil Constructs a FieldMask from the passed field numbers. fromFieldNumbers(Class<? extends Message>, Iterable<Integer>) - Static method in class com.google.protobuf.util.FieldMaskUtil Constructs a FieldMask from the passed field numbers. fromHours(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of hours. fromJsonString(String) - Static method in class com.google.protobuf.util.FieldMaskUtil Converts a field mask from a Proto3 JSON string, that is splitting the paths along commas and converting from camel case to snake case. fromMicros(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of microseconds. fromMicros(long) - Static method in class com.google.protobuf.util.Timestamps Create a Timestamp from the number of microseconds elapsed from the epoch. fromMillis(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of milliseconds. fromMillis(long) - Static method in class com.google.protobuf.util.Timestamps Create a Timestamp from the number of milliseconds elapsed from the epoch. fromMinutes(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of minutes. fromNanos(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of nanoseconds. fromNanos(long) - Static method in class com.google.protobuf.util.Timestamps Create a Timestamp from the number of nanoseconds elapsed from the epoch. fromSeconds(long) - Static method in class com.google.protobuf.util.Durations Create a Duration from the number of seconds. fromSeconds(long) - Static method in class com.google.protobuf.util.Timestamps Create a Timestamp from the number of seconds elapsed from the epoch. fromString(String) - Static method in class com.google.protobuf.util.FieldMaskUtil Parses from a string to a FieldMask. fromString(Class<? extends Message>, String) - Static method in class com.google.protobuf.util.FieldMaskUtil Parses from a string to a FieldMask and validates all field paths. fromStringList(Class<? extends Message>, Iterable<String>) - Static method in class com.google.protobuf.util.FieldMaskUtil Constructs a FieldMask for a list of field paths in a certain type. fromStringList(Descriptors.Descriptor, Iterable<String>) - Static method in class com.google.protobuf.util.FieldMaskUtil Constructs a FieldMask for a list of field paths in a certain type. fromStringList(Iterable<String>) - Static method in class com.google.protobuf.util.FieldMaskUtil Constructs a FieldMask for a list of field paths in a certain type. G generalizeCallback(RpcCallback<Type>, Class<Type>, Type) - Static method in class com.google.protobuf.RpcUtil Take an RpcCallback accepting a specific message type and convert it to an RpcCallback<Message>. GENERATED_CODE_INFO_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getAggregateValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional string aggregate_value = 8; getAggregateValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional string aggregate_value = 8; getAggregateValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional string aggregate_value = 8; getAggregateValueBytes() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional string aggregate_value = 8; getAggregateValueBytes() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional string aggregate_value = 8; getAggregateValueBytes() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional string aggregate_value = 8; getAllFields() - Method in class com.google.protobuf.DynamicMessage.Builder getAllFields() - Method in class com.google.protobuf.DynamicMessage getAllFields() - Method in interface com.google.protobuf.MessageOrBuilder Returns a collection of all the fields in this message which are set and their corresponding values. getAllImmutableExtensionsByExtendedType(String) - Method in class com.google.protobuf.ExtensionRegistry Find all extensions for immutable APIs by fully-qualified name of extended class. getAllMutableExtensionsByExtendedType(String) - Method in class com.google.protobuf.ExtensionRegistry Find all extensions for mutable APIs by fully-qualified name of extended class. getAllowAlias() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Set this option to true to allow mapping different tag names to the same value. getAllowAlias() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions Set this option to true to allow mapping different tag names to the same value. getAllowAlias() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder Set this option to true to allow mapping different tag names to the same value. getAnnotation(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotation(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotation(int) - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationBuilderList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationCount() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationCount() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationCount() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationList() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo An Annotation connects some span of text in generated code to an element of its generating .proto file. getAnnotationOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfoOrBuilder An Annotation connects some span of text in generated code to an element of its generating .proto file. getBegin() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the starting offset in bytes in the generated code that relates to the identified object. getBegin() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the starting offset in bytes in the generated code that relates to the identified object. getBegin() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the starting offset in bytes in the generated code that relates to the identified object. getBoolValue() - Method in class com.google.protobuf.Value.Builder Represents a boolean value. getBoolValue() - Method in class com.google.protobuf.Value Represents a boolean value. getBoolValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a boolean value. getBoxedType() - Method in enum com.google.protobuf.JavaType getBuilderForSubMessageField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.TextFormatParseInfoTree.Builder Set for a sub message. getBytesUntilLimit() - Method in class com.google.protobuf.CodedInputStream Returns the number of bytes to be read before the current limit. getCardinality() - Method in class com.google.protobuf.Field.Builder The field cardinality. getCardinality() - Method in class com.google.protobuf.Field The field cardinality. getCardinality() - Method in interface com.google.protobuf.FieldOrBuilder The field cardinality. getCardinalityValue() - Method in class com.google.protobuf.Field.Builder The field cardinality. getCardinalityValue() - Method in class com.google.protobuf.Field The field cardinality. getCardinalityValue() - Method in interface com.google.protobuf.FieldOrBuilder The field cardinality. getCcEnableArenas() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Enables the use of arenas for the proto messages in this file. getCcEnableArenas() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Enables the use of arenas for the proto messages in this file. getCcEnableArenas() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Enables the use of arenas for the proto messages in this file. getCcGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. getCcGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. getCcGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. getClientStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if client streams multiple client messages getClientStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Identifies if client streams multiple client messages getClientStreaming() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Identifies if client streams multiple client messages getColumn() - Method in exception com.google.protobuf.TextFormat.ParseException Return the column where the parse exception occurred, or -1 when none is provided. getColumn() - Method in class com.google.protobuf.TextFormatParseLocation getCompilerVersion() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. getCompilerVersion() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The version number of protocol compiler. getCompilerVersion() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The version number of protocol compiler. getCompilerVersionBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. getCompilerVersionOrBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. getCompilerVersionOrBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The version number of protocol compiler. getCompilerVersionOrBuilder() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The version number of protocol compiler. getContainingOneof() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's containing oneof. getContainingType() - Method in class com.google.protobuf.Descriptors.Descriptor If this is a nested type, get the outer descriptor, otherwise null. getContainingType() - Method in class com.google.protobuf.Descriptors.EnumDescriptor If this is a nested type, get the outer descriptor, otherwise null. getContainingType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's containing type. getContainingType() - Method in class com.google.protobuf.Descriptors.OneofDescriptor getContent() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file contents. getContent() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File The file contents. getContent() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder The file contents. getContentBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file contents. getContentBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File The file contents. getContentBytes() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder The file contents. getCsharpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Namespace for generated classes; defaults to the package. getCsharpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Namespace for generated classes; defaults to the package. getCsharpNamespace() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Namespace for generated classes; defaults to the package. getCsharpNamespaceBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Namespace for generated classes; defaults to the package. getCsharpNamespaceBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Namespace for generated classes; defaults to the package. getCsharpNamespaceBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Namespace for generated classes; defaults to the package. getCtype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. getCtype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. getCtype() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. getCurrentTime() - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.fromMillis(System.currentTimeMillis()) instead. getDefaultDefault() - Method in enum com.google.protobuf.JavaType The default default value for fields of this type, if it's a primitive type. getDefaultInstance() - Static method in class com.google.protobuf.Any getDefaultInstance() - Static method in class com.google.protobuf.Api getDefaultInstance() - Static method in class com.google.protobuf.BoolValue getDefaultInstance() - Static method in class com.google.protobuf.BytesValue getDefaultInstance() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getDefaultInstance() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getDefaultInstance() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getDefaultInstance() - Static method in class com.google.protobuf.compiler.PluginProtos.Version getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.FileOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption getDefaultInstance() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getDefaultInstance() - Static method in class com.google.protobuf.DoubleValue getDefaultInstance() - Static method in class com.google.protobuf.Duration getDefaultInstance(Descriptors.Descriptor) - Static method in class com.google.protobuf.DynamicMessage Get a DynamicMessage representing the default instance of the given type. getDefaultInstance() - Static method in class com.google.protobuf.Empty getDefaultInstance() - Static method in class com.google.protobuf.Enum getDefaultInstance() - Static method in class com.google.protobuf.EnumValue getDefaultInstance() - Static method in class com.google.protobuf.Field getDefaultInstance() - Static method in class com.google.protobuf.FieldMask getDefaultInstance() - Static method in class com.google.protobuf.FloatValue getDefaultInstance() - Static method in class com.google.protobuf.Int32Value getDefaultInstance() - Static method in class com.google.protobuf.Int64Value getDefaultInstance() - Static method in class com.google.protobuf.ListValue getDefaultInstance() - Static method in class com.google.protobuf.Method getDefaultInstance() - Static method in class com.google.protobuf.Mixin getDefaultInstance() - Static method in class com.google.protobuf.Option getDefaultInstance() - Static method in class com.google.protobuf.SourceContext getDefaultInstance() - Static method in class com.google.protobuf.StringValue getDefaultInstance() - Static method in class com.google.protobuf.Struct getDefaultInstance() - Static method in class com.google.protobuf.Timestamp getDefaultInstance() - Static method in class com.google.protobuf.Type getDefaultInstance() - Static method in class com.google.protobuf.UInt32Value getDefaultInstance() - Static method in class com.google.protobuf.UInt64Value getDefaultInstance() - Static method in class com.google.protobuf.Value getDefaultInstanceForType() - Method in class com.google.protobuf.Any.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Any getDefaultInstanceForType() - Method in class com.google.protobuf.Api.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Api getDefaultInstanceForType() - Method in class com.google.protobuf.BoolValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.BoolValue getDefaultInstanceForType() - Method in class com.google.protobuf.BytesValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.BytesValue getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.compiler.PluginProtos.Version getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.FileOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getDefaultInstanceForType() - Method in class com.google.protobuf.DoubleValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DoubleValue getDefaultInstanceForType() - Method in class com.google.protobuf.Duration.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Duration getDefaultInstanceForType() - Method in class com.google.protobuf.DynamicMessage.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.DynamicMessage getDefaultInstanceForType() - Method in class com.google.protobuf.Empty.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Empty getDefaultInstanceForType() - Method in class com.google.protobuf.Enum.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Enum getDefaultInstanceForType() - Method in class com.google.protobuf.EnumValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.EnumValue getDefaultInstanceForType() - Method in class com.google.protobuf.Field.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Field getDefaultInstanceForType() - Method in class com.google.protobuf.FieldMask.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.FieldMask getDefaultInstanceForType() - Method in class com.google.protobuf.FloatValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.FloatValue getDefaultInstanceForType() - Method in class com.google.protobuf.Int32Value.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Int32Value getDefaultInstanceForType() - Method in class com.google.protobuf.Int64Value.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Int64Value getDefaultInstanceForType() - Method in class com.google.protobuf.ListValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.ListValue getDefaultInstanceForType() - Method in interface com.google.protobuf.MessageLiteOrBuilder Get an instance of the type with no fields set. getDefaultInstanceForType() - Method in interface com.google.protobuf.MessageOrBuilder getDefaultInstanceForType() - Method in class com.google.protobuf.Method.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Method getDefaultInstanceForType() - Method in class com.google.protobuf.Mixin.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Mixin getDefaultInstanceForType() - Method in class com.google.protobuf.Option.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Option getDefaultInstanceForType() - Method in class com.google.protobuf.SourceContext.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.SourceContext getDefaultInstanceForType() - Method in class com.google.protobuf.StringValue.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.StringValue getDefaultInstanceForType() - Method in class com.google.protobuf.Struct.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Struct getDefaultInstanceForType() - Method in class com.google.protobuf.Timestamp.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Timestamp getDefaultInstanceForType() - Method in class com.google.protobuf.Type.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Type getDefaultInstanceForType() - Method in class com.google.protobuf.UInt32Value.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.UInt32Value getDefaultInstanceForType() - Method in class com.google.protobuf.UInt64Value.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.UInt64Value getDefaultInstanceForType() - Method in class com.google.protobuf.Value.Builder getDefaultInstanceForType() - Method in class com.google.protobuf.Value getDefaultValue() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For numeric types, contains the original text representation of the value. getDefaultValue() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For numeric types, contains the original text representation of the value. getDefaultValue() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For numeric types, contains the original text representation of the value. getDefaultValue() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Returns the field's default value. getDefaultValue() - Method in class com.google.protobuf.ExtensionLite Returns the default value of the extension field. getDefaultValue() - Method in class com.google.protobuf.Field.Builder The string value of the default value of this field. getDefaultValue() - Method in class com.google.protobuf.Field The string value of the default value of this field. getDefaultValue() - Method in interface com.google.protobuf.FieldOrBuilder The string value of the default value of this field. getDefaultValueBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For numeric types, contains the original text representation of the value. getDefaultValueBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For numeric types, contains the original text representation of the value. getDefaultValueBytes() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For numeric types, contains the original text representation of the value. getDefaultValueBytes() - Method in class com.google.protobuf.Field.Builder The string value of the default value of this field. getDefaultValueBytes() - Method in class com.google.protobuf.Field The string value of the default value of this field. getDefaultValueBytes() - Method in interface com.google.protobuf.FieldOrBuilder The string value of the default value of this field. getDependencies() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get a list of this file's dependencies (imports). getDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. getDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Names of files imported by this file. getDependency(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Names of files imported by this file. getDependencyBytes(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. getDependencyBytes(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Names of files imported by this file. getDependencyBytes(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Names of files imported by this file. getDependencyCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. getDependencyCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Names of files imported by this file. getDependencyCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Names of files imported by this file. getDependencyList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. getDependencyList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Names of files imported by this file. getDependencyList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Names of files imported by this file. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. getDeprecated() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. getDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. getDescription() - Method in exception com.google.protobuf.Descriptors.DescriptorValidationException Gets a human-readable description of the error. getDescriptor() - Static method in class com.google.protobuf.Any.Builder getDescriptor() - Static method in class com.google.protobuf.Any getDescriptor() - Static method in class com.google.protobuf.AnyProto getDescriptor() - Static method in class com.google.protobuf.Api.Builder getDescriptor() - Static method in class com.google.protobuf.Api getDescriptor() - Static method in class com.google.protobuf.ApiProto getDescriptor() - Static method in class com.google.protobuf.BoolValue.Builder getDescriptor() - Static method in class com.google.protobuf.BoolValue getDescriptor() - Static method in class com.google.protobuf.BytesValue.Builder getDescriptor() - Static method in class com.google.protobuf.BytesValue getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder getDescriptor() - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.Version.Builder getDescriptor() - Static method in class com.google.protobuf.compiler.PluginProtos.Version getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto getDescriptor() - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getDescriptor() - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder getDescriptor() - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions getDescriptor() - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.FileOptions getDescriptor() - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions getDescriptor() - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder getDescriptor() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getDescriptor() - Static method in class com.google.protobuf.DoubleValue.Builder getDescriptor() - Static method in class com.google.protobuf.DoubleValue getDescriptor() - Static method in class com.google.protobuf.Duration.Builder getDescriptor() - Static method in class com.google.protobuf.Duration getDescriptor() - Static method in class com.google.protobuf.DurationProto getDescriptor() - Static method in class com.google.protobuf.Empty.Builder getDescriptor() - Static method in class com.google.protobuf.Empty getDescriptor() - Static method in class com.google.protobuf.EmptyProto getDescriptor() - Static method in class com.google.protobuf.Enum.Builder getDescriptor() - Static method in class com.google.protobuf.Enum getDescriptor() - Static method in class com.google.protobuf.EnumValue.Builder getDescriptor() - Static method in class com.google.protobuf.EnumValue getDescriptor() - Method in class com.google.protobuf.Extension Returns the descriptor of the extension. getDescriptor() - Static method in class com.google.protobuf.Field.Builder getDescriptor() - Static method in enum com.google.protobuf.Field.Cardinality getDescriptor() - Static method in class com.google.protobuf.Field getDescriptor() - Static method in enum com.google.protobuf.Field.Kind getDescriptor() - Static method in class com.google.protobuf.FieldMask.Builder getDescriptor() - Static method in class com.google.protobuf.FieldMask getDescriptor() - Static method in class com.google.protobuf.FieldMaskProto getDescriptor() - Static method in class com.google.protobuf.FloatValue.Builder getDescriptor() - Static method in class com.google.protobuf.FloatValue getDescriptor() - Static method in class com.google.protobuf.Int32Value.Builder getDescriptor() - Static method in class com.google.protobuf.Int32Value getDescriptor() - Static method in class com.google.protobuf.Int64Value.Builder getDescriptor() - Static method in class com.google.protobuf.Int64Value getDescriptor() - Static method in class com.google.protobuf.ListValue.Builder getDescriptor() - Static method in class com.google.protobuf.ListValue getDescriptor() - Static method in class com.google.protobuf.Method.Builder getDescriptor() - Static method in class com.google.protobuf.Method getDescriptor() - Static method in class com.google.protobuf.Mixin.Builder getDescriptor() - Static method in class com.google.protobuf.Mixin getDescriptor() - Static method in enum com.google.protobuf.NullValue getDescriptor() - Static method in class com.google.protobuf.Option.Builder getDescriptor() - Static method in class com.google.protobuf.Option getDescriptor() - Static method in class com.google.protobuf.SourceContext.Builder getDescriptor() - Static method in class com.google.protobuf.SourceContext getDescriptor() - Static method in class com.google.protobuf.SourceContextProto getDescriptor() - Static method in class com.google.protobuf.StringValue.Builder getDescriptor() - Static method in class com.google.protobuf.StringValue getDescriptor() - Static method in class com.google.protobuf.Struct.Builder getDescriptor() - Static method in class com.google.protobuf.Struct getDescriptor() - Static method in class com.google.protobuf.StructProto getDescriptor() - Static method in enum com.google.protobuf.Syntax getDescriptor() - Static method in class com.google.protobuf.Timestamp.Builder getDescriptor() - Static method in class com.google.protobuf.Timestamp getDescriptor() - Static method in class com.google.protobuf.TimestampProto getDescriptor() - Static method in class com.google.protobuf.Type.Builder getDescriptor() - Static method in class com.google.protobuf.Type getDescriptor() - Static method in class com.google.protobuf.TypeProto getDescriptor() - Static method in class com.google.protobuf.UInt32Value.Builder getDescriptor() - Static method in class com.google.protobuf.UInt32Value getDescriptor() - Static method in class com.google.protobuf.UInt64Value.Builder getDescriptor() - Static method in class com.google.protobuf.UInt64Value getDescriptor() - Static method in class com.google.protobuf.Value.Builder getDescriptor() - Static method in class com.google.protobuf.Value getDescriptor() - Static method in class com.google.protobuf.WrappersProto getDescriptorForType() - Method in class com.google.protobuf.Any.Builder getDescriptorForType() - Method in class com.google.protobuf.Api.Builder getDescriptorForType() - Method in interface com.google.protobuf.BlockingService Equivalent to Service.getDescriptorForType(). getDescriptorForType() - Method in class com.google.protobuf.BoolValue.Builder getDescriptorForType() - Method in class com.google.protobuf.BytesValue.Builder getDescriptorForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder getDescriptorForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder getDescriptorForType() - Method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature getDescriptorForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder getDescriptorForType() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder getDescriptorForType() - Method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getDescriptorForType() - Method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder getDescriptorForType() - Method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType getDescriptorForType() - Method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder getDescriptorForType() - Method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder getDescriptorForType() - Method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder getDescriptorForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder getDescriptorForType() - Method in class com.google.protobuf.DoubleValue.Builder getDescriptorForType() - Method in class com.google.protobuf.Duration.Builder getDescriptorForType() - Method in class com.google.protobuf.DynamicMessage.Builder getDescriptorForType() - Method in class com.google.protobuf.DynamicMessage getDescriptorForType() - Method in class com.google.protobuf.Empty.Builder getDescriptorForType() - Method in class com.google.protobuf.Enum.Builder getDescriptorForType() - Method in class com.google.protobuf.EnumValue.Builder getDescriptorForType() - Method in class com.google.protobuf.Field.Builder getDescriptorForType() - Method in enum com.google.protobuf.Field.Cardinality getDescriptorForType() - Method in enum com.google.protobuf.Field.Kind getDescriptorForType() - Method in class com.google.protobuf.FieldMask.Builder getDescriptorForType() - Method in class com.google.protobuf.FloatValue.Builder getDescriptorForType() - Method in class com.google.protobuf.Int32Value.Builder getDescriptorForType() - Method in class com.google.protobuf.Int64Value.Builder getDescriptorForType() - Method in class com.google.protobuf.ListValue.Builder getDescriptorForType() - Method in interface com.google.protobuf.Message.Builder Get the message's type's descriptor. getDescriptorForType() - Method in interface com.google.protobuf.MessageOrBuilder Get the message's type's descriptor. getDescriptorForType() - Method in class com.google.protobuf.Method.Builder getDescriptorForType() - Method in class com.google.protobuf.Mixin.Builder getDescriptorForType() - Method in enum com.google.protobuf.NullValue getDescriptorForType() - Method in class com.google.protobuf.Option.Builder getDescriptorForType() - Method in interface com.google.protobuf.ProtocolMessageEnum Return the enum type's descriptor, which contains information about each defined value, etc. getDescriptorForType() - Method in interface com.google.protobuf.Service Get the ServiceDescriptor describing this service and its methods. getDescriptorForType() - Method in class com.google.protobuf.SourceContext.Builder getDescriptorForType() - Method in class com.google.protobuf.StringValue.Builder getDescriptorForType() - Method in class com.google.protobuf.Struct.Builder getDescriptorForType() - Method in enum com.google.protobuf.Syntax getDescriptorForType() - Method in class com.google.protobuf.Timestamp.Builder getDescriptorForType() - Method in class com.google.protobuf.Type.Builder getDescriptorForType() - Method in class com.google.protobuf.UInt32Value.Builder getDescriptorForType() - Method in class com.google.protobuf.UInt64Value.Builder getDescriptorForType() - Method in class com.google.protobuf.Value.Builder getDescriptorForTypeUrl(String) - Method in class com.google.protobuf.TypeRegistry Find a type by its typeUrl. getDoubleValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional double double_value = 6; getDoubleValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional double double_value = 6; getDoubleValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional double double_value = 6; getEmptyRegistry() - Static method in class com.google.protobuf.ExtensionRegistry Get the unmodifiable singleton empty instance. getEmptyRegistry() - Static method in class com.google.protobuf.ExtensionRegistryLite Get the unmodifiable singleton empty instance of either ExtensionRegistryLite or ExtensionRegistry (if the full (non-Lite) proto libraries are available). getEmptyTypeRegistry() - Static method in class com.google.protobuf.TypeRegistry getEmptyTypeRegistry() - Static method in class com.google.protobuf.util.JsonFormat.TypeRegistry getEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Exclusive. getEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange Exclusive. getEnd() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder Exclusive. getEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Exclusive. getEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange Exclusive. getEnd() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder Exclusive. getEnd() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. getEnd() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange Inclusive. getEnd() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRangeOrBuilder Inclusive. getEnd() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the ending offset in bytes in the generated code that relates to the identified offset. getEnd() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the ending offset in bytes in the generated code that relates to the identified offset. getEnd() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the ending offset in bytes in the generated code that relates to the identified offset. getEnumType(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumType(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumType(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumType(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumType(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumType(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor For enum fields, gets the field's type. getEnumTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; getEnumTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; getEnumTypes() - Method in class com.google.protobuf.Descriptors.Descriptor Get a list of enum types nested within this one. getEnumTypes() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get a list of top-level enum types declared in this file. getEnumvalue(int) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalue(int) - Method in class com.google.protobuf.Enum Enum value definitions. getEnumvalue(int) - Method in interface com.google.protobuf.EnumOrBuilder Enum value definitions. getEnumvalueBuilder(int) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalueBuilderList() - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalueCount() - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalueCount() - Method in class com.google.protobuf.Enum Enum value definitions. getEnumvalueCount() - Method in interface com.google.protobuf.EnumOrBuilder Enum value definitions. getEnumvalueList() - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalueList() - Method in class com.google.protobuf.Enum Enum value definitions. getEnumvalueList() - Method in interface com.google.protobuf.EnumOrBuilder Enum value definitions. getEnumvalueOrBuilder(int) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalueOrBuilder(int) - Method in class com.google.protobuf.Enum Enum value definitions. getEnumvalueOrBuilder(int) - Method in interface com.google.protobuf.EnumOrBuilder Enum value definitions. getEnumvalueOrBuilderList() - Method in class com.google.protobuf.Enum.Builder Enum value definitions. getEnumvalueOrBuilderList() - Method in class com.google.protobuf.Enum Enum value definitions. getEnumvalueOrBuilderList() - Method in interface com.google.protobuf.EnumOrBuilder Enum value definitions. getEpoch() - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.fromMillis(0) instead. getError() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder Error message. getError() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse Error message. getError() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder Error message. getErrorBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder Error message. getErrorBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse Error message. getErrorBytes() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder Error message. getExtendee() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For extensions, this is the name of the type being extended. getExtendee() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For extensions, this is the name of the type being extended. getExtendee() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For extensions, this is the name of the type being extended. getExtendeeBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For extensions, this is the name of the type being extended. getExtendeeBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For extensions, this is the name of the type being extended. getExtendeeBytes() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For extensions, this is the name of the type being extended. getExtension(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtension(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtension(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtension(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtension(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtension(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 6; getExtensionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto extension = 7; getExtensionRange(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRange(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRange(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensionRangeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; getExtensions() - Method in class com.google.protobuf.Descriptors.Descriptor Get a list of this message type's extensions. getExtensions() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get a list of top-level extensions declared in this file. getExtensionScope() - Method in class com.google.protobuf.Descriptors.FieldDescriptor For extensions defined nested within message types, gets the outer type. getField(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getField(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto field = 2; getField(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto field = 2; getField(int) - Method in class com.google.protobuf.Descriptors.OneofDescriptor getField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder getField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage getField(Descriptors.FieldDescriptor) - Method in interface com.google.protobuf.MessageOrBuilder Obtains the value of the given field, or the default value if it is not set. getFieldBuilder(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.AbstractMessage.Builder getFieldBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldBuilder(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder getFieldBuilder(Descriptors.FieldDescriptor) - Method in interface com.google.protobuf.Message.Builder Get a nested builder instance for the given field. getFieldBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldCount() - Method in class com.google.protobuf.Descriptors.OneofDescriptor getFieldList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.FieldDescriptorProto field = 2; getFieldOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.FieldDescriptorProto field = 2; getFields() - Method in class com.google.protobuf.Descriptors.Descriptor Get a list of this message type's fields. getFields() - Method in class com.google.protobuf.Descriptors.OneofDescriptor Get a list of this message type's fields. getFields() - Method in class com.google.protobuf.Struct.Builder Deprecated. getFields() - Method in class com.google.protobuf.Struct Deprecated. getFields() - Method in interface com.google.protobuf.StructOrBuilder Deprecated. getFields(int) - Method in class com.google.protobuf.Type.Builder The list of fields. getFields(int) - Method in class com.google.protobuf.Type The list of fields. getFields(int) - Method in interface com.google.protobuf.TypeOrBuilder The list of fields. getFieldsBuilder(int) - Method in class com.google.protobuf.Type.Builder The list of fields. getFieldsBuilderList() - Method in class com.google.protobuf.Type.Builder The list of fields. getFieldsCount() - Method in class com.google.protobuf.Struct.Builder getFieldsCount() - Method in class com.google.protobuf.Struct getFieldsCount() - Method in interface com.google.protobuf.StructOrBuilder Unordered map of dynamically typed values. getFieldsCount() - Method in class com.google.protobuf.Type.Builder The list of fields. getFieldsCount() - Method in class com.google.protobuf.Type The list of fields. getFieldsCount() - Method in interface com.google.protobuf.TypeOrBuilder The list of fields. getFieldsList() - Method in class com.google.protobuf.Type.Builder The list of fields. getFieldsList() - Method in class com.google.protobuf.Type The list of fields. getFieldsList() - Method in interface com.google.protobuf.TypeOrBuilder The list of fields. getFieldsMap() - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. getFieldsMap() - Method in class com.google.protobuf.Struct Unordered map of dynamically typed values. getFieldsMap() - Method in interface com.google.protobuf.StructOrBuilder Unordered map of dynamically typed values. getFieldsOrBuilder(int) - Method in class com.google.protobuf.Type.Builder The list of fields. getFieldsOrBuilder(int) - Method in class com.google.protobuf.Type The list of fields. getFieldsOrBuilder(int) - Method in interface com.google.protobuf.TypeOrBuilder The list of fields. getFieldsOrBuilderList() - Method in class com.google.protobuf.Type.Builder The list of fields. getFieldsOrBuilderList() - Method in class com.google.protobuf.Type The list of fields. getFieldsOrBuilderList() - Method in interface com.google.protobuf.TypeOrBuilder The list of fields. getFieldsOrDefault(String, Value) - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. getFieldsOrDefault(String, Value) - Method in class com.google.protobuf.Struct Unordered map of dynamically typed values. getFieldsOrDefault(String, Value) - Method in interface com.google.protobuf.StructOrBuilder Unordered map of dynamically typed values. getFieldsOrThrow(String) - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. getFieldsOrThrow(String) - Method in class com.google.protobuf.Struct Unordered map of dynamically typed values. getFieldsOrThrow(String) - Method in interface com.google.protobuf.StructOrBuilder Unordered map of dynamically typed values. getFile(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFile(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFile(int) - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFile(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFile(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet repeated .google.protobuf.FileDescriptorProto file = 1; getFile(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder repeated .google.protobuf.FileDescriptorProto file = 1; getFile() - Method in class com.google.protobuf.Descriptors.Descriptor Get the Descriptors.FileDescriptor containing this descriptor. getFile() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get the Descriptors.FileDescriptor containing this descriptor. getFile() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the Descriptors.FileDescriptor containing this descriptor. getFile() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the FileDescriptor containing this descriptor. getFile() - Method in class com.google.protobuf.Descriptors.FileDescriptor Returns this object. getFile() - Method in class com.google.protobuf.Descriptors.GenericDescriptor getFile() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the Descriptors.FileDescriptor containing this descriptor. getFile() - Method in class com.google.protobuf.Descriptors.OneofDescriptor getFile() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Get the Descriptors.FileDescriptor containing this descriptor. getFileBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFileBuilderList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFileCount() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileCount() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileCount() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFileCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet repeated .google.protobuf.FileDescriptorProto file = 1; getFileCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder repeated .google.protobuf.FileDescriptorProto file = 1; getFileList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileList() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFileList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet repeated .google.protobuf.FileDescriptorProto file = 1; getFileList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder repeated .google.protobuf.FileDescriptorProto file = 1; getFileName() - Method in class com.google.protobuf.SourceContext.Builder The path-qualified name of the .proto file that contained the associated protobuf element. getFileName() - Method in class com.google.protobuf.SourceContext The path-qualified name of the .proto file that contained the associated protobuf element. getFileName() - Method in interface com.google.protobuf.SourceContextOrBuilder The path-qualified name of the .proto file that contained the associated protobuf element. getFileNameBytes() - Method in class com.google.protobuf.SourceContext.Builder The path-qualified name of the .proto file that contained the associated protobuf element. getFileNameBytes() - Method in class com.google.protobuf.SourceContext The path-qualified name of the .proto file that contained the associated protobuf element. getFileNameBytes() - Method in interface com.google.protobuf.SourceContextOrBuilder The path-qualified name of the .proto file that contained the associated protobuf element. getFileOrBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileOrBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileOrBuilder(int) - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFileOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet repeated .google.protobuf.FileDescriptorProto file = 1; getFileOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder repeated .google.protobuf.FileDescriptorProto file = 1; getFileOrBuilderList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileOrBuilderList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileOrBuilderList() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; getFileOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; getFileOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet repeated .google.protobuf.FileDescriptorProto file = 1; getFileOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorSetOrBuilder repeated .google.protobuf.FileDescriptorProto file = 1; getFileToGenerate(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. getFileToGenerate(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The .proto files that were explicitly listed on the command-line. getFileToGenerate(int) - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The .proto files that were explicitly listed on the command-line. getFileToGenerateBytes(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. getFileToGenerateBytes(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The .proto files that were explicitly listed on the command-line. getFileToGenerateBytes(int) - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The .proto files that were explicitly listed on the command-line. getFileToGenerateCount() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. getFileToGenerateCount() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The .proto files that were explicitly listed on the command-line. getFileToGenerateCount() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The .proto files that were explicitly listed on the command-line. getFileToGenerateList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. getFileToGenerateList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The .proto files that were explicitly listed on the command-line. getFileToGenerateList() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The .proto files that were explicitly listed on the command-line. getFullName() - Method in class com.google.protobuf.Descriptors.Descriptor Get the type's fully-qualified name, within the proto language's namespace. getFullName() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get the type's fully-qualified name. getFullName() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the value's fully-qualified name. getFullName() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's fully-qualified name. getFullName() - Method in class com.google.protobuf.Descriptors.FileDescriptor Returns the same as getName(). getFullName() - Method in class com.google.protobuf.Descriptors.GenericDescriptor getFullName() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the method's fully-qualified name. getFullName() - Method in class com.google.protobuf.Descriptors.OneofDescriptor getFullName() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Get the type's fully-qualified name. getGeneratedCodeInfo() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. getGeneratedCodeInfo() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File Information describing the file content being inserted. getGeneratedCodeInfo() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder Information describing the file content being inserted. getGeneratedCodeInfoBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. getGeneratedCodeInfoOrBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. getGeneratedCodeInfoOrBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File Information describing the file content being inserted. getGeneratedCodeInfoOrBuilder() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder Information describing the file content being inserted. getGoPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Go package where structs generated from this .proto will be placed. getGoPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the Go package where structs generated from this .proto will be placed. getGoPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the Go package where structs generated from this .proto will be placed. getGoPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Go package where structs generated from this .proto will be placed. getGoPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the Go package where structs generated from this .proto will be placed. getGoPackageBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the Go package where structs generated from this .proto will be placed. getIdempotencyLevel() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; getIdempotencyLevel() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; getIdempotencyLevel() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; getIdentifierValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. getIdentifierValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. getIdentifierValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. getIdentifierValueBytes() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. getIdentifierValueBytes() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. getIdentifierValueBytes() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. getIndex() - Method in class com.google.protobuf.Descriptors.Descriptor Get the index of this descriptor within its parent. getIndex() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get the index of this descriptor within its parent. getIndex() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the index of this descriptor within its parent. getIndex() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the index of this descriptor within its parent. getIndex() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the index of this descriptor within its parent. getIndex() - Method in class com.google.protobuf.Descriptors.OneofDescriptor Get the index of this descriptor within its parent. getIndex() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Get the index of this descriptor within its parent. getInitializationErrorString() - Method in class com.google.protobuf.AbstractMessage.Builder getInitializationErrorString() - Method in class com.google.protobuf.AbstractMessage getInitializationErrorString() - Method in interface com.google.protobuf.MessageOrBuilder Returns a comma-delimited list of required fields which are not set in this message object. getInputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Input and output type names. getInputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Input and output type names. getInputType() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Input and output type names. getInputType() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the method's input type. getInputTypeBytes() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Input and output type names. getInputTypeBytes() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Input and output type names. getInputTypeBytes() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Input and output type names. getInsertionPoint() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. getInsertionPoint() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. getInsertionPoint() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. getInsertionPointBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. getInsertionPointBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. getInsertionPointBytes() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. getIsExtension() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required bool is_extension = 2; getIsExtension() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart required bool is_extension = 2; getIsExtension() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder required bool is_extension = 2; getJavaGenerateEqualsAndHash() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Deprecated. getJavaGenerateEqualsAndHash() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Deprecated. getJavaGenerateEqualsAndHash() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Deprecated. getJavaGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool java_generic_services = 17 [default = false]; getJavaGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional bool java_generic_services = 17 [default = false]; getJavaGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional bool java_generic_services = 17 [default = false]; getJavaMultipleFiles() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. getJavaMultipleFiles() - Method in class com.google.protobuf.DescriptorProtos.FileOptions If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. getJavaMultipleFiles() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. getJavaOuterClassname() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Controls the name of the wrapper Java class generated for the .proto file. getJavaOuterClassname() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Controls the name of the wrapper Java class generated for the .proto file. getJavaOuterClassname() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Controls the name of the wrapper Java class generated for the .proto file. getJavaOuterClassnameBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Controls the name of the wrapper Java class generated for the .proto file. getJavaOuterClassnameBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Controls the name of the wrapper Java class generated for the .proto file. getJavaOuterClassnameBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Controls the name of the wrapper Java class generated for the .proto file. getJavaPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Java package where classes generated from this .proto will be placed. getJavaPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the Java package where classes generated from this .proto will be placed. getJavaPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the Java package where classes generated from this .proto will be placed. getJavaPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Java package where classes generated from this .proto will be placed. getJavaPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the Java package where classes generated from this .proto will be placed. getJavaPackageBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the Java package where classes generated from this .proto will be placed. getJavaStringCheckUtf8() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. getJavaStringCheckUtf8() - Method in class com.google.protobuf.DescriptorProtos.FileOptions If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. getJavaStringCheckUtf8() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. getJavaType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's java type. getJavaType() - Method in enum com.google.protobuf.Descriptors.FieldDescriptor.Type getJavaType() - Method in enum com.google.protobuf.FieldType Gets the JavaType for this field. getJavaType() - Method in enum com.google.protobuf.WireFormat.FieldType getJsonName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder JSON name of this field. getJsonName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto JSON name of this field. getJsonName() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder JSON name of this field. getJsonName() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the JSON name of this field. getJsonName() - Method in class com.google.protobuf.Field.Builder The field JSON name. getJsonName() - Method in class com.google.protobuf.Field The field JSON name. getJsonName() - Method in interface com.google.protobuf.FieldOrBuilder The field JSON name. getJsonNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder JSON name of this field. getJsonNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto JSON name of this field. getJsonNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder JSON name of this field. getJsonNameBytes() - Method in class com.google.protobuf.Field.Builder The field JSON name. getJsonNameBytes() - Method in class com.google.protobuf.Field The field JSON name. getJsonNameBytes() - Method in interface com.google.protobuf.FieldOrBuilder The field JSON name. getJstype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The jstype option determines the JavaScript type used for values of the field. getJstype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The jstype option determines the JavaScript type used for values of the field. getJstype() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The jstype option determines the JavaScript type used for values of the field. getKind() - Method in class com.google.protobuf.Field.Builder The field type. getKind() - Method in class com.google.protobuf.Field The field type. getKind() - Method in interface com.google.protobuf.FieldOrBuilder The field type. getKindCase() - Method in class com.google.protobuf.Value.Builder getKindCase() - Method in class com.google.protobuf.Value getKindCase() - Method in interface com.google.protobuf.ValueOrBuilder getKindValue() - Method in class com.google.protobuf.Field.Builder The field type. getKindValue() - Method in class com.google.protobuf.Field The field type. getKindValue() - Method in interface com.google.protobuf.FieldOrBuilder The field type. getLabel() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldDescriptorProto.Label label = 4; getLabel() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional .google.protobuf.FieldDescriptorProto.Label label = 4; getLabel() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional .google.protobuf.FieldDescriptorProto.Label label = 4; getLastTag() - Method in class com.google.protobuf.CodedInputStream getLazy() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Should this field be parsed lazily? Lazy applies only to message-type fields. getLazy() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions Should this field be parsed lazily? Lazy applies only to message-type fields. getLazy() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder Should this field be parsed lazily? Lazy applies only to message-type fields. getLeadingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. getLeadingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. getLeadingComments() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. getLeadingCommentsBytes() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. getLeadingCommentsBytes() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. getLeadingCommentsBytes() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. getLeadingDetachedComments(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; getLeadingDetachedComments(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location repeated string leading_detached_comments = 6; getLeadingDetachedComments(int) - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder repeated string leading_detached_comments = 6; getLeadingDetachedCommentsBytes(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; getLeadingDetachedCommentsBytes(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location repeated string leading_detached_comments = 6; getLeadingDetachedCommentsBytes(int) - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder repeated string leading_detached_comments = 6; getLeadingDetachedCommentsCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; getLeadingDetachedCommentsCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location repeated string leading_detached_comments = 6; getLeadingDetachedCommentsCount() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder repeated string leading_detached_comments = 6; getLeadingDetachedCommentsList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; getLeadingDetachedCommentsList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location repeated string leading_detached_comments = 6; getLeadingDetachedCommentsList() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder repeated string leading_detached_comments = 6; getLine() - Method in exception com.google.protobuf.TextFormat.ParseException Return the line where the parse exception occurred, or -1 when none is provided. getLine() - Method in class com.google.protobuf.TextFormatParseLocation getListValue() - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. getListValue() - Method in class com.google.protobuf.Value Represents a repeated `Value`. getListValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a repeated `Value`. getListValueBuilder() - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. getListValueOrBuilder() - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. getListValueOrBuilder() - Method in class com.google.protobuf.Value Represents a repeated `Value`. getListValueOrBuilder() - Method in interface com.google.protobuf.ValueOrBuilder Represents a repeated `Value`. getLiteJavaType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor For internal use only. getLiteType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor For internal use only. getLiteType() - Method in class com.google.protobuf.ExtensionLite Returns the type of the field. getLocation(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocation(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocation(int) - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocation(Descriptors.FieldDescriptor, int) - Method in class com.google.protobuf.TextFormatParseInfoTree Get the location in the source of a field's value. getLocationBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationBuilderList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationCount() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationList() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocationOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfoOrBuilder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. getLocations(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.TextFormatParseInfoTree Retrieve all the locations of a field. getMajor() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 major = 1; getMajor() - Method in class com.google.protobuf.compiler.PluginProtos.Version optional int32 major = 1; getMajor() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder optional int32 major = 1; getMap() - Method in class com.google.protobuf.MapField Returns the content of this MapField as a read-only Map. getMapEntry() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Whether the message is an automatically generated map entry type for the maps field. getMapEntry() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Whether the message is an automatically generated map entry type for the maps field. getMapEntry() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Whether the message is an automatically generated map entry type for the maps field. getMessageDefaultInstance() - Method in class com.google.protobuf.Extension Returns the default instance of the extension field, if it's a message extension. getMessageDefaultInstance() - Method in class com.google.protobuf.ExtensionLite Returns the default instance of the extension field, if it's a message extension. getMessageSetWireFormat() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Set true to use the old proto1 MessageSet wire format for extensions. getMessageSetWireFormat() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Set true to use the old proto1 MessageSet wire format for extensions. getMessageSetWireFormat() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Set true to use the old proto1 MessageSet wire format for extensions. getMessageType(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageType(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto All top-level definitions in this file. getMessageType(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder All top-level definitions in this file. getMessageType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor For embedded message and group fields, gets the field's type. getMessageType() - Method in class com.google.protobuf.Extension If the extension is a message extension (i.e., getLiteType() == MESSAGE), returns the type of the message, otherwise undefined. getMessageTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageTypeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageTypeCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageTypeCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto All top-level definitions in this file. getMessageTypeCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder All top-level definitions in this file. getMessageTypeList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageTypeList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto All top-level definitions in this file. getMessageTypeList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder All top-level definitions in this file. getMessageTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto All top-level definitions in this file. getMessageTypeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder All top-level definitions in this file. getMessageTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. getMessageTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto All top-level definitions in this file. getMessageTypeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder All top-level definitions in this file. getMessageTypes() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get a list of top-level message types declared in this file. getMethod(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethod(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto repeated .google.protobuf.MethodDescriptorProto method = 2; getMethod(int) - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodCount() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodCount() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodCount() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodList() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodList() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodList() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto repeated .google.protobuf.MethodDescriptorProto method = 2; getMethodOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder repeated .google.protobuf.MethodDescriptorProto method = 2; getMethods(int) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethods(int) - Method in class com.google.protobuf.Api The methods of this interface, in unspecified order. getMethods(int) - Method in interface com.google.protobuf.ApiOrBuilder The methods of this interface, in unspecified order. getMethods() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Get a list of methods for this service. getMethodsBuilder(int) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethodsBuilderList() - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethodsCount() - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethodsCount() - Method in class com.google.protobuf.Api The methods of this interface, in unspecified order. getMethodsCount() - Method in interface com.google.protobuf.ApiOrBuilder The methods of this interface, in unspecified order. getMethodsList() - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethodsList() - Method in class com.google.protobuf.Api The methods of this interface, in unspecified order. getMethodsList() - Method in interface com.google.protobuf.ApiOrBuilder The methods of this interface, in unspecified order. getMethodsOrBuilder(int) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethodsOrBuilder(int) - Method in class com.google.protobuf.Api The methods of this interface, in unspecified order. getMethodsOrBuilder(int) - Method in interface com.google.protobuf.ApiOrBuilder The methods of this interface, in unspecified order. getMethodsOrBuilderList() - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. getMethodsOrBuilderList() - Method in class com.google.protobuf.Api The methods of this interface, in unspecified order. getMethodsOrBuilderList() - Method in interface com.google.protobuf.ApiOrBuilder The methods of this interface, in unspecified order. getMinor() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 minor = 2; getMinor() - Method in class com.google.protobuf.compiler.PluginProtos.Version optional int32 minor = 2; getMinor() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder optional int32 minor = 2; getMissingFields() - Method in exception com.google.protobuf.UninitializedMessageException Get a list of human-readable names of required fields missing from this message. getMixins(int) - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixins(int) - Method in class com.google.protobuf.Api Included interfaces. getMixins(int) - Method in interface com.google.protobuf.ApiOrBuilder Included interfaces. getMixinsBuilder(int) - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixinsBuilderList() - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixinsCount() - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixinsCount() - Method in class com.google.protobuf.Api Included interfaces. getMixinsCount() - Method in interface com.google.protobuf.ApiOrBuilder Included interfaces. getMixinsList() - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixinsList() - Method in class com.google.protobuf.Api Included interfaces. getMixinsList() - Method in interface com.google.protobuf.ApiOrBuilder Included interfaces. getMixinsOrBuilder(int) - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixinsOrBuilder(int) - Method in class com.google.protobuf.Api Included interfaces. getMixinsOrBuilder(int) - Method in interface com.google.protobuf.ApiOrBuilder Included interfaces. getMixinsOrBuilderList() - Method in class com.google.protobuf.Api.Builder Included interfaces. getMixinsOrBuilderList() - Method in class com.google.protobuf.Api Included interfaces. getMixinsOrBuilderList() - Method in interface com.google.protobuf.ApiOrBuilder Included interfaces. getMutableFields() - Method in class com.google.protobuf.Struct.Builder Deprecated. getMutableMap() - Method in class com.google.protobuf.MapField Gets a mutable Map view of this MapField. getName() - Method in class com.google.protobuf.Api.Builder The fully qualified name of this interface, including package name followed by the interface's simple name. getName() - Method in class com.google.protobuf.Api The fully qualified name of this interface, including package name followed by the interface's simple name. getName() - Method in interface com.google.protobuf.ApiOrBuilder The fully qualified name of this interface, including package name followed by the interface's simple name. getName() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file name, relative to the output directory. getName() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File The file name, relative to the output directory. getName() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder The file name, relative to the output directory. getName() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder file name, relative to root of source tree getName() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto file name, relative to root of source tree getName() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder file name, relative to root of source tree getName() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional string name = 1; getName() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto optional string name = 1; getName() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder optional string name = 1; getName(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getName(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getName(int) - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getName() - Method in class com.google.protobuf.Descriptors.Descriptor Get the type's unqualified name. getName() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get the type's unqualified name. getName() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the value's unqualified name. getName() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's unqualified name. getName() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get the file name. getName() - Method in class com.google.protobuf.Descriptors.GenericDescriptor getName() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the method's unqualified name. getName() - Method in class com.google.protobuf.Descriptors.OneofDescriptor getName() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Get the type's unqualified name. getName() - Method in class com.google.protobuf.Enum.Builder Enum type name. getName() - Method in class com.google.protobuf.Enum Enum type name. getName() - Method in interface com.google.protobuf.EnumOrBuilder Enum type name. getName() - Method in class com.google.protobuf.EnumValue.Builder Enum value name. getName() - Method in class com.google.protobuf.EnumValue Enum value name. getName() - Method in interface com.google.protobuf.EnumValueOrBuilder Enum value name. getName() - Method in class com.google.protobuf.Field.Builder The field name. getName() - Method in class com.google.protobuf.Field The field name. getName() - Method in interface com.google.protobuf.FieldOrBuilder The field name. getName() - Method in class com.google.protobuf.Method.Builder The simple name of this method. getName() - Method in class com.google.protobuf.Method The simple name of this method. getName() - Method in interface com.google.protobuf.MethodOrBuilder The simple name of this method. getName() - Method in class com.google.protobuf.Mixin.Builder The fully qualified name of the interface which is included. getName() - Method in class com.google.protobuf.Mixin The fully qualified name of the interface which is included. getName() - Method in interface com.google.protobuf.MixinOrBuilder The fully qualified name of the interface which is included. getName() - Method in class com.google.protobuf.Option.Builder The option's name. getName() - Method in class com.google.protobuf.Option The option's name. getName() - Method in interface com.google.protobuf.OptionOrBuilder The option's name. getName() - Method in class com.google.protobuf.Type.Builder The fully qualified message name. getName() - Method in class com.google.protobuf.Type The fully qualified message name. getName() - Method in interface com.google.protobuf.TypeOrBuilder The fully qualified message name. getNameBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameBuilderList() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameBytes() - Method in class com.google.protobuf.Api.Builder The fully qualified name of this interface, including package name followed by the interface's simple name. getNameBytes() - Method in class com.google.protobuf.Api The fully qualified name of this interface, including package name followed by the interface's simple name. getNameBytes() - Method in interface com.google.protobuf.ApiOrBuilder The fully qualified name of this interface, including package name followed by the interface's simple name. getNameBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file name, relative to the output directory. getNameBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File The file name, relative to the output directory. getNameBytes() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder The file name, relative to the output directory. getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder file name, relative to root of source tree getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto file name, relative to root of source tree getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder file name, relative to root of source tree getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto optional string name = 1; getNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder optional string name = 1; getNameBytes() - Method in class com.google.protobuf.Enum.Builder Enum type name. getNameBytes() - Method in class com.google.protobuf.Enum Enum type name. getNameBytes() - Method in interface com.google.protobuf.EnumOrBuilder Enum type name. getNameBytes() - Method in class com.google.protobuf.EnumValue.Builder Enum value name. getNameBytes() - Method in class com.google.protobuf.EnumValue Enum value name. getNameBytes() - Method in interface com.google.protobuf.EnumValueOrBuilder Enum value name. getNameBytes() - Method in class com.google.protobuf.Field.Builder The field name. getNameBytes() - Method in class com.google.protobuf.Field The field name. getNameBytes() - Method in interface com.google.protobuf.FieldOrBuilder The field name. getNameBytes() - Method in class com.google.protobuf.Method.Builder The simple name of this method. getNameBytes() - Method in class com.google.protobuf.Method The simple name of this method. getNameBytes() - Method in interface com.google.protobuf.MethodOrBuilder The simple name of this method. getNameBytes() - Method in class com.google.protobuf.Mixin.Builder The fully qualified name of the interface which is included. getNameBytes() - Method in class com.google.protobuf.Mixin The fully qualified name of the interface which is included. getNameBytes() - Method in interface com.google.protobuf.MixinOrBuilder The fully qualified name of the interface which is included. getNameBytes() - Method in class com.google.protobuf.Option.Builder The option's name. getNameBytes() - Method in class com.google.protobuf.Option The option's name. getNameBytes() - Method in interface com.google.protobuf.OptionOrBuilder The option's name. getNameBytes() - Method in class com.google.protobuf.Type.Builder The fully qualified message name. getNameBytes() - Method in class com.google.protobuf.Type The fully qualified message name. getNameBytes() - Method in interface com.google.protobuf.TypeOrBuilder The fully qualified message name. getNameCount() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameCount() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameCount() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameList() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameList() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameList() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNameOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; getNamePart() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required string name_part = 1; getNamePart() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart required string name_part = 1; getNamePart() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder required string name_part = 1; getNamePartBytes() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required string name_part = 1; getNamePartBytes() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart required string name_part = 1; getNamePartBytes() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder required string name_part = 1; getNanos() - Method in class com.google.protobuf.Duration.Builder Signed fractions of a second at nanosecond resolution of the span of time. getNanos() - Method in class com.google.protobuf.Duration Signed fractions of a second at nanosecond resolution of the span of time. getNanos() - Method in interface com.google.protobuf.DurationOrBuilder Signed fractions of a second at nanosecond resolution of the span of time. getNanos() - Method in class com.google.protobuf.Timestamp.Builder Non-negative fractions of a second at nanosecond resolution. getNanos() - Method in class com.google.protobuf.Timestamp Non-negative fractions of a second at nanosecond resolution. getNanos() - Method in interface com.google.protobuf.TimestampOrBuilder Non-negative fractions of a second at nanosecond resolution. getNegativeIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional int64 negative_int_value = 5; getNegativeIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional int64 negative_int_value = 5; getNegativeIntValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional int64 negative_int_value = 5; getNestedTree(Descriptors.FieldDescriptor, int) - Method in class com.google.protobuf.TextFormatParseInfoTree Returns the parse info tree for the given field, which must be a message type. getNestedTrees(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.TextFormatParseInfoTree Retrieve a list of all the location information trees for a sub message field. getNestedType(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedType(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedType(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto nested_type = 3; getNestedTypes() - Method in class com.google.protobuf.Descriptors.Descriptor Get a list of message types nested within this one. getNoStandardDescriptorAccessor() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. getNoStandardDescriptorAccessor() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. getNoStandardDescriptorAccessor() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. getNullValue() - Method in class com.google.protobuf.Value.Builder Represents a null value. getNullValue() - Method in class com.google.protobuf.Value Represents a null value. getNullValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a null value. getNullValueValue() - Method in class com.google.protobuf.Value.Builder Represents a null value. getNullValueValue() - Method in class com.google.protobuf.Value Represents a null value. getNullValueValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a null value. getNumber() - Method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature getNumber() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional int32 number = 2; getNumber() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional int32 number = 2; getNumber() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional int32 number = 2; getNumber() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional int32 number = 3; getNumber() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional int32 number = 3; getNumber() - Method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getNumber() - Method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getNumber() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional int32 number = 3; getNumber() - Method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType getNumber() - Method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType getNumber() - Method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getNumber() - Method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel getNumber() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the value's number. getNumber() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's number. getNumber() - Method in class com.google.protobuf.EnumValue.Builder Enum value number. getNumber() - Method in class com.google.protobuf.EnumValue Enum value number. getNumber() - Method in interface com.google.protobuf.EnumValueOrBuilder Enum value number. getNumber() - Method in class com.google.protobuf.ExtensionLite Returns the field number of the extension. getNumber() - Method in class com.google.protobuf.Field.Builder The field number. getNumber() - Method in enum com.google.protobuf.Field.Cardinality getNumber() - Method in class com.google.protobuf.Field The field number. getNumber() - Method in enum com.google.protobuf.Field.Kind getNumber() - Method in interface com.google.protobuf.FieldOrBuilder The field number. getNumber() - Method in enum com.google.protobuf.NullValue getNumber() - Method in interface com.google.protobuf.ProtocolMessageEnum Return the value's numeric value as defined in the .proto file. getNumber() - Method in enum com.google.protobuf.Syntax getNumber() - Method in enum com.google.protobuf.Value.KindCase getNumberValue() - Method in class com.google.protobuf.Value.Builder Represents a double value. getNumberValue() - Method in class com.google.protobuf.Value Represents a double value. getNumberValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a double value. getObjcClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. getObjcClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. getObjcClassPrefix() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. getObjcClassPrefixBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. getObjcClassPrefixBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. getObjcClassPrefixBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. getOneofDecl(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDecl(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDecl(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofDeclOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; getOneofFieldDescriptor(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.AbstractMessage.Builder getOneofFieldDescriptor(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.AbstractMessage getOneofFieldDescriptor(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder getOneofFieldDescriptor(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DynamicMessage getOneofFieldDescriptor(Descriptors.OneofDescriptor) - Method in interface com.google.protobuf.MessageOrBuilder Obtains the FieldDescriptor if the given oneof is set. getOneofIndex() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If set, gives the index of a oneof in the containing type's oneof_decl list. getOneofIndex() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto If set, gives the index of a oneof in the containing type's oneof_decl list. getOneofIndex() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder If set, gives the index of a oneof in the containing type's oneof_decl list. getOneofIndex() - Method in class com.google.protobuf.Field.Builder The index of the field type in `Type.oneofs`, for message or enumeration types. getOneofIndex() - Method in class com.google.protobuf.Field The index of the field type in `Type.oneofs`, for message or enumeration types. getOneofIndex() - Method in interface com.google.protobuf.FieldOrBuilder The index of the field type in `Type.oneofs`, for message or enumeration types. getOneofs() - Method in class com.google.protobuf.Descriptors.Descriptor Get a list of this message type's oneofs. getOneofs(int) - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. getOneofs(int) - Method in class com.google.protobuf.Type The list of types appearing in `oneof` definitions in this type. getOneofs(int) - Method in interface com.google.protobuf.TypeOrBuilder The list of types appearing in `oneof` definitions in this type. getOneofsBytes(int) - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. getOneofsBytes(int) - Method in class com.google.protobuf.Type The list of types appearing in `oneof` definitions in this type. getOneofsBytes(int) - Method in interface com.google.protobuf.TypeOrBuilder The list of types appearing in `oneof` definitions in this type. getOneofsCount() - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. getOneofsCount() - Method in class com.google.protobuf.Type The list of types appearing in `oneof` definitions in this type. getOneofsCount() - Method in interface com.google.protobuf.TypeOrBuilder The list of types appearing in `oneof` definitions in this type. getOneofsList() - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. getOneofsList() - Method in class com.google.protobuf.Type The list of types appearing in `oneof` definitions in this type. getOneofsList() - Method in interface com.google.protobuf.TypeOrBuilder The list of types appearing in `oneof` definitions in this type. getOptimizeFor() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; getOptimizeFor() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; getOptimizeFor() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; getOptions(int) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptions(int) - Method in class com.google.protobuf.Api Any metadata attached to the interface. getOptions(int) - Method in interface com.google.protobuf.ApiOrBuilder Any metadata attached to the interface. getOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; getOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange optional .google.protobuf.ExtensionRangeOptions options = 3; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder optional .google.protobuf.ExtensionRangeOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto optional .google.protobuf.MessageOptions options = 7; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder optional .google.protobuf.MessageOptions options = 7; getOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto optional .google.protobuf.EnumOptions options = 3; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder optional .google.protobuf.EnumOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional .google.protobuf.EnumValueOptions options = 3; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional .google.protobuf.EnumValueOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; getOptions() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional .google.protobuf.FieldOptions options = 8; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional .google.protobuf.FieldOptions options = 8; getOptions() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; getOptions() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto optional .google.protobuf.FileOptions options = 8; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder optional .google.protobuf.FileOptions options = 8; getOptions() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; getOptions() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional .google.protobuf.MethodOptions options = 4; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional .google.protobuf.MethodOptions options = 4; getOptions() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; getOptions() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto optional .google.protobuf.OneofOptions options = 2; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder optional .google.protobuf.OneofOptions options = 2; getOptions() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; getOptions() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto optional .google.protobuf.ServiceOptions options = 3; getOptions() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder optional .google.protobuf.ServiceOptions options = 3; getOptions() - Method in class com.google.protobuf.Descriptors.Descriptor Get the MessageOptions, defined in descriptor.proto. getOptions() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get the EnumOptions, defined in descriptor.proto. getOptions() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the EnumValueOptions, defined in descriptor.proto. getOptions() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the FieldOptions, defined in descriptor.proto. getOptions() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get the FileOptions, defined in descriptor.proto. getOptions() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the MethodOptions, defined in descriptor.proto. getOptions() - Method in class com.google.protobuf.Descriptors.OneofDescriptor getOptions() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Get the ServiceOptions, defined in descriptor.proto. getOptions(int) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptions(int) - Method in class com.google.protobuf.Enum Protocol buffer options. getOptions(int) - Method in interface com.google.protobuf.EnumOrBuilder Protocol buffer options. getOptions(int) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptions(int) - Method in class com.google.protobuf.EnumValue Protocol buffer options. getOptions(int) - Method in interface com.google.protobuf.EnumValueOrBuilder Protocol buffer options. getOptions(int) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptions(int) - Method in class com.google.protobuf.Field The protocol buffer options. getOptions(int) - Method in interface com.google.protobuf.FieldOrBuilder The protocol buffer options. getOptions(int) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptions(int) - Method in class com.google.protobuf.Method Any metadata attached to the method. getOptions(int) - Method in interface com.google.protobuf.MethodOrBuilder Any metadata attached to the method. getOptions(int) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptions(int) - Method in class com.google.protobuf.Type The protocol buffer options. getOptions(int) - Method in interface com.google.protobuf.TypeOrBuilder The protocol buffer options. getOptionsBuilder(int) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; getOptionsBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; getOptionsBuilder(int) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptionsBuilder(int) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptionsBuilder(int) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptionsBuilder(int) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptionsBuilder(int) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptionsBuilderList() - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptionsBuilderList() - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptionsBuilderList() - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptionsBuilderList() - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptionsBuilderList() - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptionsBuilderList() - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptionsCount() - Method in class com.google.protobuf.Api Any metadata attached to the interface. getOptionsCount() - Method in interface com.google.protobuf.ApiOrBuilder Any metadata attached to the interface. getOptionsCount() - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.Enum Protocol buffer options. getOptionsCount() - Method in interface com.google.protobuf.EnumOrBuilder Protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.EnumValue Protocol buffer options. getOptionsCount() - Method in interface com.google.protobuf.EnumValueOrBuilder Protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.Field The protocol buffer options. getOptionsCount() - Method in interface com.google.protobuf.FieldOrBuilder The protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptionsCount() - Method in class com.google.protobuf.Method Any metadata attached to the method. getOptionsCount() - Method in interface com.google.protobuf.MethodOrBuilder Any metadata attached to the method. getOptionsCount() - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptionsCount() - Method in class com.google.protobuf.Type The protocol buffer options. getOptionsCount() - Method in interface com.google.protobuf.TypeOrBuilder The protocol buffer options. getOptionsList() - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptionsList() - Method in class com.google.protobuf.Api Any metadata attached to the interface. getOptionsList() - Method in interface com.google.protobuf.ApiOrBuilder Any metadata attached to the interface. getOptionsList() - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptionsList() - Method in class com.google.protobuf.Enum Protocol buffer options. getOptionsList() - Method in interface com.google.protobuf.EnumOrBuilder Protocol buffer options. getOptionsList() - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptionsList() - Method in class com.google.protobuf.EnumValue Protocol buffer options. getOptionsList() - Method in interface com.google.protobuf.EnumValueOrBuilder Protocol buffer options. getOptionsList() - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptionsList() - Method in class com.google.protobuf.Field The protocol buffer options. getOptionsList() - Method in interface com.google.protobuf.FieldOrBuilder The protocol buffer options. getOptionsList() - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptionsList() - Method in class com.google.protobuf.Method Any metadata attached to the method. getOptionsList() - Method in interface com.google.protobuf.MethodOrBuilder Any metadata attached to the method. getOptionsList() - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptionsList() - Method in class com.google.protobuf.Type The protocol buffer options. getOptionsList() - Method in interface com.google.protobuf.TypeOrBuilder The protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Api Any metadata attached to the interface. getOptionsOrBuilder(int) - Method in interface com.google.protobuf.ApiOrBuilder Any metadata attached to the interface. getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange optional .google.protobuf.ExtensionRangeOptions options = 3; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder optional .google.protobuf.ExtensionRangeOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto optional .google.protobuf.MessageOptions options = 7; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder optional .google.protobuf.MessageOptions options = 7; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto optional .google.protobuf.EnumOptions options = 3; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder optional .google.protobuf.EnumOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional .google.protobuf.EnumValueOptions options = 3; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional .google.protobuf.EnumValueOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional .google.protobuf.FieldOptions options = 8; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional .google.protobuf.FieldOptions options = 8; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto optional .google.protobuf.FileOptions options = 8; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder optional .google.protobuf.FileOptions options = 8; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional .google.protobuf.MethodOptions options = 4; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional .google.protobuf.MethodOptions options = 4; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto optional .google.protobuf.OneofOptions options = 2; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder optional .google.protobuf.OneofOptions options = 2; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; getOptionsOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto optional .google.protobuf.ServiceOptions options = 3; getOptionsOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder optional .google.protobuf.ServiceOptions options = 3; getOptionsOrBuilder(int) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Enum Protocol buffer options. getOptionsOrBuilder(int) - Method in interface com.google.protobuf.EnumOrBuilder Protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.EnumValue Protocol buffer options. getOptionsOrBuilder(int) - Method in interface com.google.protobuf.EnumValueOrBuilder Protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Field The protocol buffer options. getOptionsOrBuilder(int) - Method in interface com.google.protobuf.FieldOrBuilder The protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Method Any metadata attached to the method. getOptionsOrBuilder(int) - Method in interface com.google.protobuf.MethodOrBuilder Any metadata attached to the method. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptionsOrBuilder(int) - Method in class com.google.protobuf.Type The protocol buffer options. getOptionsOrBuilder(int) - Method in interface com.google.protobuf.TypeOrBuilder The protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. getOptionsOrBuilderList() - Method in class com.google.protobuf.Api Any metadata attached to the interface. getOptionsOrBuilderList() - Method in interface com.google.protobuf.ApiOrBuilder Any metadata attached to the interface. getOptionsOrBuilderList() - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.Enum Protocol buffer options. getOptionsOrBuilderList() - Method in interface com.google.protobuf.EnumOrBuilder Protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.EnumValue Protocol buffer options. getOptionsOrBuilderList() - Method in interface com.google.protobuf.EnumValueOrBuilder Protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.Field.Builder The protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.Field The protocol buffer options. getOptionsOrBuilderList() - Method in interface com.google.protobuf.FieldOrBuilder The protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. getOptionsOrBuilderList() - Method in class com.google.protobuf.Method Any metadata attached to the method. getOptionsOrBuilderList() - Method in interface com.google.protobuf.MethodOrBuilder Any metadata attached to the method. getOptionsOrBuilderList() - Method in class com.google.protobuf.Type.Builder The protocol buffer options. getOptionsOrBuilderList() - Method in class com.google.protobuf.Type The protocol buffer options. getOptionsOrBuilderList() - Method in interface com.google.protobuf.TypeOrBuilder The protocol buffer options. getOutputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string output_type = 3; getOutputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional string output_type = 3; getOutputType() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional string output_type = 3; getOutputType() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the method's output type. getOutputTypeBytes() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string output_type = 3; getOutputTypeBytes() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional string output_type = 3; getOutputTypeBytes() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional string output_type = 3; getPackage() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder e.g. getPackage() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto e.g. getPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder e.g. getPackage() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get the proto package name. getPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder e.g. getPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto e.g. getPackageBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder e.g. getPacked() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. getPacked() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. getPacked() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. getPacked() - Method in class com.google.protobuf.Field.Builder Whether to use alternative packed wire representation. getPacked() - Method in class com.google.protobuf.Field Whether to use alternative packed wire representation. getPacked() - Method in interface com.google.protobuf.FieldOrBuilder Whether to use alternative packed wire representation. getParameter() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The generator parameter passed on the command-line. getParameter() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The generator parameter passed on the command-line. getParameter() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The generator parameter passed on the command-line. getParameterBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The generator parameter passed on the command-line. getParameterBytes() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The generator parameter passed on the command-line. getParameterBytes() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The generator parameter passed on the command-line. getParser() - Static method in class com.google.protobuf.TextFormat Return a Parser instance which can parse text-format messages. getParserForType() - Method in class com.google.protobuf.Any getParserForType() - Method in class com.google.protobuf.Api getParserForType() - Method in class com.google.protobuf.BoolValue getParserForType() - Method in class com.google.protobuf.BytesValue getParserForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getParserForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getParserForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getParserForType() - Method in class com.google.protobuf.compiler.PluginProtos.Version getParserForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getParserForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getParserForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange getParserForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet getParserForType() - Method in class com.google.protobuf.DescriptorProtos.FileOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation getParserForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getParserForType() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getParserForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions getParserForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo getParserForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getParserForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption getParserForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getParserForType() - Method in class com.google.protobuf.DoubleValue getParserForType() - Method in class com.google.protobuf.Duration getParserForType() - Method in class com.google.protobuf.DynamicMessage getParserForType() - Method in class com.google.protobuf.Empty getParserForType() - Method in class com.google.protobuf.Enum getParserForType() - Method in class com.google.protobuf.EnumValue getParserForType() - Method in class com.google.protobuf.Field getParserForType() - Method in class com.google.protobuf.FieldMask getParserForType() - Method in class com.google.protobuf.FloatValue getParserForType() - Method in class com.google.protobuf.Int32Value getParserForType() - Method in class com.google.protobuf.Int64Value getParserForType() - Method in class com.google.protobuf.ListValue getParserForType() - Method in interface com.google.protobuf.Message getParserForType() - Method in interface com.google.protobuf.MessageLite Gets the parser for a message of the same type as this message. getParserForType() - Method in class com.google.protobuf.Method getParserForType() - Method in class com.google.protobuf.Mixin getParserForType() - Method in class com.google.protobuf.Option getParserForType() - Method in class com.google.protobuf.SourceContext getParserForType() - Method in class com.google.protobuf.StringValue getParserForType() - Method in class com.google.protobuf.Struct getParserForType() - Method in class com.google.protobuf.Timestamp getParserForType() - Method in class com.google.protobuf.Type getParserForType() - Method in class com.google.protobuf.UInt32Value getParserForType() - Method in class com.google.protobuf.UInt64Value getParserForType() - Method in class com.google.protobuf.Value getPatch() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 patch = 3; getPatch() - Method in class com.google.protobuf.compiler.PluginProtos.Version optional int32 patch = 3; getPatch() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder optional int32 patch = 3; getPath(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. getPath(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the element in the original source .proto file. getPath(int) - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the element in the original source .proto file. getPath(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. getPath(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Identifies which part of the FileDescriptorProto was defined at this location. getPath(int) - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder Identifies which part of the FileDescriptorProto was defined at this location. getPathCount() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. getPathCount() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the element in the original source .proto file. getPathCount() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the element in the original source .proto file. getPathCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. getPathCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Identifies which part of the FileDescriptorProto was defined at this location. getPathCount() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder Identifies which part of the FileDescriptorProto was defined at this location. getPathList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. getPathList() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the element in the original source .proto file. getPathList() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the element in the original source .proto file. getPathList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. getPathList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Identifies which part of the FileDescriptorProto was defined at this location. getPathList() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder Identifies which part of the FileDescriptorProto was defined at this location. getPaths(int) - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. getPaths(int) - Method in class com.google.protobuf.FieldMask The set of field mask paths. getPaths(int) - Method in interface com.google.protobuf.FieldMaskOrBuilder The set of field mask paths. getPathsBytes(int) - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. getPathsBytes(int) - Method in class com.google.protobuf.FieldMask The set of field mask paths. getPathsBytes(int) - Method in interface com.google.protobuf.FieldMaskOrBuilder The set of field mask paths. getPathsCount() - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. getPathsCount() - Method in class com.google.protobuf.FieldMask The set of field mask paths. getPathsCount() - Method in interface com.google.protobuf.FieldMaskOrBuilder The set of field mask paths. getPathsList() - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. getPathsList() - Method in class com.google.protobuf.FieldMask The set of field mask paths. getPathsList() - Method in interface com.google.protobuf.FieldMaskOrBuilder The set of field mask paths. getPhpClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the php class prefix which is prepended to all php generated classes from this .proto. getPhpClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the php class prefix which is prepended to all php generated classes from this .proto. getPhpClassPrefix() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the php class prefix which is prepended to all php generated classes from this .proto. getPhpClassPrefixBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the php class prefix which is prepended to all php generated classes from this .proto. getPhpClassPrefixBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the php class prefix which is prepended to all php generated classes from this .proto. getPhpClassPrefixBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the php class prefix which is prepended to all php generated classes from this .proto. getPhpGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool php_generic_services = 42 [default = false]; getPhpGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional bool php_generic_services = 42 [default = false]; getPhpGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional bool php_generic_services = 42 [default = false]; getPhpMetadataNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated metadata classes. getPhpMetadataNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the namespace of php generated metadata classes. getPhpMetadataNamespace() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the namespace of php generated metadata classes. getPhpMetadataNamespaceBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated metadata classes. getPhpMetadataNamespaceBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the namespace of php generated metadata classes. getPhpMetadataNamespaceBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the namespace of php generated metadata classes. getPhpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated classes. getPhpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the namespace of php generated classes. getPhpNamespace() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the namespace of php generated classes. getPhpNamespaceBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated classes. getPhpNamespaceBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the namespace of php generated classes. getPhpNamespaceBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the namespace of php generated classes. getPositiveIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional uint64 positive_int_value = 4; getPositiveIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional uint64 positive_int_value = 4; getPositiveIntValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional uint64 positive_int_value = 4; getProblemProto() - Method in exception com.google.protobuf.Descriptors.DescriptorValidationException Gets the protocol message representation of the invalid descriptor. getProblemSymbolName() - Method in exception com.google.protobuf.Descriptors.DescriptorValidationException Gets the full name of the descriptor where the error occurred. getProto3Optional() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If true, this is a proto3 \"optional\". getProto3Optional() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto If true, this is a proto3 \"optional\". getProto3Optional() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder If true, this is a proto3 \"optional\". getProtoFile(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFile(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFile(int) - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileBuilderList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileCount() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileCount() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileCount() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileList() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileOrBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileOrBuilder(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileOrBuilder(int) - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileOrBuilderList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileOrBuilderList() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest FileDescriptorProtos for all files in files_to_generate and everything they import. getProtoFileOrBuilderList() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder FileDescriptorProtos for all files in files_to_generate and everything they import. getPublicDependencies() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get a list of this file's public dependencies (public imports). getPublicDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. getPublicDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Indexes of the public imported files in the dependency list above. getPublicDependency(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Indexes of the public imported files in the dependency list above. getPublicDependencyCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. getPublicDependencyCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Indexes of the public imported files in the dependency list above. getPublicDependencyCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Indexes of the public imported files in the dependency list above. getPublicDependencyList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. getPublicDependencyList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Indexes of the public imported files in the dependency list above. getPublicDependencyList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Indexes of the public imported files in the dependency list above. getPyGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool py_generic_services = 18 [default = false]; getPyGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional bool py_generic_services = 18 [default = false]; getPyGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional bool py_generic_services = 18 [default = false]; getRealContainingOneof() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's containing oneof, only if non-synthetic. getRealOneofs() - Method in class com.google.protobuf.Descriptors.Descriptor Get a list of this message type's real oneofs. getRepeatedField(Descriptors.FieldDescriptor, int) - Method in class com.google.protobuf.DynamicMessage.Builder getRepeatedField(Descriptors.FieldDescriptor, int) - Method in class com.google.protobuf.DynamicMessage getRepeatedField(Descriptors.FieldDescriptor, int) - Method in interface com.google.protobuf.MessageOrBuilder Gets an element of a repeated field. getRepeatedFieldBuilder(Descriptors.FieldDescriptor, int) - Method in class com.google.protobuf.AbstractMessage.Builder getRepeatedFieldBuilder(Descriptors.FieldDescriptor, int) - Method in class com.google.protobuf.DynamicMessage.Builder getRepeatedFieldBuilder(Descriptors.FieldDescriptor, int) - Method in interface com.google.protobuf.Message.Builder Get a nested builder instance for the given repeated field instance. getRepeatedFieldCount(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder getRepeatedFieldCount(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage getRepeatedFieldCount(Descriptors.FieldDescriptor) - Method in interface com.google.protobuf.MessageOrBuilder Gets the number of elements of a repeated field. getRequestPrototype(Descriptors.MethodDescriptor) - Method in interface com.google.protobuf.BlockingService Equivalent to Service.getRequestPrototype(com.google.protobuf.Descriptors.MethodDescriptor). getRequestPrototype(Descriptors.MethodDescriptor) - Method in interface com.google.protobuf.Service callMethod() requires that the request passed in is of a particular subclass of Message. getRequestStreaming() - Method in class com.google.protobuf.Method.Builder If true, the request is streamed. getRequestStreaming() - Method in class com.google.protobuf.Method If true, the request is streamed. getRequestStreaming() - Method in interface com.google.protobuf.MethodOrBuilder If true, the request is streamed. getRequestTypeUrl() - Method in class com.google.protobuf.Method.Builder A URL of the input message type. getRequestTypeUrl() - Method in class com.google.protobuf.Method A URL of the input message type. getRequestTypeUrl() - Method in interface com.google.protobuf.MethodOrBuilder A URL of the input message type. getRequestTypeUrlBytes() - Method in class com.google.protobuf.Method.Builder A URL of the input message type. getRequestTypeUrlBytes() - Method in class com.google.protobuf.Method A URL of the input message type. getRequestTypeUrlBytes() - Method in interface com.google.protobuf.MethodOrBuilder A URL of the input message type. getReservedName(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. getReservedName(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto Reserved field names, which may not be used by fields in the same message. getReservedName(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder Reserved field names, which may not be used by fields in the same message. getReservedName(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. getReservedName(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Reserved enum value names, which may not be reused. getReservedName(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Reserved enum value names, which may not be reused. getReservedNameBytes(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. getReservedNameBytes(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto Reserved field names, which may not be used by fields in the same message. getReservedNameBytes(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder Reserved field names, which may not be used by fields in the same message. getReservedNameBytes(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. getReservedNameBytes(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Reserved enum value names, which may not be reused. getReservedNameBytes(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Reserved enum value names, which may not be reused. getReservedNameCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. getReservedNameCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto Reserved field names, which may not be used by fields in the same message. getReservedNameCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder Reserved field names, which may not be used by fields in the same message. getReservedNameCount() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. getReservedNameCount() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Reserved enum value names, which may not be reused. getReservedNameCount() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Reserved enum value names, which may not be reused. getReservedNameList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. getReservedNameList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto Reserved field names, which may not be used by fields in the same message. getReservedNameList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder Reserved field names, which may not be used by fields in the same message. getReservedNameList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. getReservedNameList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Reserved enum value names, which may not be reused. getReservedNameList() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Reserved enum value names, which may not be reused. getReservedRange(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRange(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRange(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRange(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRange(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Range of reserved numeric values. getReservedRange(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Range of reserved numeric values. getReservedRangeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRangeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRangeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeCount() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeCount() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeCount() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRangeCount() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Range of reserved numeric values. getReservedRangeCount() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Range of reserved numeric values. getReservedRangeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRangeList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Range of reserved numeric values. getReservedRangeList() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Range of reserved numeric values. getReservedRangeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRangeOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Range of reserved numeric values. getReservedRangeOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Range of reserved numeric values. getReservedRangeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; getReservedRangeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. getReservedRangeOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Range of reserved numeric values. getReservedRangeOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder Range of reserved numeric values. getResponsePrototype(Descriptors.MethodDescriptor) - Method in interface com.google.protobuf.BlockingService Equivalent to Service.getResponsePrototype(com.google.protobuf.Descriptors.MethodDescriptor). getResponsePrototype(Descriptors.MethodDescriptor) - Method in interface com.google.protobuf.Service Like getRequestPrototype(), but gets a prototype of the response message. getResponseStreaming() - Method in class com.google.protobuf.Method.Builder If true, the response is streamed. getResponseStreaming() - Method in class com.google.protobuf.Method If true, the response is streamed. getResponseStreaming() - Method in interface com.google.protobuf.MethodOrBuilder If true, the response is streamed. getResponseTypeUrl() - Method in class com.google.protobuf.Method.Builder The URL of the output message type. getResponseTypeUrl() - Method in class com.google.protobuf.Method The URL of the output message type. getResponseTypeUrl() - Method in interface com.google.protobuf.MethodOrBuilder The URL of the output message type. getResponseTypeUrlBytes() - Method in class com.google.protobuf.Method.Builder The URL of the output message type. getResponseTypeUrlBytes() - Method in class com.google.protobuf.Method The URL of the output message type. getResponseTypeUrlBytes() - Method in interface com.google.protobuf.MethodOrBuilder The URL of the output message type. getRoot() - Method in class com.google.protobuf.Mixin.Builder If non-empty specifies a path under which inherited HTTP paths are rooted. getRoot() - Method in class com.google.protobuf.Mixin If non-empty specifies a path under which inherited HTTP paths are rooted. getRoot() - Method in interface com.google.protobuf.MixinOrBuilder If non-empty specifies a path under which inherited HTTP paths are rooted. getRootBytes() - Method in class com.google.protobuf.Mixin.Builder If non-empty specifies a path under which inherited HTTP paths are rooted. getRootBytes() - Method in class com.google.protobuf.Mixin If non-empty specifies a path under which inherited HTTP paths are rooted. getRootBytes() - Method in interface com.google.protobuf.MixinOrBuilder If non-empty specifies a path under which inherited HTTP paths are rooted. getRubyPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the package of ruby generated classes. getRubyPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the package of ruby generated classes. getRubyPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the package of ruby generated classes. getRubyPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the package of ruby generated classes. getRubyPackageBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the package of ruby generated classes. getRubyPackageBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the package of ruby generated classes. getSeconds() - Method in class com.google.protobuf.Duration.Builder Signed seconds of the span of time. getSeconds() - Method in class com.google.protobuf.Duration Signed seconds of the span of time. getSeconds() - Method in interface com.google.protobuf.DurationOrBuilder Signed seconds of the span of time. getSeconds() - Method in class com.google.protobuf.Timestamp.Builder Represents seconds of UTC time since Unix epoch :00Z. getSeconds() - Method in class com.google.protobuf.Timestamp Represents seconds of UTC time since Unix epoch :00Z. getSeconds() - Method in interface com.google.protobuf.TimestampOrBuilder Represents seconds of UTC time since Unix epoch :00Z. getSerializedSize() - Method in class com.google.protobuf.AbstractMessage getSerializedSize() - Method in class com.google.protobuf.Any getSerializedSize() - Method in class com.google.protobuf.Api getSerializedSize() - Method in class com.google.protobuf.BoolValue getSerializedSize() - Method in class com.google.protobuf.BytesValue getSerializedSize() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getSerializedSize() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getSerializedSize() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getSerializedSize() - Method in class com.google.protobuf.compiler.PluginProtos.Version getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.FileOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption getSerializedSize() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getSerializedSize() - Method in class com.google.protobuf.DoubleValue getSerializedSize() - Method in class com.google.protobuf.Duration getSerializedSize() - Method in class com.google.protobuf.DynamicMessage getSerializedSize() - Method in class com.google.protobuf.Empty getSerializedSize() - Method in class com.google.protobuf.Enum getSerializedSize() - Method in class com.google.protobuf.EnumValue getSerializedSize() - Method in class com.google.protobuf.Field getSerializedSize() - Method in class com.google.protobuf.FieldMask getSerializedSize() - Method in class com.google.protobuf.FloatValue getSerializedSize() - Method in class com.google.protobuf.Int32Value getSerializedSize() - Method in class com.google.protobuf.Int64Value getSerializedSize() - Method in class com.google.protobuf.ListValue getSerializedSize() - Method in interface com.google.protobuf.MessageLite Get the number of bytes required to encode this message. getSerializedSize() - Method in class com.google.protobuf.Method getSerializedSize() - Method in class com.google.protobuf.Mixin getSerializedSize() - Method in class com.google.protobuf.Option getSerializedSize() - Method in class com.google.protobuf.SourceContext getSerializedSize() - Method in class com.google.protobuf.StringValue getSerializedSize() - Method in class com.google.protobuf.Struct getSerializedSize() - Method in class com.google.protobuf.Timestamp getSerializedSize() - Method in class com.google.protobuf.Type getSerializedSize() - Method in class com.google.protobuf.UInt32Value getSerializedSize() - Method in class com.google.protobuf.UInt64Value getSerializedSize() - Method in class com.google.protobuf.Value getServerStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if server streams multiple server messages getServerStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Identifies if server streams multiple server messages getServerStreaming() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Identifies if server streams multiple server messages getService(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getService(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.ServiceDescriptorProto service = 6; getService(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.ServiceDescriptorProto service = 6; getService() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get the method's service type. getServiceBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto repeated .google.protobuf.ServiceDescriptorProto service = 6; getServiceOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder repeated .google.protobuf.ServiceDescriptorProto service = 6; getServices() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get a list of top-level services declared in this file. getSourceCodeInfo() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. getSourceCodeInfo() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto This field contains optional information about the original source code. getSourceCodeInfo() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder This field contains optional information about the original source code. getSourceCodeInfoBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. getSourceCodeInfoOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. getSourceCodeInfoOrBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto This field contains optional information about the original source code. getSourceCodeInfoOrBuilder() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder This field contains optional information about the original source code. getSourceContext() - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. getSourceContext() - Method in class com.google.protobuf.Api Source context for the protocol buffer service represented by this message. getSourceContext() - Method in interface com.google.protobuf.ApiOrBuilder Source context for the protocol buffer service represented by this message. getSourceContext() - Method in class com.google.protobuf.Enum.Builder The source context. getSourceContext() - Method in class com.google.protobuf.Enum The source context. getSourceContext() - Method in interface com.google.protobuf.EnumOrBuilder The source context. getSourceContext() - Method in class com.google.protobuf.Type.Builder The source context. getSourceContext() - Method in class com.google.protobuf.Type The source context. getSourceContext() - Method in interface com.google.protobuf.TypeOrBuilder The source context. getSourceContextBuilder() - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. getSourceContextBuilder() - Method in class com.google.protobuf.Enum.Builder The source context. getSourceContextBuilder() - Method in class com.google.protobuf.Type.Builder The source context. getSourceContextOrBuilder() - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. getSourceContextOrBuilder() - Method in class com.google.protobuf.Api Source context for the protocol buffer service represented by this message. getSourceContextOrBuilder() - Method in interface com.google.protobuf.ApiOrBuilder Source context for the protocol buffer service represented by this message. getSourceContextOrBuilder() - Method in class com.google.protobuf.Enum.Builder The source context. getSourceContextOrBuilder() - Method in class com.google.protobuf.Enum The source context. getSourceContextOrBuilder() - Method in interface com.google.protobuf.EnumOrBuilder The source context. getSourceContextOrBuilder() - Method in class com.google.protobuf.Type.Builder The source context. getSourceContextOrBuilder() - Method in class com.google.protobuf.Type The source context. getSourceContextOrBuilder() - Method in interface com.google.protobuf.TypeOrBuilder The source context. getSourceFile() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the filesystem path to the original source .proto. getSourceFile() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the filesystem path to the original source .proto. getSourceFile() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the filesystem path to the original source .proto. getSourceFileBytes() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the filesystem path to the original source .proto. getSourceFileBytes() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the filesystem path to the original source .proto. getSourceFileBytes() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the filesystem path to the original source .proto. getSpan(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpan(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpan(int) - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpanCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpanCount() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpanCount() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpanList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpanList() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getSpanList() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. getStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Inclusive. getStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange Inclusive. getStart() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder Inclusive. getStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Inclusive. getStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange Inclusive. getStart() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder Inclusive. getStart() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. getStart() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange Inclusive. getStart() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRangeOrBuilder Inclusive. getStringValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional bytes string_value = 7; getStringValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional bytes string_value = 7; getStringValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional bytes string_value = 7; getStringValue() - Method in class com.google.protobuf.Value.Builder Represents a string value. getStringValue() - Method in class com.google.protobuf.Value Represents a string value. getStringValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a string value. getStringValueBytes() - Method in class com.google.protobuf.Value.Builder Represents a string value. getStringValueBytes() - Method in class com.google.protobuf.Value Represents a string value. getStringValueBytes() - Method in interface com.google.protobuf.ValueOrBuilder Represents a string value. getStructValue() - Method in class com.google.protobuf.Value.Builder Represents a structured value. getStructValue() - Method in class com.google.protobuf.Value Represents a structured value. getStructValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a structured value. getStructValueBuilder() - Method in class com.google.protobuf.Value.Builder Represents a structured value. getStructValueOrBuilder() - Method in class com.google.protobuf.Value.Builder Represents a structured value. getStructValueOrBuilder() - Method in class com.google.protobuf.Value Represents a structured value. getStructValueOrBuilder() - Method in interface com.google.protobuf.ValueOrBuilder Represents a structured value. getSuffix() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". getSuffix() - Method in class com.google.protobuf.compiler.PluginProtos.Version A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". getSuffix() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". getSuffixBytes() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". getSuffixBytes() - Method in class com.google.protobuf.compiler.PluginProtos.Version A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". getSuffixBytes() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". getSupportedFeatures() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder A bitmask of supported features that the code generator supports. getSupportedFeatures() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse A bitmask of supported features that the code generator supports. getSupportedFeatures() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder A bitmask of supported features that the code generator supports. getSwiftPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. getSwiftPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. getSwiftPrefix() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. getSwiftPrefixBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. getSwiftPrefixBytes() - Method in class com.google.protobuf.DescriptorProtos.FileOptions By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. getSwiftPrefixBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. getSyntax() - Method in class com.google.protobuf.Api.Builder The source syntax of the service. getSyntax() - Method in class com.google.protobuf.Api The source syntax of the service. getSyntax() - Method in interface com.google.protobuf.ApiOrBuilder The source syntax of the service. getSyntax() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder The syntax of the proto file. getSyntax() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto The syntax of the proto file. getSyntax() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder The syntax of the proto file. getSyntax() - Method in class com.google.protobuf.Descriptors.FileDescriptor Get the syntax of the .proto file. getSyntax() - Method in class com.google.protobuf.Enum.Builder The source syntax. getSyntax() - Method in class com.google.protobuf.Enum The source syntax. getSyntax() - Method in interface com.google.protobuf.EnumOrBuilder The source syntax. getSyntax() - Method in class com.google.protobuf.Method.Builder The source syntax of this method. getSyntax() - Method in class com.google.protobuf.Method The source syntax of this method. getSyntax() - Method in interface com.google.protobuf.MethodOrBuilder The source syntax of this method. getSyntax() - Method in class com.google.protobuf.Type.Builder The source syntax. getSyntax() - Method in class com.google.protobuf.Type The source syntax. getSyntax() - Method in interface com.google.protobuf.TypeOrBuilder The source syntax. getSyntaxBytes() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder The syntax of the proto file. getSyntaxBytes() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto The syntax of the proto file. getSyntaxBytes() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder The syntax of the proto file. getSyntaxValue() - Method in class com.google.protobuf.Api.Builder The source syntax of the service. getSyntaxValue() - Method in class com.google.protobuf.Api The source syntax of the service. getSyntaxValue() - Method in interface com.google.protobuf.ApiOrBuilder The source syntax of the service. getSyntaxValue() - Method in class com.google.protobuf.Enum.Builder The source syntax. getSyntaxValue() - Method in class com.google.protobuf.Enum The source syntax. getSyntaxValue() - Method in interface com.google.protobuf.EnumOrBuilder The source syntax. getSyntaxValue() - Method in class com.google.protobuf.Method.Builder The source syntax of this method. getSyntaxValue() - Method in class com.google.protobuf.Method The source syntax of this method. getSyntaxValue() - Method in interface com.google.protobuf.MethodOrBuilder The source syntax of this method. getSyntaxValue() - Method in class com.google.protobuf.Type.Builder The source syntax. getSyntaxValue() - Method in class com.google.protobuf.Type The source syntax. getSyntaxValue() - Method in interface com.google.protobuf.TypeOrBuilder The source syntax. getTagFieldNumber(int) - Static method in class com.google.protobuf.WireFormat Given a tag value, determines the field number (the upper 29 bits). getTagWireType(int) - Static method in class com.google.protobuf.WireFormat Given a tag value, determines the wire type (the lower 3 bits). getTotalBytesRead() - Method in class com.google.protobuf.CodedInputStream The total bytes read up to the current position. getTotalBytesWritten() - Method in class com.google.protobuf.CodedOutputStream Get the total number of bytes successfully written to this stream. getTrailingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder optional string trailing_comments = 4; getTrailingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location optional string trailing_comments = 4; getTrailingComments() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder optional string trailing_comments = 4; getTrailingCommentsBytes() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder optional string trailing_comments = 4; getTrailingCommentsBytes() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location optional string trailing_comments = 4; getTrailingCommentsBytes() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder optional string trailing_comments = 4; getType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If type_name is set, this need not be set. getType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto If type_name is set, this need not be set. getType() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder If type_name is set, this need not be set. getType() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Get the value's enum type. getType() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Get the field's declared type. getType() - Method in enum com.google.protobuf.JavaType Gets the required type for a field that would hold a value of this type. getTypeName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For message and enum types, this is the name of the type. getTypeName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For message and enum types, this is the name of the type. getTypeName() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For message and enum types, this is the name of the type. getTypeNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For message and enum types, this is the name of the type. getTypeNameBytes() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For message and enum types, this is the name of the type. getTypeNameBytes() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For message and enum types, this is the name of the type. getTypeUrl() - Method in class com.google.protobuf.Any.Builder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. getTypeUrl() - Method in class com.google.protobuf.Any A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. getTypeUrl() - Method in interface com.google.protobuf.AnyOrBuilder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. getTypeUrl() - Method in class com.google.protobuf.Field.Builder The field type URL, without the scheme, for message or enumeration types. getTypeUrl() - Method in class com.google.protobuf.Field The field type URL, without the scheme, for message or enumeration types. getTypeUrl() - Method in interface com.google.protobuf.FieldOrBuilder The field type URL, without the scheme, for message or enumeration types. getTypeUrlBytes() - Method in class com.google.protobuf.Any.Builder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. getTypeUrlBytes() - Method in class com.google.protobuf.Any A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. getTypeUrlBytes() - Method in interface com.google.protobuf.AnyOrBuilder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. getTypeUrlBytes() - Method in class com.google.protobuf.Field.Builder The field type URL, without the scheme, for message or enumeration types. getTypeUrlBytes() - Method in class com.google.protobuf.Field The field type URL, without the scheme, for message or enumeration types. getTypeUrlBytes() - Method in interface com.google.protobuf.FieldOrBuilder The field type URL, without the scheme, for message or enumeration types. getUnfinishedMessage() - Method in exception com.google.protobuf.InvalidProtocolBufferException Returns the unfinished message attached to the exception, or null if no message is attached. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.ExtensionRangeOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.OneofOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions The parser stores options it doesn't recognize here. getUninterpretedOption(int) - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.ExtensionRangeOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.FileOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.OneofOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions The parser stores options it doesn't recognize here. getUninterpretedOptionCount() - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.ExtensionRangeOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.FileOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.OneofOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions The parser stores options it doesn't recognize here. getUninterpretedOptionList() - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.ExtensionRangeOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.OneofOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.ExtensionRangeOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.FileOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.OneofOptionsOrBuilder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions The parser stores options it doesn't recognize here. getUninterpretedOptionOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder The parser stores options it doesn't recognize here. getUnknownField() - Method in exception com.google.protobuf.TextFormat.UnknownFieldParseException Return the name of the unknown field encountered while parsing the protocol buffer string. getUnknownFields() - Method in class com.google.protobuf.Any getUnknownFields() - Method in class com.google.protobuf.Api getUnknownFields() - Method in class com.google.protobuf.BoolValue getUnknownFields() - Method in class com.google.protobuf.BytesValue getUnknownFields() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest getUnknownFields() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File getUnknownFields() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse getUnknownFields() - Method in class com.google.protobuf.compiler.PluginProtos.Version getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.FileOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption getUnknownFields() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart getUnknownFields() - Method in class com.google.protobuf.DoubleValue getUnknownFields() - Method in class com.google.protobuf.Duration getUnknownFields() - Method in class com.google.protobuf.DynamicMessage.Builder getUnknownFields() - Method in class com.google.protobuf.DynamicMessage getUnknownFields() - Method in class com.google.protobuf.Empty getUnknownFields() - Method in class com.google.protobuf.Enum getUnknownFields() - Method in class com.google.protobuf.EnumValue getUnknownFields() - Method in class com.google.protobuf.Field getUnknownFields() - Method in class com.google.protobuf.FieldMask getUnknownFields() - Method in class com.google.protobuf.FloatValue getUnknownFields() - Method in class com.google.protobuf.Int32Value getUnknownFields() - Method in class com.google.protobuf.Int64Value getUnknownFields() - Method in class com.google.protobuf.ListValue getUnknownFields() - Method in interface com.google.protobuf.MessageOrBuilder Get the UnknownFieldSet for this message. getUnknownFields() - Method in class com.google.protobuf.Method getUnknownFields() - Method in class com.google.protobuf.Mixin getUnknownFields() - Method in class com.google.protobuf.Option getUnknownFields() - Method in class com.google.protobuf.SourceContext getUnknownFields() - Method in class com.google.protobuf.StringValue getUnknownFields() - Method in class com.google.protobuf.Struct getUnknownFields() - Method in class com.google.protobuf.Timestamp getUnknownFields() - Method in class com.google.protobuf.Type getUnknownFields() - Method in class com.google.protobuf.UInt32Value getUnknownFields() - Method in class com.google.protobuf.UInt64Value getUnknownFields() - Method in class com.google.protobuf.Value getUnmodifiable() - Method in class com.google.protobuf.ExtensionRegistry Returns an unmodifiable view of the registry. getUnmodifiable() - Method in class com.google.protobuf.ExtensionRegistryLite Returns an unmodifiable view of the registry. getValue() - Method in class com.google.protobuf.Any.Builder Must be a valid serialized protocol buffer of the above specified type. getValue() - Method in class com.google.protobuf.Any Must be a valid serialized protocol buffer of the above specified type. getValue() - Method in interface com.google.protobuf.AnyOrBuilder Must be a valid serialized protocol buffer of the above specified type. getValue() - Method in class com.google.protobuf.BoolValue.Builder The bool value. getValue() - Method in class com.google.protobuf.BoolValue The bool value. getValue() - Method in interface com.google.protobuf.BoolValueOrBuilder The bool value. getValue() - Method in class com.google.protobuf.BytesValue.Builder The bytes value. getValue() - Method in class com.google.protobuf.BytesValue The bytes value. getValue() - Method in interface com.google.protobuf.BytesValueOrBuilder The bytes value. getValue(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValue(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValue(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValue() - Method in class com.google.protobuf.DoubleValue.Builder The double value. getValue() - Method in class com.google.protobuf.DoubleValue The double value. getValue() - Method in interface com.google.protobuf.DoubleValueOrBuilder The double value. getValue() - Method in class com.google.protobuf.FloatValue.Builder The float value. getValue() - Method in class com.google.protobuf.FloatValue The float value. getValue() - Method in interface com.google.protobuf.FloatValueOrBuilder The float value. getValue() - Method in class com.google.protobuf.Int32Value.Builder The int32 value. getValue() - Method in class com.google.protobuf.Int32Value The int32 value. getValue() - Method in interface com.google.protobuf.Int32ValueOrBuilder The int32 value. getValue() - Method in class com.google.protobuf.Int64Value.Builder The int64 value. getValue() - Method in class com.google.protobuf.Int64Value The int64 value. getValue() - Method in interface com.google.protobuf.Int64ValueOrBuilder The int64 value. getValue() - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. getValue() - Method in class com.google.protobuf.Option The option's value packed in an Any message. getValue() - Method in interface com.google.protobuf.OptionOrBuilder The option's value packed in an Any message. getValue() - Method in class com.google.protobuf.StringValue.Builder The string value. getValue() - Method in class com.google.protobuf.StringValue The string value. getValue() - Method in interface com.google.protobuf.StringValueOrBuilder The string value. getValue() - Method in class com.google.protobuf.UInt32Value.Builder The uint32 value. getValue() - Method in class com.google.protobuf.UInt32Value The uint32 value. getValue() - Method in interface com.google.protobuf.UInt32ValueOrBuilder The uint32 value. getValue() - Method in class com.google.protobuf.UInt64Value.Builder The uint64 value. getValue() - Method in class com.google.protobuf.UInt64Value The uint64 value. getValue() - Method in interface com.google.protobuf.UInt64ValueOrBuilder The uint64 value. getValueBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueBuilder() - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. getValueBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueBytes() - Method in class com.google.protobuf.StringValue.Builder The string value. getValueBytes() - Method in class com.google.protobuf.StringValue The string value. getValueBytes() - Method in interface com.google.protobuf.StringValueOrBuilder The string value. getValueCount() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueCount() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueCount() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueDescriptor() - Method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature getValueDescriptor() - Method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label getValueDescriptor() - Method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type getValueDescriptor() - Method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType getValueDescriptor() - Method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType getValueDescriptor() - Method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode getValueDescriptor() - Method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel getValueDescriptor() - Method in enum com.google.protobuf.Field.Cardinality getValueDescriptor() - Method in enum com.google.protobuf.Field.Kind getValueDescriptor() - Method in enum com.google.protobuf.NullValue getValueDescriptor() - Method in interface com.google.protobuf.ProtocolMessageEnum Return the value's descriptor, which contains information such as value name, number, and type. getValueDescriptor() - Method in enum com.google.protobuf.Syntax getValueList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueList() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueOrBuilder(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueOrBuilder(int) - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueOrBuilder() - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. getValueOrBuilder() - Method in class com.google.protobuf.Option The option's value packed in an Any message. getValueOrBuilder() - Method in interface com.google.protobuf.OptionOrBuilder The option's value packed in an Any message. getValueOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueOrBuilderList() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValueOrBuilderList() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder repeated .google.protobuf.EnumValueDescriptorProto value = 2; getValues() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Get a list of defined values for this enum. getValues(int) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValues(int) - Method in class com.google.protobuf.ListValue Repeated field of dynamically typed values. getValues(int) - Method in interface com.google.protobuf.ListValueOrBuilder Repeated field of dynamically typed values. getValuesBuilder(int) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValuesBuilderList() - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValuesCount() - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValuesCount() - Method in class com.google.protobuf.ListValue Repeated field of dynamically typed values. getValuesCount() - Method in interface com.google.protobuf.ListValueOrBuilder Repeated field of dynamically typed values. getValuesList() - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValuesList() - Method in class com.google.protobuf.ListValue Repeated field of dynamically typed values. getValuesList() - Method in interface com.google.protobuf.ListValueOrBuilder Repeated field of dynamically typed values. getValuesOrBuilder(int) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValuesOrBuilder(int) - Method in class com.google.protobuf.ListValue Repeated field of dynamically typed values. getValuesOrBuilder(int) - Method in interface com.google.protobuf.ListValueOrBuilder Repeated field of dynamically typed values. getValuesOrBuilderList() - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. getValuesOrBuilderList() - Method in class com.google.protobuf.ListValue Repeated field of dynamically typed values. getValuesOrBuilderList() - Method in interface com.google.protobuf.ListValueOrBuilder Repeated field of dynamically typed values. getVersion() - Method in class com.google.protobuf.Api.Builder A version string for this interface. getVersion() - Method in class com.google.protobuf.Api A version string for this interface. getVersion() - Method in interface com.google.protobuf.ApiOrBuilder A version string for this interface. getVersionBytes() - Method in class com.google.protobuf.Api.Builder A version string for this interface. getVersionBytes() - Method in class com.google.protobuf.Api A version string for this interface. getVersionBytes() - Method in interface com.google.protobuf.ApiOrBuilder A version string for this interface. getWeak() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder For Google-internal migration only. getWeak() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions For Google-internal migration only. getWeak() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder For Google-internal migration only. getWeakDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. getWeakDependency(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Indexes of the weak imported files in the dependency list. getWeakDependency(int) - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Indexes of the weak imported files in the dependency list. getWeakDependencyCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. getWeakDependencyCount() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Indexes of the weak imported files in the dependency list. getWeakDependencyCount() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Indexes of the weak imported files in the dependency list. getWeakDependencyList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. getWeakDependencyList() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Indexes of the weak imported files in the dependency list. getWeakDependencyList() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder Indexes of the weak imported files in the dependency list. getWireType() - Method in enum com.google.protobuf.WireFormat.FieldType GO_PACKAGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions H hasAggregateValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional string aggregate_value = 8; hasAggregateValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional string aggregate_value = 8; hasAggregateValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional string aggregate_value = 8; hasAllowAlias() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Set this option to true to allow mapping different tag names to the same value. hasAllowAlias() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions Set this option to true to allow mapping different tag names to the same value. hasAllowAlias() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder Set this option to true to allow mapping different tag names to the same value. hasBegin() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the starting offset in bytes in the generated code that relates to the identified object. hasBegin() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the starting offset in bytes in the generated code that relates to the identified object. hasBegin() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the starting offset in bytes in the generated code that relates to the identified object. hasBoolValue() - Method in class com.google.protobuf.Value.Builder Represents a boolean value. hasBoolValue() - Method in class com.google.protobuf.Value Represents a boolean value. hasBoolValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a boolean value. hasCcEnableArenas() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Enables the use of arenas for the proto messages in this file. hasCcEnableArenas() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Enables the use of arenas for the proto messages in this file. hasCcEnableArenas() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Enables the use of arenas for the proto messages in this file. hasCcGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. hasCcGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. hasCcGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. hasClientStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if client streams multiple client messages hasClientStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Identifies if client streams multiple client messages hasClientStreaming() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Identifies if client streams multiple client messages hasCompilerVersion() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. hasCompilerVersion() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The version number of protocol compiler. hasCompilerVersion() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The version number of protocol compiler. hasContent() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file contents. hasContent() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File The file contents. hasContent() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder The file contents. hasCsharpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Namespace for generated classes; defaults to the package. hasCsharpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Namespace for generated classes; defaults to the package. hasCsharpNamespace() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Namespace for generated classes; defaults to the package. hasCtype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. hasCtype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. hasCtype() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. hasDefaultValue() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For numeric types, contains the original text representation of the value. hasDefaultValue() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For numeric types, contains the original text representation of the value. hasDefaultValue() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For numeric types, contains the original text representation of the value. hasDefaultValue() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Returns true if the field had an explicitly-defined default value. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.EnumOptionsOrBuilder Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueOptionsOrBuilder Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. hasDeprecated() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. hasDeprecated() - Method in interface com.google.protobuf.DescriptorProtos.ServiceOptionsOrBuilder Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. hasDoubleValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional double double_value = 6; hasDoubleValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional double double_value = 6; hasDoubleValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional double double_value = 6; hasEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Exclusive. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange Exclusive. hasEnd() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder Exclusive. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Exclusive. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange Exclusive. hasEnd() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder Exclusive. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange Inclusive. hasEnd() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRangeOrBuilder Inclusive. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the ending offset in bytes in the generated code that relates to the identified offset. hasEnd() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the ending offset in bytes in the generated code that relates to the identified offset. hasEnd() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the ending offset in bytes in the generated code that relates to the identified offset. hasError() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder Error message. hasError() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse Error message. hasError() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder Error message. hasExtendee() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For extensions, this is the name of the type being extended. hasExtendee() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For extensions, this is the name of the type being extended. hasExtendee() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For extensions, this is the name of the type being extended. hasField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder hasField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage hasField(Descriptors.FieldDescriptor) - Method in interface com.google.protobuf.MessageOrBuilder Returns true if the given field is set. hasGeneratedCodeInfo() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. hasGeneratedCodeInfo() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File Information describing the file content being inserted. hasGeneratedCodeInfo() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder Information describing the file content being inserted. hasGoPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Go package where structs generated from this .proto will be placed. hasGoPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the Go package where structs generated from this .proto will be placed. hasGoPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the Go package where structs generated from this .proto will be placed. hashCode() - Method in class com.google.protobuf.AbstractMessage hashCode() - Method in class com.google.protobuf.Any hashCode() - Method in class com.google.protobuf.Api hashCode() - Method in class com.google.protobuf.BoolValue hashCode() - Method in class com.google.protobuf.ByteString Compute the hashCode using the traditional algorithm from ByteString. hashCode() - Method in class com.google.protobuf.BytesValue hashCode() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest hashCode() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File hashCode() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse hashCode() - Method in class com.google.protobuf.compiler.PluginProtos.Version hashCode() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange hashCode() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange hashCode() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange hashCode() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet hashCode() - Method in class com.google.protobuf.DescriptorProtos.FileOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation hashCode() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo hashCode() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto hashCode() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions hashCode() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo hashCode() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location hashCode() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption hashCode() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart hashCode() - Method in class com.google.protobuf.DoubleValue hashCode() - Method in class com.google.protobuf.Duration hashCode() - Method in class com.google.protobuf.Empty hashCode() - Method in class com.google.protobuf.Enum hashCode() - Method in class com.google.protobuf.EnumValue hashCode() - Method in class com.google.protobuf.Field hashCode() - Method in class com.google.protobuf.FieldMask hashCode() - Method in class com.google.protobuf.FloatValue hashCode() - Method in class com.google.protobuf.Int32Value hashCode() - Method in class com.google.protobuf.Int64Value hashCode() - Method in class com.google.protobuf.ListValue hashCode() - Method in class com.google.protobuf.MapField hashCode() - Method in class com.google.protobuf.MapFieldLite hashCode() - Method in interface com.google.protobuf.Message Returns the hash code value for this message. hashCode() - Method in class com.google.protobuf.Method hashCode() - Method in class com.google.protobuf.Mixin hashCode() - Method in class com.google.protobuf.Option hashCode() - Method in class com.google.protobuf.SourceContext hashCode() - Method in class com.google.protobuf.StringValue hashCode() - Method in class com.google.protobuf.Struct hashCode() - Method in class com.google.protobuf.TextFormatParseLocation hashCode() - Method in class com.google.protobuf.Timestamp hashCode() - Method in class com.google.protobuf.Type hashCode() - Method in class com.google.protobuf.UInt32Value hashCode() - Method in class com.google.protobuf.UInt64Value hashCode() - Method in class com.google.protobuf.Value hasIdempotencyLevel() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; hasIdempotencyLevel() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; hasIdempotencyLevel() - Method in interface com.google.protobuf.DescriptorProtos.MethodOptionsOrBuilder optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; hasIdentifierValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. hasIdentifierValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. hasIdentifierValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. hasInputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Input and output type names. hasInputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Input and output type names. hasInputType() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Input and output type names. hasInsertionPoint() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. hasInsertionPoint() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. hasInsertionPoint() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. hasIsExtension() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required bool is_extension = 2; hasIsExtension() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart required bool is_extension = 2; hasIsExtension() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder required bool is_extension = 2; hasJavaGenerateEqualsAndHash() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Deprecated. hasJavaGenerateEqualsAndHash() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Deprecated. hasJavaGenerateEqualsAndHash() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Deprecated. hasJavaGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool java_generic_services = 17 [default = false]; hasJavaGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional bool java_generic_services = 17 [default = false]; hasJavaGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional bool java_generic_services = 17 [default = false]; hasJavaMultipleFiles() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. hasJavaMultipleFiles() - Method in class com.google.protobuf.DescriptorProtos.FileOptions If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. hasJavaMultipleFiles() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. hasJavaOuterClassname() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Controls the name of the wrapper Java class generated for the .proto file. hasJavaOuterClassname() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Controls the name of the wrapper Java class generated for the .proto file. hasJavaOuterClassname() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Controls the name of the wrapper Java class generated for the .proto file. hasJavaPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Java package where classes generated from this .proto will be placed. hasJavaPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the Java package where classes generated from this .proto will be placed. hasJavaPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the Java package where classes generated from this .proto will be placed. hasJavaStringCheckUtf8() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. hasJavaStringCheckUtf8() - Method in class com.google.protobuf.DescriptorProtos.FileOptions If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. hasJavaStringCheckUtf8() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. hasJsonName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder JSON name of this field. hasJsonName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto JSON name of this field. hasJsonName() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder JSON name of this field. hasJstype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The jstype option determines the JavaScript type used for values of the field. hasJstype() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The jstype option determines the JavaScript type used for values of the field. hasJstype() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The jstype option determines the JavaScript type used for values of the field. hasLabel() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldDescriptorProto.Label label = 4; hasLabel() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional .google.protobuf.FieldDescriptorProto.Label label = 4; hasLabel() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional .google.protobuf.FieldDescriptorProto.Label label = 4; hasLazy() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Should this field be parsed lazily? Lazy applies only to message-type fields. hasLazy() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions Should this field be parsed lazily? Lazy applies only to message-type fields. hasLazy() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder Should this field be parsed lazily? Lazy applies only to message-type fields. hasLeadingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. hasLeadingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. hasLeadingComments() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. hasListValue() - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. hasListValue() - Method in class com.google.protobuf.Value Represents a repeated `Value`. hasListValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a repeated `Value`. hasMajor() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 major = 1; hasMajor() - Method in class com.google.protobuf.compiler.PluginProtos.Version optional int32 major = 1; hasMajor() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder optional int32 major = 1; hasMapEntry() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Whether the message is an automatically generated map entry type for the maps field. hasMapEntry() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Whether the message is an automatically generated map entry type for the maps field. hasMapEntry() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Whether the message is an automatically generated map entry type for the maps field. hasMessageSetWireFormat() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Set true to use the old proto1 MessageSet wire format for extensions. hasMessageSetWireFormat() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Set true to use the old proto1 MessageSet wire format for extensions. hasMessageSetWireFormat() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Set true to use the old proto1 MessageSet wire format for extensions. hasMinor() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 minor = 2; hasMinor() - Method in class com.google.protobuf.compiler.PluginProtos.Version optional int32 minor = 2; hasMinor() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder optional int32 minor = 2; hasName() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file name, relative to the output directory. hasName() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File The file name, relative to the output directory. hasName() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.FileOrBuilder The file name, relative to the output directory. hasName() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder file name, relative to root of source tree hasName() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto file name, relative to root of source tree hasName() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder file name, relative to root of source tree hasName() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional string name = 1; hasName() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto optional string name = 1; hasName() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder optional string name = 1; hasNamePart() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required string name_part = 1; hasNamePart() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart required string name_part = 1; hasNamePart() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePartOrBuilder required string name_part = 1; hasNegativeIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional int64 negative_int_value = 5; hasNegativeIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional int64 negative_int_value = 5; hasNegativeIntValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional int64 negative_int_value = 5; hasNoStandardDescriptorAccessor() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. hasNoStandardDescriptorAccessor() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. hasNoStandardDescriptorAccessor() - Method in interface com.google.protobuf.DescriptorProtos.MessageOptionsOrBuilder Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. hasNullValue() - Method in class com.google.protobuf.Value.Builder Represents a null value. hasNullValue() - Method in class com.google.protobuf.Value Represents a null value. hasNullValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a null value. hasNumber() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional int32 number = 2; hasNumber() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional int32 number = 2; hasNumber() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional int32 number = 2; hasNumber() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional int32 number = 3; hasNumber() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional int32 number = 3; hasNumber() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional int32 number = 3; hasNumberValue() - Method in class com.google.protobuf.Value.Builder Represents a double value. hasNumberValue() - Method in class com.google.protobuf.Value Represents a double value. hasNumberValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a double value. hasObjcClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. hasObjcClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. hasObjcClassPrefix() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. hasOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.AbstractMessage.Builder hasOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.AbstractMessage hasOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder hasOneof(Descriptors.OneofDescriptor) - Method in class com.google.protobuf.DynamicMessage hasOneof(Descriptors.OneofDescriptor) - Method in interface com.google.protobuf.MessageOrBuilder Returns true if the given oneof is set. hasOneofIndex() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If set, gives the index of a oneof in the containing type's oneof_decl list. hasOneofIndex() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto If set, gives the index of a oneof in the containing type's oneof_decl list. hasOneofIndex() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder If set, gives the index of a oneof in the containing type's oneof_decl list. hasOptimizeFor() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; hasOptimizeFor() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; hasOptimizeFor() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; hasOptionalKeyword() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Returns true if this field was syntactically written with \"optional\" in the .proto file. hasOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange optional .google.protobuf.ExtensionRangeOptions options = 3; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder optional .google.protobuf.ExtensionRangeOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto optional .google.protobuf.MessageOptions options = 7; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProtoOrBuilder optional .google.protobuf.MessageOptions options = 7; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto optional .google.protobuf.EnumOptions options = 3; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProtoOrBuilder optional .google.protobuf.EnumOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto optional .google.protobuf.EnumValueOptions options = 3; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.EnumValueDescriptorProtoOrBuilder optional .google.protobuf.EnumValueOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto optional .google.protobuf.FieldOptions options = 8; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder optional .google.protobuf.FieldOptions options = 8; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto optional .google.protobuf.FileOptions options = 8; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder optional .google.protobuf.FileOptions options = 8; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional .google.protobuf.MethodOptions options = 4; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional .google.protobuf.MethodOptions options = 4; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto optional .google.protobuf.OneofOptions options = 2; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.OneofDescriptorProtoOrBuilder optional .google.protobuf.OneofOptions options = 2; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; hasOptions() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto optional .google.protobuf.ServiceOptions options = 3; hasOptions() - Method in interface com.google.protobuf.DescriptorProtos.ServiceDescriptorProtoOrBuilder optional .google.protobuf.ServiceOptions options = 3; hasOutputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string output_type = 3; hasOutputType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto optional string output_type = 3; hasOutputType() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder optional string output_type = 3; hasPackage() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder e.g. hasPackage() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto e.g. hasPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder e.g. hasPacked() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. hasPacked() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. hasPacked() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. hasParameter() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The generator parameter passed on the command-line. hasParameter() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest The generator parameter passed on the command-line. hasParameter() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequestOrBuilder The generator parameter passed on the command-line. hasPatch() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 patch = 3; hasPatch() - Method in class com.google.protobuf.compiler.PluginProtos.Version optional int32 patch = 3; hasPatch() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder optional int32 patch = 3; hasPhpClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the php class prefix which is prepended to all php generated classes from this .proto. hasPhpClassPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Sets the php class prefix which is prepended to all php generated classes from this .proto. hasPhpClassPrefix() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Sets the php class prefix which is prepended to all php generated classes from this .proto. hasPhpGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool php_generic_services = 42 [default = false]; hasPhpGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional bool php_generic_services = 42 [default = false]; hasPhpGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional bool php_generic_services = 42 [default = false]; hasPhpMetadataNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated metadata classes. hasPhpMetadataNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the namespace of php generated metadata classes. hasPhpMetadataNamespace() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the namespace of php generated metadata classes. hasPhpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated classes. hasPhpNamespace() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the namespace of php generated classes. hasPhpNamespace() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the namespace of php generated classes. hasPositiveIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional uint64 positive_int_value = 4; hasPositiveIntValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional uint64 positive_int_value = 4; hasPositiveIntValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional uint64 positive_int_value = 4; hasProto3Optional() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If true, this is a proto3 \"optional\". hasProto3Optional() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto If true, this is a proto3 \"optional\". hasProto3Optional() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder If true, this is a proto3 \"optional\". hasPyGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool py_generic_services = 18 [default = false]; hasPyGenericServices() - Method in class com.google.protobuf.DescriptorProtos.FileOptions optional bool py_generic_services = 18 [default = false]; hasPyGenericServices() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder optional bool py_generic_services = 18 [default = false]; hasRubyPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the package of ruby generated classes. hasRubyPackage() - Method in class com.google.protobuf.DescriptorProtos.FileOptions Use this option to change the package of ruby generated classes. hasRubyPackage() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder Use this option to change the package of ruby generated classes. hasServerStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if server streams multiple server messages hasServerStreaming() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Identifies if server streams multiple server messages hasServerStreaming() - Method in interface com.google.protobuf.DescriptorProtos.MethodDescriptorProtoOrBuilder Identifies if server streams multiple server messages hasSourceCodeInfo() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. hasSourceCodeInfo() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto This field contains optional information about the original source code. hasSourceCodeInfo() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder This field contains optional information about the original source code. hasSourceContext() - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. hasSourceContext() - Method in class com.google.protobuf.Api Source context for the protocol buffer service represented by this message. hasSourceContext() - Method in interface com.google.protobuf.ApiOrBuilder Source context for the protocol buffer service represented by this message. hasSourceContext() - Method in class com.google.protobuf.Enum.Builder The source context. hasSourceContext() - Method in class com.google.protobuf.Enum The source context. hasSourceContext() - Method in interface com.google.protobuf.EnumOrBuilder The source context. hasSourceContext() - Method in class com.google.protobuf.Type.Builder The source context. hasSourceContext() - Method in class com.google.protobuf.Type The source context. hasSourceContext() - Method in interface com.google.protobuf.TypeOrBuilder The source context. hasSourceFile() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the filesystem path to the original source .proto. hasSourceFile() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Identifies the filesystem path to the original source .proto. hasSourceFile() - Method in interface com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.AnnotationOrBuilder Identifies the filesystem path to the original source .proto. hasStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Inclusive. hasStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange Inclusive. hasStart() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRangeOrBuilder Inclusive. hasStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Inclusive. hasStart() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange Inclusive. hasStart() - Method in interface com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRangeOrBuilder Inclusive. hasStart() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. hasStart() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange Inclusive. hasStart() - Method in interface com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRangeOrBuilder Inclusive. hasStringValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional bytes string_value = 7; hasStringValue() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption optional bytes string_value = 7; hasStringValue() - Method in interface com.google.protobuf.DescriptorProtos.UninterpretedOptionOrBuilder optional bytes string_value = 7; hasStringValue() - Method in class com.google.protobuf.Value.Builder Represents a string value. hasStringValue() - Method in class com.google.protobuf.Value Represents a string value. hasStringValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a string value. hasStructValue() - Method in class com.google.protobuf.Value.Builder Represents a structured value. hasStructValue() - Method in class com.google.protobuf.Value Represents a structured value. hasStructValue() - Method in interface com.google.protobuf.ValueOrBuilder Represents a structured value. hasSuffix() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". hasSuffix() - Method in class com.google.protobuf.compiler.PluginProtos.Version A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". hasSuffix() - Method in interface com.google.protobuf.compiler.PluginProtos.VersionOrBuilder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". hasSupportedFeatures() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder A bitmask of supported features that the code generator supports. hasSupportedFeatures() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse A bitmask of supported features that the code generator supports. hasSupportedFeatures() - Method in interface com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponseOrBuilder A bitmask of supported features that the code generator supports. hasSwiftPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. hasSwiftPrefix() - Method in class com.google.protobuf.DescriptorProtos.FileOptions By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. hasSwiftPrefix() - Method in interface com.google.protobuf.DescriptorProtos.FileOptionsOrBuilder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. hasSyntax() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder The syntax of the proto file. hasSyntax() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto The syntax of the proto file. hasSyntax() - Method in interface com.google.protobuf.DescriptorProtos.FileDescriptorProtoOrBuilder The syntax of the proto file. hasTrailingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder optional string trailing_comments = 4; hasTrailingComments() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location optional string trailing_comments = 4; hasTrailingComments() - Method in interface com.google.protobuf.DescriptorProtos.SourceCodeInfo.LocationOrBuilder optional string trailing_comments = 4; hasType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If type_name is set, this need not be set. hasType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto If type_name is set, this need not be set. hasType() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder If type_name is set, this need not be set. hasTypeName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For message and enum types, this is the name of the type. hasTypeName() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto For message and enum types, this is the name of the type. hasTypeName() - Method in interface com.google.protobuf.DescriptorProtos.FieldDescriptorProtoOrBuilder For message and enum types, this is the name of the type. hasValue() - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. hasValue() - Method in class com.google.protobuf.Option The option's value packed in an Any message. hasValue() - Method in interface com.google.protobuf.OptionOrBuilder The option's value packed in an Any message. hasWeak() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder For Google-internal migration only. hasWeak() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions For Google-internal migration only. hasWeak() - Method in interface com.google.protobuf.DescriptorProtos.FieldOptionsOrBuilder For Google-internal migration only. I id() - Method in enum com.google.protobuf.FieldType A reliable unique identifier for this type. IDEMPOTENCY_LEVEL_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodOptions IDEMPOTENCY_UNKNOWN_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel IDEMPOTENCY_UNKNOWN = 0; IDEMPOTENT_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel idempotent, but may have side effects IDENTIFIER_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption ignoringUnknownFields() - Method in class com.google.protobuf.util.JsonFormat.Parser Creates a new JsonFormat.Parser configured to not throw an exception when an unknown field is encountered. includingDefaultValueFields() - Method in class com.google.protobuf.util.JsonFormat.Printer Creates a new JsonFormat.Printer that will also print fields set to their defaults. includingDefaultValueFields(Set<Descriptors.FieldDescriptor>) - Method in class com.google.protobuf.util.JsonFormat.Printer Creates a new JsonFormat.Printer that will also print default-valued fields if their FieldDescriptors are found in the supplied set. INPUT_TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto INSERTION_POINT_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File Int32Value - Class in com.google.protobuf Wrapper message for `int32`. Int32Value.Builder - Class in com.google.protobuf Wrapper message for `int32`. Int32ValueOrBuilder - Interface in com.google.protobuf Int64Value - Class in com.google.protobuf Wrapper message for `int64`. Int64Value.Builder - Class in com.google.protobuf Wrapper message for `int64`. Int64ValueOrBuilder - Interface in com.google.protobuf internalBuildGeneratedFileFrom(String[], Descriptors.FileDescriptor[], Descriptors.FileDescriptor.InternalDescriptorAssigner) - Static method in class com.google.protobuf.Descriptors.FileDescriptor Deprecated. internalBuildGeneratedFileFrom(String[], Descriptors.FileDescriptor[]) - Static method in class com.google.protobuf.Descriptors.FileDescriptor This method is to be called by generated code only. internalBuildGeneratedFileFrom(String[], Class<?>, String[], String[], Descriptors.FileDescriptor.InternalDescriptorAssigner) - Static method in class com.google.protobuf.Descriptors.FileDescriptor Deprecated. internalBuildGeneratedFileFrom(String[], Class<?>, String[], String[]) - Static method in class com.google.protobuf.Descriptors.FileDescriptor This method is to be called by generated code only. internalGetValueMap() - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature internalGetValueMap() - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label internalGetValueMap() - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type internalGetValueMap() - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType internalGetValueMap() - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType internalGetValueMap() - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode internalGetValueMap() - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel internalGetValueMap() - Static method in enum com.google.protobuf.Field.Cardinality internalGetValueMap() - Static method in enum com.google.protobuf.Field.Kind internalGetValueMap() - Static method in enum com.google.protobuf.NullValue internalGetValueMap() - Static method in enum com.google.protobuf.Syntax internalMergeFrom(MessageLite.Builder, MessageLite) - Method in class com.google.protobuf.Descriptors.FieldDescriptor For internal use only. internalUpdateFileDescriptor(Descriptors.FileDescriptor, ExtensionRegistry) - Static method in class com.google.protobuf.Descriptors.FileDescriptor This method is to be called by generated code only. intersection(FieldMask, FieldMask) - Static method in class com.google.protobuf.util.FieldMaskUtil Calculates the intersection of two FieldMasks. InvalidProtocolBufferException - Exception in com.google.protobuf Thrown when a protocol message being parsed is invalid in some way, e.g. InvalidProtocolBufferException(String) - Constructor for exception com.google.protobuf.InvalidProtocolBufferException InvalidProtocolBufferException(IOException) - Constructor for exception com.google.protobuf.InvalidProtocolBufferException InvalidProtocolBufferException(String, IOException) - Constructor for exception com.google.protobuf.InvalidProtocolBufferException InvalidProtocolBufferException.InvalidWireTypeException - Exception in com.google.protobuf Exception indicating that and unexpected wire type was encountered for a field. InvalidWireTypeException(String) - Constructor for exception com.google.protobuf.InvalidProtocolBufferException.InvalidWireTypeException is(Class<T>) - Method in class com.google.protobuf.Any IS_EXTENSION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart isAtEnd() - Method in class com.google.protobuf.CodedInputStream Returns true if the stream has reached the end of the input. isCanceled() - Method in interface com.google.protobuf.RpcController If true, indicates that the client canceled the RPC, so the server may as well give up on replying to it. isClientStreaming() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get whether or not the inputs are streaming. isEagerlyParseMessageSets() - Static method in class com.google.protobuf.ExtensionRegistryLite isEmpty() - Method in class com.google.protobuf.ByteString Returns true if the size is 0, false otherwise. isExtendable() - Method in class com.google.protobuf.Descriptors.Descriptor Indicates whether the message can be extended. isExtension() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Is this field an extension? isExtensionNumber(int) - Method in class com.google.protobuf.Descriptors.Descriptor Determines if the given field number is an extension. isInitialized() - Method in class com.google.protobuf.AbstractMessage isInitialized() - Method in class com.google.protobuf.Any.Builder isInitialized() - Method in class com.google.protobuf.Any isInitialized() - Method in class com.google.protobuf.Api.Builder isInitialized() - Method in class com.google.protobuf.Api isInitialized() - Method in class com.google.protobuf.BoolValue.Builder isInitialized() - Method in class com.google.protobuf.BoolValue isInitialized() - Method in class com.google.protobuf.BytesValue.Builder isInitialized() - Method in class com.google.protobuf.BytesValue isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder isInitialized() - Method in class com.google.protobuf.compiler.PluginProtos.Version isInitialized() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange isInitialized() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.FileOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation isInitialized() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo isInitialized() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto isInitialized() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions isInitialized() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo isInitialized() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location isInitialized() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption isInitialized() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder isInitialized() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart isInitialized() - Method in class com.google.protobuf.DoubleValue.Builder isInitialized() - Method in class com.google.protobuf.DoubleValue isInitialized() - Method in class com.google.protobuf.Duration.Builder isInitialized() - Method in class com.google.protobuf.Duration isInitialized() - Method in class com.google.protobuf.DynamicMessage.Builder isInitialized() - Method in class com.google.protobuf.DynamicMessage isInitialized() - Method in class com.google.protobuf.Empty.Builder isInitialized() - Method in class com.google.protobuf.Empty isInitialized() - Method in class com.google.protobuf.Enum.Builder isInitialized() - Method in class com.google.protobuf.Enum isInitialized() - Method in class com.google.protobuf.EnumValue.Builder isInitialized() - Method in class com.google.protobuf.EnumValue isInitialized() - Method in class com.google.protobuf.Field.Builder isInitialized() - Method in class com.google.protobuf.Field isInitialized() - Method in class com.google.protobuf.FieldMask.Builder isInitialized() - Method in class com.google.protobuf.FieldMask isInitialized() - Method in class com.google.protobuf.FloatValue.Builder isInitialized() - Method in class com.google.protobuf.FloatValue isInitialized() - Method in class com.google.protobuf.Int32Value.Builder isInitialized() - Method in class com.google.protobuf.Int32Value isInitialized() - Method in class com.google.protobuf.Int64Value.Builder isInitialized() - Method in class com.google.protobuf.Int64Value isInitialized() - Method in class com.google.protobuf.ListValue.Builder isInitialized() - Method in class com.google.protobuf.ListValue isInitialized() - Method in interface com.google.protobuf.MessageLiteOrBuilder Returns true if all required fields in the message and all embedded messages are set, false otherwise. isInitialized() - Method in class com.google.protobuf.Method.Builder isInitialized() - Method in class com.google.protobuf.Method isInitialized() - Method in class com.google.protobuf.Mixin.Builder isInitialized() - Method in class com.google.protobuf.Mixin isInitialized() - Method in class com.google.protobuf.Option.Builder isInitialized() - Method in class com.google.protobuf.Option isInitialized() - Method in class com.google.protobuf.SourceContext.Builder isInitialized() - Method in class com.google.protobuf.SourceContext isInitialized() - Method in class com.google.protobuf.StringValue.Builder isInitialized() - Method in class com.google.protobuf.StringValue isInitialized() - Method in class com.google.protobuf.Struct.Builder isInitialized() - Method in class com.google.protobuf.Struct isInitialized() - Method in class com.google.protobuf.Timestamp.Builder isInitialized() - Method in class com.google.protobuf.Timestamp isInitialized() - Method in class com.google.protobuf.Type.Builder isInitialized() - Method in class com.google.protobuf.Type isInitialized() - Method in class com.google.protobuf.UInt32Value.Builder isInitialized() - Method in class com.google.protobuf.UInt32Value isInitialized() - Method in class com.google.protobuf.UInt64Value.Builder isInitialized() - Method in class com.google.protobuf.UInt64Value isInitialized() - Method in class com.google.protobuf.Value.Builder isInitialized() - Method in class com.google.protobuf.Value isList() - Method in enum com.google.protobuf.FieldType Indicates whether this field represents a list of values. isMap() - Method in enum com.google.protobuf.FieldType Indicates whether this field represents a map. isMapField() - Method in class com.google.protobuf.Descriptors.FieldDescriptor isMutable() - Method in class com.google.protobuf.MapField Returns whether this field can be modified. isMutable() - Method in class com.google.protobuf.MapFieldLite Returns whether this field can be modified. isNegative(Duration) - Static method in class com.google.protobuf.util.Durations Returns whether the given Duration is negative or not. isOptional() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Is this field declared optional? isPackable() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Can this field be packed? i.e. isPackable() - Method in enum com.google.protobuf.WireFormat.FieldType isPacked() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Does this field have the [packed = true] option or is this field packable in proto3 and not explicitly set to unpacked? isPacked() - Method in enum com.google.protobuf.FieldType Indicates whether a list field should be represented on the wire in packed form. isPositive(Duration) - Static method in class com.google.protobuf.util.Durations Returns whether the given Duration is positive or not. isPrimitiveScalar() - Method in enum com.google.protobuf.FieldType Indicates whether this field type represents a primitive scalar value. isRepeated() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Is this field declared repeated? isRepeated() - Method in class com.google.protobuf.ExtensionLite Returns whether it is a repeated field. isRequired() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Is this field declared required? isReservedName(String) - Method in class com.google.protobuf.Descriptors.Descriptor Determines if the given field name is reserved. isReservedNumber(int) - Method in class com.google.protobuf.Descriptors.Descriptor Determines if the given field number is reserved. isScalar() - Method in enum com.google.protobuf.FieldType Indicates whether this field type represents a scalar value. isServerStreaming() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Get whether or not the outputs are streaming. isSynthetic() - Method in class com.google.protobuf.Descriptors.OneofDescriptor isValid(Duration) - Static method in class com.google.protobuf.util.Durations Returns true if the given Duration is valid. isValid(long, int) - Static method in class com.google.protobuf.util.Durations Returns true if the given number of seconds and nanos is a valid Duration. isValid(Class<? extends Message>, FieldMask) - Static method in class com.google.protobuf.util.FieldMaskUtil Checks whether paths in a given fields mask are valid. isValid(Descriptors.Descriptor, FieldMask) - Static method in class com.google.protobuf.util.FieldMaskUtil Checks whether paths in a given fields mask are valid. isValid(Class<? extends Message>, String) - Static method in class com.google.protobuf.util.FieldMaskUtil Checks whether a given field path is valid. isValid(Descriptors.Descriptor, String) - Static method in class com.google.protobuf.util.FieldMaskUtil Checks whether paths in a given fields mask are valid. isValid(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Returns true if the given Timestamp is valid. isValid(long, int) - Static method in class com.google.protobuf.util.Timestamps Returns true if the given number of seconds and nanos is a valid Timestamp. isValidForField(Field) - Method in enum com.google.protobuf.FieldType Indicates whether or not this FieldType can be applied to the given Field. isValidType(Class<?>) - Method in enum com.google.protobuf.JavaType Indicates whether or not this JavaType can be applied to a field of the given type. isValidUtf8() - Method in class com.google.protobuf.ByteString Tells whether this ByteString represents a well-formed UTF-8 byte sequence, such that the original bytes can be converted to a String object and then round tripped back to bytes without loss. iterator() - Method in class com.google.protobuf.ByteString Return a ByteString.ByteIterator over the bytes in the ByteString. J JAVA_GENERATE_EQUALS_AND_HASH_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions JAVA_GENERIC_SERVICES_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions JAVA_MULTIPLE_FILES_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions JAVA_OUTER_CLASSNAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions JAVA_PACKAGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions JAVA_STRING_CHECK_UTF8_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions JavaType - Enum in com.google.protobuf Enum that identifies the Java types required to store protobuf fields. JS_NORMAL_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType Use the default type. JS_NUMBER_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType Use JavaScript numbers. JS_STRING_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType Use JavaScript strings. JSON_NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto JSON_NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Field JsonFormat - Class in com.google.protobuf.util Utility classes to convert protobuf messages to/from JSON format. JsonFormat.Parser - Class in com.google.protobuf.util A Parser parses JSON to protobuf message. JsonFormat.Printer - Class in com.google.protobuf.util A Printer converts protobuf message to JSON format. JsonFormat.TypeRegistry - Class in com.google.protobuf.util A TypeRegistry is used to resolve Any messages in the JSON conversion. JsonFormat.TypeRegistry.Builder - Class in com.google.protobuf.util A Builder is used to build JsonFormat.TypeRegistry. JSTYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions K KIND_FIELD_NUMBER - Static variable in class com.google.protobuf.Field L LABEL_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto LABEL_OPTIONAL_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label 0 is reserved for errors LABEL_REPEATED_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label LABEL_REPEATED = 3; LABEL_REQUIRED_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label LABEL_REQUIRED = 2; LAZY_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions LEADING_COMMENTS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location LEADING_DETACHED_COMMENTS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location LIST_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Value ListValue - Class in com.google.protobuf `ListValue` is a wrapper around a repeated field of values. ListValue.Builder - Class in com.google.protobuf `ListValue` is a wrapper around a repeated field of values. ListValueOrBuilder - Interface in com.google.protobuf LITE_RUNTIME_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode Generate code using MessageLite and the lite runtime. LITTLE_ENDIAN_32_SIZE - Static variable in class com.google.protobuf.CodedOutputStream Deprecated. Use CodedOutputStream.computeFixed32SizeNoTag(int) instead. LOCATION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo M MAJOR_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.Version makeImmutable() - Method in class com.google.protobuf.MapField Makes this list immutable. makeImmutable() - Method in class com.google.protobuf.MapFieldLite Makes this field immutable. MAP_ENTRY_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MessageOptions MapField<K,V> - Class in com.google.protobuf Internal representation of map fields in generated messages. MapFieldLite<K,V> - Class in com.google.protobuf Internal representation of map fields in generated lite-runtime messages. MAX_VALUE - Static variable in class com.google.protobuf.util.Durations A constant holding the maximum valid Duration, approximately +10,000 years. MAX_VALUE - Static variable in class com.google.protobuf.util.Timestamps A constant holding the maximum valid Timestamp, :59.999999999Z. merge(Readable, Message.Builder) - Static method in class com.google.protobuf.TextFormat Parse a text-format message from input and merge the contents into builder. merge(CharSequence, Message.Builder) - Static method in class com.google.protobuf.TextFormat Parse a text-format message from input and merge the contents into builder. merge(Readable, ExtensionRegistry, Message.Builder) - Static method in class com.google.protobuf.TextFormat Parse a text-format message from input and merge the contents into builder. merge(CharSequence, ExtensionRegistry, Message.Builder) - Static method in class com.google.protobuf.TextFormat Parse a text-format message from input and merge the contents into builder. merge(Readable, Message.Builder) - Method in class com.google.protobuf.TextFormat.Parser Parse a text-format message from input and merge the contents into builder. merge(CharSequence, Message.Builder) - Method in class com.google.protobuf.TextFormat.Parser Parse a text-format message from input and merge the contents into builder. merge(Readable, ExtensionRegistry, Message.Builder) - Method in class com.google.protobuf.TextFormat.Parser Parse a text-format message from input and merge the contents into builder. merge(CharSequence, ExtensionRegistry, Message.Builder) - Method in class com.google.protobuf.TextFormat.Parser Parse a text-format message from input and merge the contents into builder. merge(FieldMask, Message, Message.Builder, FieldMaskUtil.MergeOptions) - Static method in class com.google.protobuf.util.FieldMaskUtil Merges fields specified by a FieldMask from one message to another with the specified merge options. merge(FieldMask, Message, Message.Builder) - Static method in class com.google.protobuf.util.FieldMaskUtil Merges fields specified by a FieldMask from one message to another. merge(String, Message.Builder) - Method in class com.google.protobuf.util.JsonFormat.Parser Parses from JSON into a protobuf message. merge(Reader, Message.Builder) - Method in class com.google.protobuf.util.JsonFormat.Parser Parses from JSON into a protobuf message. mergeCompilerVersion(PluginProtos.Version) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. mergeDelimitedFrom(InputStream) - Method in class com.google.protobuf.AbstractMessage.Builder mergeDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessage.Builder mergeDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeDelimitedFrom(InputStream) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeDelimitedFrom(InputStream) - Method in interface com.google.protobuf.Message.Builder mergeDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Message.Builder mergeDelimitedFrom(InputStream) - Method in interface com.google.protobuf.MessageLite.Builder Like MessageLite.Builder.mergeFrom(InputStream), but does not read until EOF. mergeDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.MessageLite.Builder Like MessageLite.Builder.mergeDelimitedFrom(InputStream) but supporting extensions. mergeFrom(Message) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(CodedInputStream) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(ByteString) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(ByteString, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(byte[]) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(byte[], int, int) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(byte[], ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(byte[], int, int, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(InputStream) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessage.Builder mergeFrom(CodedInputStream) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(ByteString) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(ByteString, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(byte[]) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(byte[], int, int) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(byte[], ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(byte[], int, int, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(InputStream) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(MessageLite) - Method in class com.google.protobuf.AbstractMessageLite.Builder mergeFrom(Message) - Method in class com.google.protobuf.Any.Builder mergeFrom(Any) - Method in class com.google.protobuf.Any.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Any.Builder mergeFrom(Message) - Method in class com.google.protobuf.Api.Builder mergeFrom(Api) - Method in class com.google.protobuf.Api.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Api.Builder mergeFrom(Message) - Method in class com.google.protobuf.BoolValue.Builder mergeFrom(BoolValue) - Method in class com.google.protobuf.BoolValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.BoolValue.Builder mergeFrom(Message) - Method in class com.google.protobuf.BytesValue.Builder mergeFrom(BytesValue) - Method in class com.google.protobuf.BytesValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.BytesValue.Builder mergeFrom(Message) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder mergeFrom(PluginProtos.CodeGeneratorRequest) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder mergeFrom(Message) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder mergeFrom(PluginProtos.CodeGeneratorResponse) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder mergeFrom(Message) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder mergeFrom(PluginProtos.CodeGeneratorResponse.File) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder mergeFrom(Message) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder mergeFrom(PluginProtos.Version) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder mergeFrom(DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder mergeFrom(DescriptorProtos.DescriptorProto.ExtensionRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder mergeFrom(DescriptorProtos.DescriptorProto.ReservedRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder mergeFrom(DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder mergeFrom(DescriptorProtos.EnumDescriptorProto.EnumReservedRange) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder mergeFrom(DescriptorProtos.EnumOptions) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder mergeFrom(DescriptorProtos.EnumValueDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder mergeFrom(DescriptorProtos.EnumValueOptions) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder mergeFrom(DescriptorProtos.ExtensionRangeOptions) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder mergeFrom(DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder mergeFrom(DescriptorProtos.FieldOptions) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder mergeFrom(DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder mergeFrom(DescriptorProtos.FileDescriptorSet) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder mergeFrom(DescriptorProtos.FileOptions) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder mergeFrom(DescriptorProtos.GeneratedCodeInfo.Annotation) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder mergeFrom(DescriptorProtos.GeneratedCodeInfo) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder mergeFrom(DescriptorProtos.MessageOptions) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder mergeFrom(DescriptorProtos.MethodDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder mergeFrom(DescriptorProtos.MethodOptions) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder mergeFrom(DescriptorProtos.OneofDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder mergeFrom(DescriptorProtos.OneofOptions) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder mergeFrom(DescriptorProtos.ServiceDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder mergeFrom(DescriptorProtos.ServiceOptions) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder mergeFrom(DescriptorProtos.SourceCodeInfo) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder mergeFrom(DescriptorProtos.SourceCodeInfo.Location) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder mergeFrom(DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder mergeFrom(Message) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder mergeFrom(DescriptorProtos.UninterpretedOption.NamePart) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder mergeFrom(Message) - Method in class com.google.protobuf.DoubleValue.Builder mergeFrom(DoubleValue) - Method in class com.google.protobuf.DoubleValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.DoubleValue.Builder mergeFrom(Message) - Method in class com.google.protobuf.Duration.Builder mergeFrom(Duration) - Method in class com.google.protobuf.Duration.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Duration.Builder mergeFrom(Message) - Method in class com.google.protobuf.DynamicMessage.Builder mergeFrom(Message) - Method in class com.google.protobuf.Empty.Builder mergeFrom(Empty) - Method in class com.google.protobuf.Empty.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Empty.Builder mergeFrom(Message) - Method in class com.google.protobuf.Enum.Builder mergeFrom(Enum) - Method in class com.google.protobuf.Enum.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Enum.Builder mergeFrom(Message) - Method in class com.google.protobuf.EnumValue.Builder mergeFrom(EnumValue) - Method in class com.google.protobuf.EnumValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.EnumValue.Builder mergeFrom(Message) - Method in class com.google.protobuf.Field.Builder mergeFrom(Field) - Method in class com.google.protobuf.Field.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Field.Builder mergeFrom(Message) - Method in class com.google.protobuf.FieldMask.Builder mergeFrom(FieldMask) - Method in class com.google.protobuf.FieldMask.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.FieldMask.Builder mergeFrom(Message) - Method in class com.google.protobuf.FloatValue.Builder mergeFrom(FloatValue) - Method in class com.google.protobuf.FloatValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.FloatValue.Builder mergeFrom(Message) - Method in class com.google.protobuf.Int32Value.Builder mergeFrom(Int32Value) - Method in class com.google.protobuf.Int32Value.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Int32Value.Builder mergeFrom(Message) - Method in class com.google.protobuf.Int64Value.Builder mergeFrom(Int64Value) - Method in class com.google.protobuf.Int64Value.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Int64Value.Builder mergeFrom(Message) - Method in class com.google.protobuf.ListValue.Builder mergeFrom(ListValue) - Method in class com.google.protobuf.ListValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.ListValue.Builder mergeFrom(MapField<K, V>) - Method in class com.google.protobuf.MapField mergeFrom(MapFieldLite<K, V>) - Method in class com.google.protobuf.MapFieldLite mergeFrom(Message) - Method in interface com.google.protobuf.Message.Builder Merge other into the message being built. mergeFrom(CodedInputStream) - Method in interface com.google.protobuf.Message.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Message.Builder mergeFrom(ByteString) - Method in interface com.google.protobuf.Message.Builder mergeFrom(ByteString, ExtensionRegistryLite) - Method in interface com.google.protobuf.Message.Builder mergeFrom(byte[]) - Method in interface com.google.protobuf.Message.Builder mergeFrom(byte[], int, int) - Method in interface com.google.protobuf.Message.Builder mergeFrom(byte[], ExtensionRegistryLite) - Method in interface com.google.protobuf.Message.Builder mergeFrom(byte[], int, int, ExtensionRegistryLite) - Method in interface com.google.protobuf.Message.Builder mergeFrom(InputStream) - Method in interface com.google.protobuf.Message.Builder mergeFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Message.Builder mergeFrom(CodedInputStream) - Method in interface com.google.protobuf.MessageLite.Builder Parses a message of this type from the input and merges it with this message. mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.MessageLite.Builder Like MessageLite.Builder.mergeFrom(CodedInputStream), but also parses extensions. mergeFrom(ByteString) - Method in interface com.google.protobuf.MessageLite.Builder Parse data as a message of this type and merge it with the message being built. mergeFrom(ByteString, ExtensionRegistryLite) - Method in interface com.google.protobuf.MessageLite.Builder Parse data as a message of this type and merge it with the message being built. mergeFrom(byte[]) - Method in interface com.google.protobuf.MessageLite.Builder Parse data as a message of this type and merge it with the message being built. mergeFrom(byte[], int, int) - Method in interface com.google.protobuf.MessageLite.Builder Parse data as a message of this type and merge it with the message being built. mergeFrom(byte[], ExtensionRegistryLite) - Method in interface com.google.protobuf.MessageLite.Builder Parse data as a message of this type and merge it with the message being built. mergeFrom(byte[], int, int, ExtensionRegistryLite) - Method in interface com.google.protobuf.MessageLite.Builder Parse data as a message of this type and merge it with the message being built. mergeFrom(InputStream) - Method in interface com.google.protobuf.MessageLite.Builder Parse a message of this type from input and merge it with the message being built. mergeFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.MessageLite.Builder Parse a message of this type from input and merge it with the message being built. mergeFrom(MessageLite) - Method in interface com.google.protobuf.MessageLite.Builder Merge other into the message being built. mergeFrom(Message) - Method in class com.google.protobuf.Method.Builder mergeFrom(Method) - Method in class com.google.protobuf.Method.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Method.Builder mergeFrom(Message) - Method in class com.google.protobuf.Mixin.Builder mergeFrom(Mixin) - Method in class com.google.protobuf.Mixin.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Mixin.Builder mergeFrom(Message) - Method in class com.google.protobuf.Option.Builder mergeFrom(Option) - Method in class com.google.protobuf.Option.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Option.Builder mergeFrom(Message) - Method in class com.google.protobuf.SourceContext.Builder mergeFrom(SourceContext) - Method in class com.google.protobuf.SourceContext.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.SourceContext.Builder mergeFrom(Message) - Method in class com.google.protobuf.StringValue.Builder mergeFrom(StringValue) - Method in class com.google.protobuf.StringValue.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.StringValue.Builder mergeFrom(Message) - Method in class com.google.protobuf.Struct.Builder mergeFrom(Struct) - Method in class com.google.protobuf.Struct.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Struct.Builder mergeFrom(Message) - Method in class com.google.protobuf.Timestamp.Builder mergeFrom(Timestamp) - Method in class com.google.protobuf.Timestamp.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Timestamp.Builder mergeFrom(Message) - Method in class com.google.protobuf.Type.Builder mergeFrom(Type) - Method in class com.google.protobuf.Type.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Type.Builder mergeFrom(Message) - Method in class com.google.protobuf.UInt32Value.Builder mergeFrom(UInt32Value) - Method in class com.google.protobuf.UInt32Value.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.UInt32Value.Builder mergeFrom(Message) - Method in class com.google.protobuf.UInt64Value.Builder mergeFrom(UInt64Value) - Method in class com.google.protobuf.UInt64Value.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.UInt64Value.Builder mergeFrom(Message) - Method in class com.google.protobuf.Value.Builder mergeFrom(Value) - Method in class com.google.protobuf.Value.Builder mergeFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.Value.Builder mergeGeneratedCodeInfo(DescriptorProtos.GeneratedCodeInfo) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. mergeListValue(ListValue) - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. mergeOptions(DescriptorProtos.MessageOptions) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; mergeOptions(DescriptorProtos.ExtensionRangeOptions) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; mergeOptions(DescriptorProtos.EnumOptions) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; mergeOptions(DescriptorProtos.EnumValueOptions) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; mergeOptions(DescriptorProtos.FieldOptions) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; mergeOptions(DescriptorProtos.FileOptions) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; mergeOptions(DescriptorProtos.MethodOptions) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; mergeOptions(DescriptorProtos.OneofOptions) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; mergeOptions(DescriptorProtos.ServiceOptions) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; MergeOptions() - Constructor for class com.google.protobuf.util.FieldMaskUtil.MergeOptions mergeSourceCodeInfo(DescriptorProtos.SourceCodeInfo) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. mergeSourceContext(SourceContext) - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. mergeSourceContext(SourceContext) - Method in class com.google.protobuf.Enum.Builder The source context. mergeSourceContext(SourceContext) - Method in class com.google.protobuf.Type.Builder The source context. mergeStructValue(Struct) - Method in class com.google.protobuf.Value.Builder Represents a structured value. mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.AbstractMessage.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Any.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Api.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.BoolValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.BytesValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DoubleValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Duration.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DynamicMessage.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Empty.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Enum.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.EnumValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Field.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.FieldMask.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.FloatValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Int32Value.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Int64Value.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.ListValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in interface com.google.protobuf.Message.Builder Merge some unknown fields into the UnknownFieldSet for this message. mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Method.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Mixin.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Option.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.SourceContext.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.StringValue.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Struct.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Timestamp.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Type.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.UInt32Value.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.UInt64Value.Builder mergeUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Value.Builder mergeValue(Any) - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. Message - Interface in com.google.protobuf Abstract interface implemented by Protocol Message objects. Message.Builder - Interface in com.google.protobuf Abstract interface implemented by Protocol Message builders. MESSAGE_SET_WIRE_FORMAT_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MessageOptions MESSAGE_TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto MessageLite - Interface in com.google.protobuf Abstract interface implemented by Protocol Message objects. MessageLite.Builder - Interface in com.google.protobuf Abstract interface implemented by Protocol Message builders. MessageLiteOrBuilder - Interface in com.google.protobuf Base interface for methods common to MessageLite and MessageLite.Builder to provide type equivalency. MessageOrBuilder - Interface in com.google.protobuf Base interface for methods common to Message and Message.Builder to provide type equivalency. Method - Class in com.google.protobuf Method represents a method of an API interface. Method.Builder - Class in com.google.protobuf Method represents a method of an API interface. METHOD_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto MethodOrBuilder - Interface in com.google.protobuf METHODS_FIELD_NUMBER - Static variable in class com.google.protobuf.Api MIN_VALUE - Static variable in class com.google.protobuf.util.Durations A constant holding the minimum valid Duration, approximately -10,000 years. MIN_VALUE - Static variable in class com.google.protobuf.util.Timestamps A constant holding the minimum valid Timestamp, :00Z. MINOR_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.Version Mixin - Class in com.google.protobuf Declares an API Interface to be included in this interface. Mixin.Builder - Class in com.google.protobuf Declares an API Interface to be included in this interface. MixinOrBuilder - Interface in com.google.protobuf MIXINS_FIELD_NUMBER - Static variable in class com.google.protobuf.Api multiply(Duration, double) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. multiply(Duration, long) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. mutableCopy() - Method in class com.google.protobuf.MapFieldLite Returns a deep copy of this map field. N NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Api NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Enum NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.EnumValue NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Field NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Method NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Mixin NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Option NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.Type NAME_PART_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart NANOS_FIELD_NUMBER - Static variable in class com.google.protobuf.Duration NANOS_FIELD_NUMBER - Static variable in class com.google.protobuf.Timestamp needsUtf8Check() - Method in class com.google.protobuf.Descriptors.FieldDescriptor For internal use only. NEGATIVE_INT_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption NESTED_TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto newBuilder() - Static method in class com.google.protobuf.Any newBuilder(Any) - Static method in class com.google.protobuf.Any newBuilder() - Static method in class com.google.protobuf.Api newBuilder(Api) - Static method in class com.google.protobuf.Api newBuilder() - Static method in class com.google.protobuf.BoolValue newBuilder(BoolValue) - Static method in class com.google.protobuf.BoolValue newBuilder() - Static method in class com.google.protobuf.BytesValue newBuilder(BytesValue) - Static method in class com.google.protobuf.BytesValue newBuilder() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest newBuilder(PluginProtos.CodeGeneratorRequest) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest newBuilder() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File newBuilder(PluginProtos.CodeGeneratorResponse.File) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File newBuilder() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse newBuilder(PluginProtos.CodeGeneratorResponse) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse newBuilder() - Static method in class com.google.protobuf.compiler.PluginProtos.Version newBuilder(PluginProtos.Version) - Static method in class com.google.protobuf.compiler.PluginProtos.Version newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange newBuilder(DescriptorProtos.DescriptorProto.ExtensionRange) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto newBuilder(DescriptorProtos.DescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange newBuilder(DescriptorProtos.DescriptorProto.ReservedRange) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange newBuilder(DescriptorProtos.EnumDescriptorProto.EnumReservedRange) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto newBuilder(DescriptorProtos.EnumDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions newBuilder(DescriptorProtos.EnumOptions) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto newBuilder(DescriptorProtos.EnumValueDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions newBuilder(DescriptorProtos.EnumValueOptions) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions newBuilder(DescriptorProtos.ExtensionRangeOptions) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto newBuilder(DescriptorProtos.FieldDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions newBuilder(DescriptorProtos.FieldOptions) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto newBuilder(DescriptorProtos.FileDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet newBuilder(DescriptorProtos.FileDescriptorSet) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.FileOptions newBuilder(DescriptorProtos.FileOptions) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation newBuilder(DescriptorProtos.GeneratedCodeInfo.Annotation) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo newBuilder(DescriptorProtos.GeneratedCodeInfo) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions newBuilder(DescriptorProtos.MessageOptions) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto newBuilder(DescriptorProtos.MethodDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions newBuilder(DescriptorProtos.MethodOptions) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto newBuilder(DescriptorProtos.OneofDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions newBuilder(DescriptorProtos.OneofOptions) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto newBuilder(DescriptorProtos.ServiceDescriptorProto) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions newBuilder(DescriptorProtos.ServiceOptions) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location newBuilder(DescriptorProtos.SourceCodeInfo.Location) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo newBuilder(DescriptorProtos.SourceCodeInfo) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart newBuilder(DescriptorProtos.UninterpretedOption.NamePart) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart newBuilder() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption newBuilder(DescriptorProtos.UninterpretedOption) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption newBuilder() - Static method in class com.google.protobuf.DoubleValue newBuilder(DoubleValue) - Static method in class com.google.protobuf.DoubleValue newBuilder() - Static method in class com.google.protobuf.Duration newBuilder(Duration) - Static method in class com.google.protobuf.Duration newBuilder(Descriptors.Descriptor) - Static method in class com.google.protobuf.DynamicMessage Construct a Message.Builder for the given type. newBuilder(Message) - Static method in class com.google.protobuf.DynamicMessage Construct a Message.Builder for a message of the same type as prototype, and initialize it with prototype's contents. newBuilder() - Static method in class com.google.protobuf.Empty newBuilder(Empty) - Static method in class com.google.protobuf.Empty newBuilder() - Static method in class com.google.protobuf.Enum newBuilder(Enum) - Static method in class com.google.protobuf.Enum newBuilder() - Static method in class com.google.protobuf.EnumValue newBuilder(EnumValue) - Static method in class com.google.protobuf.EnumValue newBuilder() - Static method in class com.google.protobuf.Field newBuilder(Field) - Static method in class com.google.protobuf.Field newBuilder() - Static method in class com.google.protobuf.FieldMask newBuilder(FieldMask) - Static method in class com.google.protobuf.FieldMask newBuilder() - Static method in class com.google.protobuf.FloatValue newBuilder(FloatValue) - Static method in class com.google.protobuf.FloatValue newBuilder() - Static method in class com.google.protobuf.Int32Value newBuilder(Int32Value) - Static method in class com.google.protobuf.Int32Value newBuilder() - Static method in class com.google.protobuf.Int64Value newBuilder(Int64Value) - Static method in class com.google.protobuf.Int64Value newBuilder() - Static method in class com.google.protobuf.ListValue newBuilder(ListValue) - Static method in class com.google.protobuf.ListValue newBuilder() - Static method in class com.google.protobuf.Method newBuilder(Method) - Static method in class com.google.protobuf.Method newBuilder() - Static method in class com.google.protobuf.Mixin newBuilder(Mixin) - Static method in class com.google.protobuf.Mixin newBuilder() - Static method in class com.google.protobuf.Option newBuilder(Option) - Static method in class com.google.protobuf.Option newBuilder() - Static method in class com.google.protobuf.SourceContext newBuilder(SourceContext) - Static method in class com.google.protobuf.SourceContext newBuilder() - Static method in class com.google.protobuf.StringValue newBuilder(StringValue) - Static method in class com.google.protobuf.StringValue newBuilder() - Static method in class com.google.protobuf.Struct newBuilder(Struct) - Static method in class com.google.protobuf.Struct newBuilder() - Static method in class com.google.protobuf.TextFormat.Parser Returns a new instance of TextFormat.Parser.Builder. newBuilder() - Static method in class com.google.protobuf.Timestamp newBuilder(Timestamp) - Static method in class com.google.protobuf.Timestamp newBuilder() - Static method in class com.google.protobuf.Type newBuilder(Type) - Static method in class com.google.protobuf.Type newBuilder() - Static method in class com.google.protobuf.TypeRegistry newBuilder() - Static method in class com.google.protobuf.UInt32Value newBuilder(UInt32Value) - Static method in class com.google.protobuf.UInt32Value newBuilder() - Static method in class com.google.protobuf.UInt64Value newBuilder(UInt64Value) - Static method in class com.google.protobuf.UInt64Value newBuilder() - Static method in class com.google.protobuf.util.JsonFormat.TypeRegistry newBuilder() - Static method in class com.google.protobuf.Value newBuilder(Value) - Static method in class com.google.protobuf.Value newBuilderForField(Descriptors.FieldDescriptor) - Method in class com.google.protobuf.DynamicMessage.Builder newBuilderForField(Descriptors.FieldDescriptor) - Method in interface com.google.protobuf.Message.Builder Create a builder for messages of the appropriate type for the given field. newBuilderForType() - Method in class com.google.protobuf.Any newBuilderForType() - Method in class com.google.protobuf.Api newBuilderForType() - Method in class com.google.protobuf.BoolValue newBuilderForType() - Method in class com.google.protobuf.BytesValue newBuilderForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest newBuilderForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File newBuilderForType() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse newBuilderForType() - Method in class com.google.protobuf.compiler.PluginProtos.Version newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.FileOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart newBuilderForType() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption newBuilderForType() - Method in class com.google.protobuf.DoubleValue newBuilderForType() - Method in class com.google.protobuf.Duration newBuilderForType() - Method in class com.google.protobuf.DynamicMessage newBuilderForType() - Method in class com.google.protobuf.Empty newBuilderForType() - Method in class com.google.protobuf.Enum newBuilderForType() - Method in class com.google.protobuf.EnumValue newBuilderForType() - Method in class com.google.protobuf.Field newBuilderForType() - Method in class com.google.protobuf.FieldMask newBuilderForType() - Method in class com.google.protobuf.FloatValue newBuilderForType() - Method in class com.google.protobuf.Int32Value newBuilderForType() - Method in class com.google.protobuf.Int64Value newBuilderForType() - Method in class com.google.protobuf.ListValue newBuilderForType() - Method in interface com.google.protobuf.Message newBuilderForType() - Method in interface com.google.protobuf.MessageLite Constructs a new builder for a message of the same type as this message. newBuilderForType() - Method in class com.google.protobuf.Method newBuilderForType() - Method in class com.google.protobuf.Mixin newBuilderForType() - Method in class com.google.protobuf.Option newBuilderForType() - Method in class com.google.protobuf.SourceContext newBuilderForType() - Method in class com.google.protobuf.StringValue newBuilderForType() - Method in class com.google.protobuf.Struct newBuilderForType() - Method in class com.google.protobuf.Timestamp newBuilderForType() - Method in class com.google.protobuf.Type newBuilderForType() - Method in class com.google.protobuf.UInt32Value newBuilderForType() - Method in class com.google.protobuf.UInt64Value newBuilderForType() - Method in class com.google.protobuf.Value newCodedInput() - Method in class com.google.protobuf.ByteString Creates a CodedInputStream which can be used to read the bytes. newInput() - Method in class com.google.protobuf.ByteString Creates an InputStream which can be used to read the bytes. newInstance(InputStream) - Static method in class com.google.protobuf.CodedInputStream Create a new CodedInputStream wrapping the given InputStream. newInstance(InputStream, int) - Static method in class com.google.protobuf.CodedInputStream Create a new CodedInputStream wrapping the given InputStream, with a specified buffer size. newInstance(Iterable<ByteBuffer>) - Static method in class com.google.protobuf.CodedInputStream Create a new CodedInputStream wrapping the given Iterable <ByteBuffer>. newInstance(byte[]) - Static method in class com.google.protobuf.CodedInputStream Create a new CodedInputStream wrapping the given byte array. newInstance(byte[], int, int) - Static method in class com.google.protobuf.CodedInputStream Create a new CodedInputStream wrapping the given byte array slice. newInstance(ByteBuffer) - Static method in class com.google.protobuf.CodedInputStream Create a new CodedInputStream wrapping the given ByteBuffer. newInstance(OutputStream) - Static method in class com.google.protobuf.CodedOutputStream Create a new CodedOutputStream wrapping the given OutputStream. newInstance(OutputStream, int) - Static method in class com.google.protobuf.CodedOutputStream Create a new CodedOutputStream wrapping the given OutputStream with a given buffer size. newInstance(byte[]) - Static method in class com.google.protobuf.CodedOutputStream Create a new CodedOutputStream that writes directly to the given byte array. newInstance(byte[], int, int) - Static method in class com.google.protobuf.CodedOutputStream Create a new CodedOutputStream that writes directly to the given byte array slice. newInstance(ByteBuffer) - Static method in class com.google.protobuf.CodedOutputStream Create a new CodedOutputStream that writes to the given ByteBuffer. newInstance(ByteBuffer, int) - Static method in class com.google.protobuf.CodedOutputStream Deprecated. the size parameter is no longer used since use of an internal buffer is useless (and wasteful) when writing to a ByteBuffer. Use CodedOutputStream.newInstance(ByteBuffer) instead. newInstance() - Static method in class com.google.protobuf.ExtensionRegistry Construct a new, empty instance. newInstance() - Static method in class com.google.protobuf.ExtensionRegistryLite Construct a new, empty instance. newMapField(MapEntry<K, V>) - Static method in class com.google.protobuf.MapField Creates a new mutable empty MapField. newOneTimeCallback(RpcCallback<ParameterType>) - Static method in class com.google.protobuf.RpcUtil Creates a callback which can only be called once. newOutput(int) - Static method in class com.google.protobuf.ByteString Creates a new ByteString.Output with the given initial capacity. newOutput() - Static method in class com.google.protobuf.ByteString Creates a new ByteString.Output. nextByte() - Method in interface com.google.protobuf.ByteString.ByteIterator An alternative to Iterator.next() that returns an unboxed primitive byte. NO_SIDE_EFFECTS_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel implies idempotent NO_STANDARD_DESCRIPTOR_ACCESSOR_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MessageOptions normalize(FieldMask) - Static method in class com.google.protobuf.util.FieldMaskUtil Converts a FieldMask to its canonical form. notifyOnCancel(RpcCallback<Object>) - Method in interface com.google.protobuf.RpcController Asks that the given callback be called when the RPC is canceled. NULL_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Value NULL_VALUE_VALUE - Static variable in enum com.google.protobuf.NullValue Null value. NullValue - Enum in com.google.protobuf `NullValue` is a singleton enumeration to represent the null value for the `Value` type union. NUMBER_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto NUMBER_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto NUMBER_FIELD_NUMBER - Static variable in class com.google.protobuf.EnumValue NUMBER_FIELD_NUMBER - Static variable in class com.google.protobuf.Field NUMBER_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Value O OBJC_CLASS_PREFIX_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions of(boolean) - Static method in class com.google.protobuf.BoolValue of(ByteString) - Static method in class com.google.protobuf.BytesValue of(double) - Static method in class com.google.protobuf.DoubleValue of(float) - Static method in class com.google.protobuf.FloatValue of(int) - Static method in class com.google.protobuf.Int32Value of(long) - Static method in class com.google.protobuf.Int64Value of(String) - Static method in class com.google.protobuf.StringValue of(int) - Static method in class com.google.protobuf.UInt32Value of(long) - Static method in class com.google.protobuf.UInt64Value of(String, Value) - Static method in class com.google.protobuf.util.Structs Returns a struct containing the key-value pair. of(String, Value, String, Value) - Static method in class com.google.protobuf.util.Structs Returns a struct containing each of the key-value pairs. of(String, Value, String, Value, String, Value) - Static method in class com.google.protobuf.util.Structs Returns a struct containing each of the key-value pairs. of(boolean) - Static method in class com.google.protobuf.util.Values Returns a Value object with number set to value. of(double) - Static method in class com.google.protobuf.util.Values Returns a Value object with number set to value. of(String) - Static method in class com.google.protobuf.util.Values Returns a Value object with string set to value. of(Struct) - Static method in class com.google.protobuf.util.Values Returns a Value object with struct set to value. of(ListValue) - Static method in class com.google.protobuf.util.Values Returns a Value with ListValue set to value. of(Iterable<Value>) - Static method in class com.google.protobuf.util.Values Returns a Value with ListValue set to the appending the result of calling Values.of(boolean) on each element in the iterable. ofNull() - Static method in class com.google.protobuf.util.Values omittingInsignificantWhitespace() - Method in class com.google.protobuf.util.JsonFormat.Printer Create a new JsonFormat.Printer that will omit all insignificant whitespace in the JSON output. ONEOF_DECL_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto ONEOF_INDEX_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto ONEOF_INDEX_FIELD_NUMBER - Static variable in class com.google.protobuf.Field ONEOFS_FIELD_NUMBER - Static variable in class com.google.protobuf.Type OPTIMIZE_FOR_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions Option - Class in com.google.protobuf A protocol buffer option, which can be attached to a message, field, enumeration, etc. Option.Builder - Class in com.google.protobuf A protocol buffer option, which can be attached to a message, field, enumeration, etc. OptionOrBuilder - Interface in com.google.protobuf OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.Api OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.Enum OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.EnumValue OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.Field OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.Method OPTIONS_FIELD_NUMBER - Static variable in class com.google.protobuf.Type OUTPUT_TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto P pack(T) - Static method in class com.google.protobuf.Any pack(T, String) - Static method in class com.google.protobuf.Any Packs a message using the given type URL prefix. PACKAGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto PACKED_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions PACKED_FIELD_NUMBER - Static variable in class com.google.protobuf.Field PARAMETER_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parse(CharSequence, Class<T>) - Static method in class com.google.protobuf.TextFormat Parse a text-format message from input. parse(CharSequence, ExtensionRegistry, Class<T>) - Static method in class com.google.protobuf.TextFormat Parse a text-format message from input. parse(String) - Static method in class com.google.protobuf.util.Durations Parse from a string to produce a duration. parse(String) - Static method in class com.google.protobuf.util.Timestamps Parse from RFC 3339 date string to Timestamp. parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseDelimitedFrom(InputStream) - Method in class com.google.protobuf.AbstractParser parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Any parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Any parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Api parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Api parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.BoolValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.BoolValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.BytesValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.BytesValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.DoubleValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DoubleValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Duration parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Duration parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Empty parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Empty parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Enum parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Enum parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.EnumValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.EnumValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Field parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Field parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.FieldMask parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMask parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.FloatValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.FloatValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Int32Value parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int32Value parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Int64Value parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int64Value parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.ListValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.ListValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Method parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Method parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Mixin parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Mixin parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Option parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Option parseDelimitedFrom(InputStream) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(InputStream), but does not read until EOF. parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseDelimitedFrom(InputStream) but supporting extensions. parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.SourceContext parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContext parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.StringValue parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.StringValue parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Struct parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Struct parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Timestamp parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Timestamp parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Type parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Type parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.UInt32Value parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt32Value parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.UInt64Value parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt64Value parseDelimitedFrom(InputStream) - Static method in class com.google.protobuf.Value parseDelimitedFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Value parseDuration(String) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.parse(java.lang.String) instead. ParseException(String) - Constructor for exception com.google.protobuf.TextFormat.ParseException Create a new instance, with -1 as the line and column numbers. ParseException(int, int, String) - Constructor for exception com.google.protobuf.TextFormat.ParseException Create a new instance parseFrom(CodedInputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseFrom(CodedInputStream) - Method in class com.google.protobuf.AbstractParser parseFrom(ByteString, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseFrom(ByteString) - Method in class com.google.protobuf.AbstractParser parseFrom(ByteBuffer, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseFrom(ByteBuffer) - Method in class com.google.protobuf.AbstractParser parseFrom(byte[], int, int, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseFrom(byte[], int, int) - Method in class com.google.protobuf.AbstractParser parseFrom(byte[], ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseFrom(byte[]) - Method in class com.google.protobuf.AbstractParser parseFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parseFrom(InputStream) - Method in class com.google.protobuf.AbstractParser parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Any parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Any parseFrom(ByteString) - Static method in class com.google.protobuf.Any parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Any parseFrom(byte[]) - Static method in class com.google.protobuf.Any parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Any parseFrom(InputStream) - Static method in class com.google.protobuf.Any parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Any parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Any parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Any parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Api parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Api parseFrom(ByteString) - Static method in class com.google.protobuf.Api parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Api parseFrom(byte[]) - Static method in class com.google.protobuf.Api parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Api parseFrom(InputStream) - Static method in class com.google.protobuf.Api parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Api parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Api parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Api parseFrom(ByteBuffer) - Static method in class com.google.protobuf.BoolValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.BoolValue parseFrom(ByteString) - Static method in class com.google.protobuf.BoolValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.BoolValue parseFrom(byte[]) - Static method in class com.google.protobuf.BoolValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.BoolValue parseFrom(InputStream) - Static method in class com.google.protobuf.BoolValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.BoolValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.BoolValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.BoolValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.BytesValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.BytesValue parseFrom(ByteString) - Static method in class com.google.protobuf.BytesValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.BytesValue parseFrom(byte[]) - Static method in class com.google.protobuf.BytesValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.BytesValue parseFrom(InputStream) - Static method in class com.google.protobuf.BytesValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.BytesValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.BytesValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.BytesValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(ByteString) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(byte[]) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(CodedInputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest parseFrom(ByteBuffer) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(ByteString) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(byte[]) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(CodedInputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File parseFrom(ByteBuffer) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(ByteString) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(byte[]) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(CodedInputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse parseFrom(ByteBuffer) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(ByteString) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(byte[]) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(InputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(CodedInputStream) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos.Version parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.FileOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(ByteString) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(byte[]) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(InputStream) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parseFrom(ByteBuffer) - Static method in class com.google.protobuf.DoubleValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.DoubleValue parseFrom(ByteString) - Static method in class com.google.protobuf.DoubleValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.DoubleValue parseFrom(byte[]) - Static method in class com.google.protobuf.DoubleValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.DoubleValue parseFrom(InputStream) - Static method in class com.google.protobuf.DoubleValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DoubleValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.DoubleValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.DoubleValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Duration parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Duration parseFrom(ByteString) - Static method in class com.google.protobuf.Duration parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Duration parseFrom(byte[]) - Static method in class com.google.protobuf.Duration parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Duration parseFrom(InputStream) - Static method in class com.google.protobuf.Duration parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Duration parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Duration parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Duration parseFrom(Descriptors.Descriptor, CodedInputStream) - Static method in class com.google.protobuf.DynamicMessage Parse a message of the given type from the given input stream. parseFrom(Descriptors.Descriptor, CodedInputStream, ExtensionRegistry) - Static method in class com.google.protobuf.DynamicMessage Parse a message of the given type from the given input stream. parseFrom(Descriptors.Descriptor, ByteString) - Static method in class com.google.protobuf.DynamicMessage Parse data as a message of the given type and return it. parseFrom(Descriptors.Descriptor, ByteString, ExtensionRegistry) - Static method in class com.google.protobuf.DynamicMessage Parse data as a message of the given type and return it. parseFrom(Descriptors.Descriptor, byte[]) - Static method in class com.google.protobuf.DynamicMessage Parse data as a message of the given type and return it. parseFrom(Descriptors.Descriptor, byte[], ExtensionRegistry) - Static method in class com.google.protobuf.DynamicMessage Parse data as a message of the given type and return it. parseFrom(Descriptors.Descriptor, InputStream) - Static method in class com.google.protobuf.DynamicMessage Parse a message of the given type from input and return it. parseFrom(Descriptors.Descriptor, InputStream, ExtensionRegistry) - Static method in class com.google.protobuf.DynamicMessage Parse a message of the given type from input and return it. parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Empty parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Empty parseFrom(ByteString) - Static method in class com.google.protobuf.Empty parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Empty parseFrom(byte[]) - Static method in class com.google.protobuf.Empty parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Empty parseFrom(InputStream) - Static method in class com.google.protobuf.Empty parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Empty parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Empty parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Empty parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Enum parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Enum parseFrom(ByteString) - Static method in class com.google.protobuf.Enum parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Enum parseFrom(byte[]) - Static method in class com.google.protobuf.Enum parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Enum parseFrom(InputStream) - Static method in class com.google.protobuf.Enum parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Enum parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Enum parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Enum parseFrom(ByteBuffer) - Static method in class com.google.protobuf.EnumValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.EnumValue parseFrom(ByteString) - Static method in class com.google.protobuf.EnumValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.EnumValue parseFrom(byte[]) - Static method in class com.google.protobuf.EnumValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.EnumValue parseFrom(InputStream) - Static method in class com.google.protobuf.EnumValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.EnumValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.EnumValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.EnumValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Field parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Field parseFrom(ByteString) - Static method in class com.google.protobuf.Field parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Field parseFrom(byte[]) - Static method in class com.google.protobuf.Field parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Field parseFrom(InputStream) - Static method in class com.google.protobuf.Field parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Field parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Field parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Field parseFrom(ByteBuffer) - Static method in class com.google.protobuf.FieldMask parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMask parseFrom(ByteString) - Static method in class com.google.protobuf.FieldMask parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMask parseFrom(byte[]) - Static method in class com.google.protobuf.FieldMask parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMask parseFrom(InputStream) - Static method in class com.google.protobuf.FieldMask parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMask parseFrom(CodedInputStream) - Static method in class com.google.protobuf.FieldMask parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMask parseFrom(ByteBuffer) - Static method in class com.google.protobuf.FloatValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.FloatValue parseFrom(ByteString) - Static method in class com.google.protobuf.FloatValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.FloatValue parseFrom(byte[]) - Static method in class com.google.protobuf.FloatValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.FloatValue parseFrom(InputStream) - Static method in class com.google.protobuf.FloatValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.FloatValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.FloatValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.FloatValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Int32Value parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int32Value parseFrom(ByteString) - Static method in class com.google.protobuf.Int32Value parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int32Value parseFrom(byte[]) - Static method in class com.google.protobuf.Int32Value parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Int32Value parseFrom(InputStream) - Static method in class com.google.protobuf.Int32Value parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int32Value parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Int32Value parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int32Value parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Int64Value parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int64Value parseFrom(ByteString) - Static method in class com.google.protobuf.Int64Value parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int64Value parseFrom(byte[]) - Static method in class com.google.protobuf.Int64Value parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Int64Value parseFrom(InputStream) - Static method in class com.google.protobuf.Int64Value parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int64Value parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Int64Value parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Int64Value parseFrom(ByteBuffer) - Static method in class com.google.protobuf.ListValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.ListValue parseFrom(ByteString) - Static method in class com.google.protobuf.ListValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.ListValue parseFrom(byte[]) - Static method in class com.google.protobuf.ListValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.ListValue parseFrom(InputStream) - Static method in class com.google.protobuf.ListValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.ListValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.ListValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.ListValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Method parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Method parseFrom(ByteString) - Static method in class com.google.protobuf.Method parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Method parseFrom(byte[]) - Static method in class com.google.protobuf.Method parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Method parseFrom(InputStream) - Static method in class com.google.protobuf.Method parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Method parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Method parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Method parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Mixin parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Mixin parseFrom(ByteString) - Static method in class com.google.protobuf.Mixin parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Mixin parseFrom(byte[]) - Static method in class com.google.protobuf.Mixin parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Mixin parseFrom(InputStream) - Static method in class com.google.protobuf.Mixin parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Mixin parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Mixin parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Mixin parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Option parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Option parseFrom(ByteString) - Static method in class com.google.protobuf.Option parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Option parseFrom(byte[]) - Static method in class com.google.protobuf.Option parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Option parseFrom(InputStream) - Static method in class com.google.protobuf.Option parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Option parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Option parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Option parseFrom(CodedInputStream) - Method in interface com.google.protobuf.Parser Parses a message of MessageType from the input. parseFrom(CodedInputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(CodedInputStream), but also parses extensions. parseFrom(ByteBuffer) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(ByteBuffer, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(ByteString) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(ByteString, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(byte[], int, int) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(byte[], int, int, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(byte[]) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(byte[], ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Parses data as a message of MessageType. parseFrom(InputStream) - Method in interface com.google.protobuf.Parser Parse a message of MessageType from input. parseFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Parses a message of MessageType from input. parseFrom(ByteBuffer) - Static method in class com.google.protobuf.SourceContext parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContext parseFrom(ByteString) - Static method in class com.google.protobuf.SourceContext parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContext parseFrom(byte[]) - Static method in class com.google.protobuf.SourceContext parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContext parseFrom(InputStream) - Static method in class com.google.protobuf.SourceContext parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContext parseFrom(CodedInputStream) - Static method in class com.google.protobuf.SourceContext parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContext parseFrom(ByteBuffer) - Static method in class com.google.protobuf.StringValue parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.StringValue parseFrom(ByteString) - Static method in class com.google.protobuf.StringValue parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.StringValue parseFrom(byte[]) - Static method in class com.google.protobuf.StringValue parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.StringValue parseFrom(InputStream) - Static method in class com.google.protobuf.StringValue parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.StringValue parseFrom(CodedInputStream) - Static method in class com.google.protobuf.StringValue parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.StringValue parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Struct parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Struct parseFrom(ByteString) - Static method in class com.google.protobuf.Struct parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Struct parseFrom(byte[]) - Static method in class com.google.protobuf.Struct parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Struct parseFrom(InputStream) - Static method in class com.google.protobuf.Struct parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Struct parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Struct parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Struct parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Timestamp parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Timestamp parseFrom(ByteString) - Static method in class com.google.protobuf.Timestamp parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Timestamp parseFrom(byte[]) - Static method in class com.google.protobuf.Timestamp parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Timestamp parseFrom(InputStream) - Static method in class com.google.protobuf.Timestamp parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Timestamp parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Timestamp parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Timestamp parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Type parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Type parseFrom(ByteString) - Static method in class com.google.protobuf.Type parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Type parseFrom(byte[]) - Static method in class com.google.protobuf.Type parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Type parseFrom(InputStream) - Static method in class com.google.protobuf.Type parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Type parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Type parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Type parseFrom(ByteBuffer) - Static method in class com.google.protobuf.UInt32Value parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt32Value parseFrom(ByteString) - Static method in class com.google.protobuf.UInt32Value parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt32Value parseFrom(byte[]) - Static method in class com.google.protobuf.UInt32Value parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt32Value parseFrom(InputStream) - Static method in class com.google.protobuf.UInt32Value parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt32Value parseFrom(CodedInputStream) - Static method in class com.google.protobuf.UInt32Value parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt32Value parseFrom(ByteBuffer) - Static method in class com.google.protobuf.UInt64Value parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt64Value parseFrom(ByteString) - Static method in class com.google.protobuf.UInt64Value parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt64Value parseFrom(byte[]) - Static method in class com.google.protobuf.UInt64Value parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt64Value parseFrom(InputStream) - Static method in class com.google.protobuf.UInt64Value parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt64Value parseFrom(CodedInputStream) - Static method in class com.google.protobuf.UInt64Value parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.UInt64Value parseFrom(ByteBuffer) - Static method in class com.google.protobuf.Value parseFrom(ByteBuffer, ExtensionRegistryLite) - Static method in class com.google.protobuf.Value parseFrom(ByteString) - Static method in class com.google.protobuf.Value parseFrom(ByteString, ExtensionRegistryLite) - Static method in class com.google.protobuf.Value parseFrom(byte[]) - Static method in class com.google.protobuf.Value parseFrom(byte[], ExtensionRegistryLite) - Static method in class com.google.protobuf.Value parseFrom(InputStream) - Static method in class com.google.protobuf.Value parseFrom(InputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Value parseFrom(CodedInputStream) - Static method in class com.google.protobuf.Value parseFrom(CodedInputStream, ExtensionRegistryLite) - Static method in class com.google.protobuf.Value parsePartialDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parsePartialDelimitedFrom(InputStream) - Method in class com.google.protobuf.AbstractParser parsePartialDelimitedFrom(InputStream) - Method in interface com.google.protobuf.Parser Like Parser.parseDelimitedFrom(InputStream), but does not throw an exception if the message is missing required fields. parsePartialDelimitedFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseDelimitedFrom(InputStream, ExtensionRegistryLite), but does not throw an exception if the message is missing required fields. parsePartialFrom(CodedInputStream) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(ByteString, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(ByteString) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(byte[], int, int, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(byte[], int, int) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(byte[], ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(byte[]) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(InputStream, ExtensionRegistryLite) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(InputStream) - Method in class com.google.protobuf.AbstractParser parsePartialFrom(CodedInputStream) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(CodedInputStream), but does not throw an exception if the message is missing required fields. parsePartialFrom(CodedInputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(CodedInputStream input, ExtensionRegistryLite), but does not throw an exception if the message is missing required fields. parsePartialFrom(ByteString) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(ByteString), but does not throw an exception if the message is missing required fields. parsePartialFrom(ByteString, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(ByteString, ExtensionRegistryLite), but does not throw an exception if the message is missing required fields. parsePartialFrom(byte[], int, int) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(byte[], int, int), but does not throw an exception if the message is missing required fields. parsePartialFrom(byte[], int, int, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(ByteString, ExtensionRegistryLite), but does not throw an exception if the message is missing required fields. parsePartialFrom(byte[]) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(byte[]), but does not throw an exception if the message is missing required fields. parsePartialFrom(byte[], ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(byte[], ExtensionRegistryLite), but does not throw an exception if the message is missing required fields. parsePartialFrom(InputStream) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(InputStream), but does not throw an exception if the message is missing required fields. parsePartialFrom(InputStream, ExtensionRegistryLite) - Method in interface com.google.protobuf.Parser Like Parser.parseFrom(InputStream, ExtensionRegistryLite), but does not throw an exception if the message is missing required fields. parser() - Static method in class com.google.protobuf.Any parser() - Static method in class com.google.protobuf.Api parser() - Static method in class com.google.protobuf.BoolValue parser() - Static method in class com.google.protobuf.BytesValue PARSER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest Deprecated. parser() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest PARSER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File Deprecated. parser() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File PARSER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse Deprecated. parser() - Static method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse PARSER - Static variable in class com.google.protobuf.compiler.PluginProtos.Version Deprecated. parser() - Static method in class com.google.protobuf.compiler.PluginProtos.Version PARSER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange PARSER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange PARSER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange PARSER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.EnumOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.EnumOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.EnumValueOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.FieldOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorSet Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet PARSER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.FileOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation PARSER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo PARSER - Static variable in class com.google.protobuf.DescriptorProtos.MessageOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.MessageOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.MethodOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.MethodOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.OneofOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.OneofOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto PARSER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceOptions Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.ServiceOptions PARSER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location PARSER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo PARSER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart PARSER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption Deprecated. parser() - Static method in class com.google.protobuf.DescriptorProtos.UninterpretedOption parser() - Static method in class com.google.protobuf.DoubleValue parser() - Static method in class com.google.protobuf.Duration parser() - Static method in class com.google.protobuf.Empty parser() - Static method in class com.google.protobuf.Enum parser() - Static method in class com.google.protobuf.EnumValue parser() - Static method in class com.google.protobuf.Field parser() - Static method in class com.google.protobuf.FieldMask parser() - Static method in class com.google.protobuf.FloatValue parser() - Static method in class com.google.protobuf.Int32Value parser() - Static method in class com.google.protobuf.Int64Value parser() - Static method in class com.google.protobuf.ListValue parser() - Static method in class com.google.protobuf.Method parser() - Static method in class com.google.protobuf.Mixin parser() - Static method in class com.google.protobuf.Option Parser<MessageType> - Interface in com.google.protobuf Abstract interface for parsing Protocol Messages. parser() - Static method in class com.google.protobuf.SourceContext parser() - Static method in class com.google.protobuf.StringValue parser() - Static method in class com.google.protobuf.Struct parser() - Static method in class com.google.protobuf.Timestamp parser() - Static method in class com.google.protobuf.Type parser() - Static method in class com.google.protobuf.UInt32Value parser() - Static method in class com.google.protobuf.UInt64Value parser() - Static method in class com.google.protobuf.util.JsonFormat Creates a JsonFormat.Parser with default configuration. parser() - Static method in class com.google.protobuf.Value parseTimestamp(String) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.parse(java.lang.String) instead. PATCH_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.Version PATH_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation PATH_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location PATHS_FIELD_NUMBER - Static variable in class com.google.protobuf.FieldMask PHP_CLASS_PREFIX_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions PHP_GENERIC_SERVICES_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions PHP_METADATA_NAMESPACE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions PHP_NAMESPACE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions PluginProtos - Class in com.google.protobuf.compiler PluginProtos.CodeGeneratorRequest - Class in com.google.protobuf.compiler An encoded CodeGeneratorRequest is written to the plugin's stdin. PluginProtos.CodeGeneratorRequest.Builder - Class in com.google.protobuf.compiler An encoded CodeGeneratorRequest is written to the plugin's stdin. PluginProtos.CodeGeneratorRequestOrBuilder - Interface in com.google.protobuf.compiler PluginProtos.CodeGeneratorResponse - Class in com.google.protobuf.compiler The plugin writes an encoded CodeGeneratorResponse to stdout. PluginProtos.CodeGeneratorResponse.Builder - Class in com.google.protobuf.compiler The plugin writes an encoded CodeGeneratorResponse to stdout. PluginProtos.CodeGeneratorResponse.Feature - Enum in com.google.protobuf.compiler Sync with code_generator.h. PluginProtos.CodeGeneratorResponse.File - Class in com.google.protobuf.compiler Represents a single generated file. PluginProtos.CodeGeneratorResponse.File.Builder - Class in com.google.protobuf.compiler Represents a single generated file. PluginProtos.CodeGeneratorResponse.FileOrBuilder - Interface in com.google.protobuf.compiler PluginProtos.CodeGeneratorResponseOrBuilder - Interface in com.google.protobuf.compiler PluginProtos.Version - Class in com.google.protobuf.compiler The version number of protocol compiler. PluginProtos.Version.Builder - Class in com.google.protobuf.compiler The version number of protocol compiler. PluginProtos.VersionOrBuilder - Interface in com.google.protobuf.compiler popLimit(int) - Method in class com.google.protobuf.CodedInputStream Discards the current limit, returning to the previous limit. POSITIVE_INT_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption preservingProtoFieldNames() - Method in class com.google.protobuf.util.JsonFormat.Printer Creates a new JsonFormat.Printer that is configured to use the original proto field names as defined in the .proto file rather than converting them to lowerCamelCase. print(MessageOrBuilder, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().print(MessageOrBuilder, Appendable) print(UnknownFieldSet, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().print(UnknownFieldSet, Appendable) print(MessageOrBuilder, Appendable) - Method in class com.google.protobuf.TextFormat.Printer Outputs a textual representation of the Protocol Message supplied into the parameter output. print(UnknownFieldSet, Appendable) - Method in class com.google.protobuf.TextFormat.Printer Outputs a textual representation of fields to output. print(MessageOrBuilder) - Method in class com.google.protobuf.util.JsonFormat.Printer Converts a protobuf message to JSON format. printer() - Static method in class com.google.protobuf.TextFormat Printer instance which escapes non-ASCII characters. printer() - Static method in class com.google.protobuf.util.JsonFormat Creates a JsonFormat.Printer with default configurations. printField(Descriptors.FieldDescriptor, Object, Appendable) - Method in class com.google.protobuf.TextFormat.Printer printField(Descriptors.FieldDescriptor, Object, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().printField(FieldDescriptor, Object, Appendable) printFieldToString(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.TextFormat.Printer printFieldToString(Descriptors.FieldDescriptor, Object) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().printFieldToString(FieldDescriptor, Object) printFieldValue(Descriptors.FieldDescriptor, Object, Appendable) - Method in class com.google.protobuf.TextFormat.Printer Outputs a textual representation of the value of given field value. printFieldValue(Descriptors.FieldDescriptor, Object, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().printFieldValue(FieldDescriptor, Object, Appendable) printingEnumsAsInts() - Method in class com.google.protobuf.util.JsonFormat.Printer Creates a new JsonFormat.Printer that will print enum field values as integers instead of as string. printToString(MessageOrBuilder) - Method in class com.google.protobuf.TextFormat.Printer Like print(), but writes directly to a String and returns it. printToString(UnknownFieldSet) - Method in class com.google.protobuf.TextFormat.Printer Like print(), but writes directly to a String and returns it. printToString(MessageOrBuilder) - Static method in class com.google.protobuf.TextFormat Deprecated. Use message.toString() printToString(UnknownFieldSet) - Static method in class com.google.protobuf.TextFormat Deprecated. Use UnknownFieldSet.toString() printToUnicodeString(MessageOrBuilder) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().escapingNonAscii(false).printToString(MessageOrBuilder) printToUnicodeString(UnknownFieldSet) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().escapingNonAscii(false).printToString(UnknownFieldSet) printUnicode(MessageOrBuilder, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().escapingNonAscii(false).print(MessageOrBuilder, Appendable) printUnicode(UnknownFieldSet, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().escapingNonAscii(false).print(UnknownFieldSet, Appendable) printUnicodeFieldValue(Descriptors.FieldDescriptor, Object, Appendable) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().escapingNonAscii(false).printFieldValue(FieldDescriptor, Object, Appendable) printUnknownFieldValue(int, Object, Appendable) - Static method in class com.google.protobuf.TextFormat Outputs a textual representation of the value of an unknown field. PROTO3_OPTIONAL_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto PROTO_FILE_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest ProtocolMessageEnum - Interface in com.google.protobuf Interface of useful methods added to all enums generated by the protocol compiler. ProtocolStringList - Interface in com.google.protobuf An interface extending List<String> used for repeated string fields to provide optional access to the data as a list of ByteStrings. ProtoSyntax - Enum in com.google.protobuf Represents the syntax version of the message. PUBLIC_DEPENDENCY_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto pushLimit(int) - Method in class com.google.protobuf.CodedInputStream Sets currentLimit to (current position) + byteLimit. put(K, V) - Method in class com.google.protobuf.MapFieldLite put(Map.Entry<K, V>) - Method in class com.google.protobuf.MapFieldLite putAll(Map<? extends K, ? extends V>) - Method in class com.google.protobuf.MapFieldLite putAllFields(Map<String, Value>) - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. putFields(String, Value) - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. PY_GENERIC_SERVICES_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions R readBool() - Method in class com.google.protobuf.CodedInputStream Read a bool field value from the stream. readByteArray() - Method in class com.google.protobuf.CodedInputStream Read a bytes field value from the stream. readByteBuffer() - Method in class com.google.protobuf.CodedInputStream Read a bytes field value from the stream. readBytes() - Method in class com.google.protobuf.CodedInputStream Read a bytes field value from the stream. readDouble() - Method in class com.google.protobuf.CodedInputStream Read a double field value from the stream. readEnum() - Method in class com.google.protobuf.CodedInputStream Read an enum field value from the stream. readFixed32() - Method in class com.google.protobuf.CodedInputStream Read a fixed32 field value from the stream. readFixed64() - Method in class com.google.protobuf.CodedInputStream Read a fixed64 field value from the stream. readFloat() - Method in class com.google.protobuf.CodedInputStream Read a float field value from the stream. readFrom(InputStream) - Static method in class com.google.protobuf.ByteString Completely reads the given stream's bytes into a ByteString, blocking if necessary until all bytes are read through to the end of the stream. readFrom(InputStream, int) - Static method in class com.google.protobuf.ByteString Completely reads the given stream's bytes into a ByteString, blocking if necessary until all bytes are read through to the end of the stream. readFrom(InputStream, int, int) - Static method in class com.google.protobuf.ByteString readGroup(int, MessageLite.Builder, ExtensionRegistryLite) - Method in class com.google.protobuf.CodedInputStream Read a group field value from the stream. readGroup(int, Parser<T>, ExtensionRegistryLite) - Method in class com.google.protobuf.CodedInputStream Read a group field value from the stream. readInt32() - Method in class com.google.protobuf.CodedInputStream Read an int32 field value from the stream. readInt64() - Method in class com.google.protobuf.CodedInputStream Read an int64 field value from the stream. readMessage(MessageLite.Builder, ExtensionRegistryLite) - Method in class com.google.protobuf.CodedInputStream Read an embedded message field value from the stream. readMessage(Parser<T>, ExtensionRegistryLite) - Method in class com.google.protobuf.CodedInputStream Read an embedded message field value from the stream. readRawByte() - Method in class com.google.protobuf.CodedInputStream Read one byte from the input. readRawBytes(int) - Method in class com.google.protobuf.CodedInputStream Read a fixed size of bytes from the input. readRawLittleEndian32() - Method in class com.google.protobuf.CodedInputStream Read a 32-bit little-endian integer from the stream. readRawLittleEndian64() - Method in class com.google.protobuf.CodedInputStream Read a 64-bit little-endian integer from the stream. readRawVarint32() - Method in class com.google.protobuf.CodedInputStream Read a raw Varint from the stream. readRawVarint32(int, InputStream) - Static method in class com.google.protobuf.CodedInputStream Like CodedInputStream.readRawVarint32(InputStream), but expects that the caller has already read one byte. readRawVarint64() - Method in class com.google.protobuf.CodedInputStream Read a raw Varint from the stream. readSFixed32() - Method in class com.google.protobuf.CodedInputStream Read an sfixed32 field value from the stream. readSFixed64() - Method in class com.google.protobuf.CodedInputStream Read an sfixed64 field value from the stream. readSInt32() - Method in class com.google.protobuf.CodedInputStream Read an sint32 field value from the stream. readSInt64() - Method in class com.google.protobuf.CodedInputStream Read an sint64 field value from the stream. readString() - Method in class com.google.protobuf.CodedInputStream Read a string field value from the stream. readStringRequireUtf8() - Method in class com.google.protobuf.CodedInputStream Read a string field value from the stream. readTag() - Method in class com.google.protobuf.CodedInputStream Attempt to read a field tag, returning zero if we have reached EOF. readUInt32() - Method in class com.google.protobuf.CodedInputStream Read a uint32 field value from the stream. readUInt64() - Method in class com.google.protobuf.CodedInputStream Read a uint64 field value from the stream. readUnknownGroup(int, MessageLite.Builder) - Method in class com.google.protobuf.CodedInputStream Deprecated. UnknownFieldSet.Builder now implements MessageLite.Builder, so you can just call CodedInputStream.readGroup(int, com.google.protobuf.MessageLite.Builder, com.google.protobuf.ExtensionRegistryLite). registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.AnyProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.AnyProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.ApiProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.ApiProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.compiler.PluginProtos registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.compiler.PluginProtos registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.DescriptorProtos registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.DescriptorProtos registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.DurationProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.DurationProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.EmptyProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.EmptyProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.FieldMaskProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.FieldMaskProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.SourceContextProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.SourceContextProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.StructProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.StructProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.TimestampProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.TimestampProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.TypeProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.TypeProto registerAllExtensions(ExtensionRegistryLite) - Static method in class com.google.protobuf.WrappersProto registerAllExtensions(ExtensionRegistry) - Static method in class com.google.protobuf.WrappersProto remainder(Duration, Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. remove(Object) - Method in class com.google.protobuf.MapFieldLite removeAnnotation(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. removeEnumType(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; removeEnumType(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; removeEnumvalue(int) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. removeExtension(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; removeExtension(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; removeExtensionRange(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; removeField(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; removeFields(String) - Method in class com.google.protobuf.Struct.Builder Unordered map of dynamically typed values. removeFields(int) - Method in class com.google.protobuf.Type.Builder The list of fields. removeFile(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; removeFile(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; removeLocation(int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. removeMessageType(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. removeMethod(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; removeMethods(int) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. removeMixins(int) - Method in class com.google.protobuf.Api.Builder Included interfaces. removeName(int) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; removeNestedType(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; removeOneofDecl(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; removeOptions(int) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. removeOptions(int) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. removeOptions(int) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. removeOptions(int) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. removeOptions(int) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. removeOptions(int) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. removeProtoFile(int) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. removeReservedRange(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; removeReservedRange(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. removeService(int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. removeUninterpretedOption(int) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. removeValue(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; removeValues(int) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. replaceMessageFields() - Method in class com.google.protobuf.util.FieldMaskUtil.MergeOptions Whether to replace message fields (i.e., discard existing content in destination message fields). replacePrimitiveFields() - Method in class com.google.protobuf.util.FieldMaskUtil.MergeOptions Whether to replace primitive (non-repeated and non-message) fields in destination message fields with the source primitive fields (i.e., clear destination field if source field is not set). replaceRepeatedFields() - Method in class com.google.protobuf.util.FieldMaskUtil.MergeOptions Whether to replace repeated fields (i.e., discard existing content in destination repeated fields). REQUEST_STREAMING_FIELD_NUMBER - Static variable in class com.google.protobuf.Method REQUEST_TYPE_URL_FIELD_NUMBER - Static variable in class com.google.protobuf.Method RESERVED_NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto RESERVED_NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto RESERVED_RANGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto RESERVED_RANGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto reset() - Method in class com.google.protobuf.ByteString.Output Resets this stream, so that all currently accumulated output in the output stream is discarded. reset() - Method in interface com.google.protobuf.RpcController Resets the RpcController to its initial state so that it may be reused in a new call. resetSizeCounter() - Method in class com.google.protobuf.CodedInputStream Resets the current size counter to zero (see CodedInputStream.setSizeLimit(int)). RESPONSE_STREAMING_FIELD_NUMBER - Static variable in class com.google.protobuf.Method RESPONSE_TYPE_URL_FIELD_NUMBER - Static variable in class com.google.protobuf.Method ROOT_FIELD_NUMBER - Static variable in class com.google.protobuf.Mixin RpcCallback<ParameterType> - Interface in com.google.protobuf Interface for an RPC callback, normally called when an RPC completes. RpcChannel - Interface in com.google.protobuf Abstract interface for an RPC channel. RpcController - Interface in com.google.protobuf An RpcController mediates a single method call. RpcUtil - Class in com.google.protobuf Grab-bag of utility functions useful when dealing with RPCs. RpcUtil.AlreadyCalledException - Exception in com.google.protobuf Exception thrown when a one-time callback is called more than once. RUBY_PACKAGE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions run(ParameterType) - Method in interface com.google.protobuf.RpcCallback S SECONDS_FIELD_NUMBER - Static variable in class com.google.protobuf.Duration SECONDS_FIELD_NUMBER - Static variable in class com.google.protobuf.Timestamp SERVER_STREAMING_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto Service - Interface in com.google.protobuf Abstract base interface for protocol-buffer-based RPC services. SERVICE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto ServiceException - Exception in com.google.protobuf Thrown by blocking RPC methods when a failure occurs. ServiceException(String) - Constructor for exception com.google.protobuf.ServiceException ServiceException(Throwable) - Constructor for exception com.google.protobuf.ServiceException ServiceException(String, Throwable) - Constructor for exception com.google.protobuf.ServiceException setAggregateValue(String) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional string aggregate_value = 8; setAggregateValueBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional string aggregate_value = 8; setAllowAlias(boolean) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Set this option to true to allow mapping different tag names to the same value. setAllowUnknownExtensions(boolean) - Method in class com.google.protobuf.TextFormat.Parser.Builder Set whether this parser will allow unknown extensions. setAllowUnknownFields(boolean) - Method in class com.google.protobuf.TextFormat.Parser.Builder Set whether this parser will allow unknown fields. setAnnotation(int, DescriptorProtos.GeneratedCodeInfo.Annotation) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. setAnnotation(int, DescriptorProtos.GeneratedCodeInfo.Annotation.Builder) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder An Annotation connects some span of text in generated code to an element of its generating .proto file. setBegin(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the starting offset in bytes in the generated code that relates to the identified object. setBoolValue(boolean) - Method in class com.google.protobuf.Value.Builder Represents a boolean value. setCardinality(Field.Cardinality) - Method in class com.google.protobuf.Field.Builder The field cardinality. setCardinalityValue(int) - Method in class com.google.protobuf.Field.Builder The field cardinality. setCcEnableArenas(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Enables the use of arenas for the proto messages in this file. setCcGenericServices(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Should generic services be generated in each language? \"Generic\" services are not specific to any particular RPC system. setClientStreaming(boolean) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if client streams multiple client messages setCompilerVersion(PluginProtos.Version) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. setCompilerVersion(PluginProtos.Version.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The version number of protocol compiler. setContent(String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file contents. setContentBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file contents. setCsharpNamespace(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Namespace for generated classes; defaults to the package. setCsharpNamespaceBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Namespace for generated classes; defaults to the package. setCtype(DescriptorProtos.FieldOptions.CType) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The ctype option instructs the C++ code generator to use a different representation of the field than it normally would. setDefaultValue(String) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For numeric types, contains the original text representation of the value. setDefaultValue(String) - Method in class com.google.protobuf.Field.Builder The string value of the default value of this field. setDefaultValueBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For numeric types, contains the original text representation of the value. setDefaultValueBytes(ByteString) - Method in class com.google.protobuf.Field.Builder The string value of the default value of this field. setDependency(int, String) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Names of files imported by this file. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder Is this enum deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum, or it will be completely ignored; in the very least, this is a formalization for deprecating enums. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder Is this enum value deprecated? Depending on the target platform, this can emit Deprecated annotations for the enum value, or it will be completely ignored; in the very least, this is a formalization for deprecating enum values. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Is this field deprecated? Depending on the target platform, this can emit Deprecated annotations for accessors, or it will be completely ignored; in the very least, this is a formalization for deprecating fields. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Is this file deprecated? Depending on the target platform, this can emit Deprecated annotations for everything in the file, or it will be completely ignored; in the very least, this is a formalization for deprecating files. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Is this message deprecated? Depending on the target platform, this can emit Deprecated annotations for the message, or it will be completely ignored; in the very least, this is a formalization for deprecating messages. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder Is this method deprecated? Depending on the target platform, this can emit Deprecated annotations for the method, or it will be completely ignored; in the very least, this is a formalization for deprecating methods. setDeprecated(boolean) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder Is this service deprecated? Depending on the target platform, this can emit Deprecated annotations for the service, or it will be completely ignored; in the very least, this is a formalization for deprecating services. setDoubleValue(double) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional double double_value = 6; setEagerlyParseMessageSets(boolean) - Static method in class com.google.protobuf.ExtensionRegistryLite setEnd(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Exclusive. setEnd(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Exclusive. setEnd(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. setEnd(int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the ending offset in bytes in the generated code that relates to the identified offset. setEnumType(int, DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; setEnumType(int, DescriptorProtos.EnumDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 4; setEnumType(int, DescriptorProtos.EnumDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; setEnumType(int, DescriptorProtos.EnumDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.EnumDescriptorProto enum_type = 5; setEnumvalue(int, EnumValue) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. setEnumvalue(int, EnumValue.Builder) - Method in class com.google.protobuf.Enum.Builder Enum value definitions. setError(String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder Error message. setErrorBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder Error message. setExtendee(String) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For extensions, this is the name of the type being extended. setExtendeeBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For extensions, this is the name of the type being extended. setExtension(int, DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; setExtension(int, DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 6; setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumValueOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.EnumValueOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ExtensionRangeOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ExtensionRangeOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FieldOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FieldOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder setExtension(int, DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; setExtension(int, DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto extension = 7; setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FileOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.FileOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MessageOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MessageOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MethodOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.MethodOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.OneofOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.OneofOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ServiceOptions, Type>, Type) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder setExtension(GeneratedMessage.GeneratedExtension<DescriptorProtos.ServiceOptions, List<Type>>, int, Type) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder setExtensionRange(int, DescriptorProtos.DescriptorProto.ExtensionRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; setExtensionRange(int, DescriptorProtos.DescriptorProto.ExtensionRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ExtensionRange extension_range = 5; setFailed(String) - Method in interface com.google.protobuf.RpcController Causes failed() to return true on the client side. setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Any.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Api.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.BoolValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.BytesValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder setField(int, DescriptorProtos.FieldDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; setField(int, DescriptorProtos.FieldDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.FieldDescriptorProto field = 2; setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DoubleValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Duration.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.DynamicMessage.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Empty.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Enum.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.EnumValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Field.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.FieldMask.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.FloatValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Int32Value.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Int64Value.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.ListValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in interface com.google.protobuf.Message.Builder Sets a field to the given value. setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Method.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Mixin.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Option.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.SourceContext.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.StringValue.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Struct.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Timestamp.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Type.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.UInt32Value.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.UInt64Value.Builder setField(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.Value.Builder setFields(int, Field) - Method in class com.google.protobuf.Type.Builder The list of fields. setFields(int, Field.Builder) - Method in class com.google.protobuf.Type.Builder The list of fields. setFile(int, PluginProtos.CodeGeneratorResponse.File) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; setFile(int, PluginProtos.CodeGeneratorResponse.File.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder repeated .google.protobuf.compiler.CodeGeneratorResponse.File file = 15; setFile(int, DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; setFile(int, DescriptorProtos.FileDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder repeated .google.protobuf.FileDescriptorProto file = 1; setFileName(String) - Method in class com.google.protobuf.SourceContext.Builder The path-qualified name of the .proto file that contained the associated protobuf element. setFileNameBytes(ByteString) - Method in class com.google.protobuf.SourceContext.Builder The path-qualified name of the .proto file that contained the associated protobuf element. setFileToGenerate(int, String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The .proto files that were explicitly listed on the command-line. setGeneratedCodeInfo(DescriptorProtos.GeneratedCodeInfo) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. setGeneratedCodeInfo(DescriptorProtos.GeneratedCodeInfo.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder Information describing the file content being inserted. setGoPackage(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Go package where structs generated from this .proto will be placed. setGoPackageBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Go package where structs generated from this .proto will be placed. setIdempotencyLevel(DescriptorProtos.MethodOptions.IdempotencyLevel) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder optional .google.protobuf.MethodOptions.IdempotencyLevel idempotency_level = 34 [default = IDEMPOTENCY_UNKNOWN]; setIdentifierValue(String) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. setIdentifierValueBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder The value of the uninterpreted option, in whatever type the tokenizer identified it as during parsing. setInputType(String) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Input and output type names. setInputTypeBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Input and output type names. setInsertionPoint(String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. setInsertionPointBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder If non-empty, indicates that the named file should already exist, and the content here is to be inserted into that file at a defined insertion point. setIsExtension(boolean) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required bool is_extension = 2; setJavaGenerateEqualsAndHash(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Deprecated. setJavaGenericServices(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool java_generic_services = 17 [default = false]; setJavaMultipleFiles(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If enabled, then the Java code generator will generate a separate .java file for each top-level message, enum, and service defined in the .proto file. setJavaOuterClassname(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Controls the name of the wrapper Java class generated for the .proto file. setJavaOuterClassnameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Controls the name of the wrapper Java class generated for the .proto file. setJavaPackage(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Java package where classes generated from this .proto will be placed. setJavaPackageBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the Java package where classes generated from this .proto will be placed. setJavaStringCheckUtf8(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder If set true, then the Java2 code generator will generate code that throws an exception whenever an attempt is made to assign a non-UTF-8 byte sequence to a string field. setJsonName(String) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder JSON name of this field. setJsonName(String) - Method in class com.google.protobuf.Field.Builder The field JSON name. setJsonNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder JSON name of this field. setJsonNameBytes(ByteString) - Method in class com.google.protobuf.Field.Builder The field JSON name. setJstype(DescriptorProtos.FieldOptions.JSType) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The jstype option determines the JavaScript type used for values of the field. setKind(Field.Kind) - Method in class com.google.protobuf.Field.Builder The field type. setKindValue(int) - Method in class com.google.protobuf.Field.Builder The field type. setLabel(DescriptorProtos.FieldDescriptorProto.Label) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldDescriptorProto.Label label = 4; setLazy(boolean) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder Should this field be parsed lazily? Lazy applies only to message-type fields. setLeadingComments(String) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. setLeadingCommentsBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder If this SourceCodeInfo represents a complete declaration, these are any comments appearing before and after the declaration which appear to be attached to the declaration. setLeadingDetachedComments(int, String) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder repeated string leading_detached_comments = 6; setListValue(ListValue) - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. setListValue(ListValue.Builder) - Method in class com.google.protobuf.Value.Builder Represents a repeated `Value`. setLocation(int, DescriptorProtos.SourceCodeInfo.Location) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. setLocation(int, DescriptorProtos.SourceCodeInfo.Location.Builder) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder A Location identifies a piece of source code in a .proto file which corresponds to a particular definition. setLocation(Descriptors.FieldDescriptor, TextFormatParseLocation) - Method in class com.google.protobuf.TextFormatParseInfoTree.Builder Record the starting location of a single value for a field. setMajor(int) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 major = 1; setMapEntry(boolean) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Whether the message is an automatically generated map entry type for the maps field. setMessageSetWireFormat(boolean) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Set true to use the old proto1 MessageSet wire format for extensions. setMessageType(int, DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. setMessageType(int, DescriptorProtos.DescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder All top-level definitions in this file. setMethod(int, DescriptorProtos.MethodDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; setMethod(int, DescriptorProtos.MethodDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder repeated .google.protobuf.MethodDescriptorProto method = 2; setMethods(int, Method) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. setMethods(int, Method.Builder) - Method in class com.google.protobuf.Api.Builder The methods of this interface, in unspecified order. setMinor(int) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 minor = 2; setMixins(int, Mixin) - Method in class com.google.protobuf.Api.Builder Included interfaces. setMixins(int, Mixin.Builder) - Method in class com.google.protobuf.Api.Builder Included interfaces. setName(String) - Method in class com.google.protobuf.Api.Builder The fully qualified name of this interface, including package name followed by the interface's simple name. setName(String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file name, relative to the output directory. setName(String) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional string name = 1; setName(String) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional string name = 1; setName(String) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional string name = 1; setName(String) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional string name = 1; setName(String) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder file name, relative to root of source tree setName(String) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string name = 1; setName(String) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional string name = 1; setName(String) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional string name = 1; setName(int, DescriptorProtos.UninterpretedOption.NamePart) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; setName(int, DescriptorProtos.UninterpretedOption.NamePart.Builder) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder repeated .google.protobuf.UninterpretedOption.NamePart name = 2; setName(String) - Method in class com.google.protobuf.Enum.Builder Enum type name. setName(String) - Method in class com.google.protobuf.EnumValue.Builder Enum value name. setName(String) - Method in class com.google.protobuf.Field.Builder The field name. setName(String) - Method in class com.google.protobuf.Method.Builder The simple name of this method. setName(String) - Method in class com.google.protobuf.Mixin.Builder The fully qualified name of the interface which is included. setName(String) - Method in class com.google.protobuf.Option.Builder The option's name. setName(String) - Method in class com.google.protobuf.Type.Builder The fully qualified message name. setNameBytes(ByteString) - Method in class com.google.protobuf.Api.Builder The fully qualified name of this interface, including package name followed by the interface's simple name. setNameBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder The file name, relative to the output directory. setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder file name, relative to root of source tree setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional string name = 1; setNameBytes(ByteString) - Method in class com.google.protobuf.Enum.Builder Enum type name. setNameBytes(ByteString) - Method in class com.google.protobuf.EnumValue.Builder Enum value name. setNameBytes(ByteString) - Method in class com.google.protobuf.Field.Builder The field name. setNameBytes(ByteString) - Method in class com.google.protobuf.Method.Builder The simple name of this method. setNameBytes(ByteString) - Method in class com.google.protobuf.Mixin.Builder The fully qualified name of the interface which is included. setNameBytes(ByteString) - Method in class com.google.protobuf.Option.Builder The option's name. setNameBytes(ByteString) - Method in class com.google.protobuf.Type.Builder The fully qualified message name. setNamePart(String) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required string name_part = 1; setNamePartBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder required string name_part = 1; setNanos(int) - Method in class com.google.protobuf.Duration.Builder Signed fractions of a second at nanosecond resolution of the span of time. setNanos(int) - Method in class com.google.protobuf.Timestamp.Builder Non-negative fractions of a second at nanosecond resolution. setNegativeIntValue(long) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional int64 negative_int_value = 5; setNestedType(int, DescriptorProtos.DescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; setNestedType(int, DescriptorProtos.DescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto nested_type = 3; setNoStandardDescriptorAccessor(boolean) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder Disables the generation of the standard \"descriptor()\" accessor, which can conflict with a field of the same name. setNullValue(NullValue) - Method in class com.google.protobuf.Value.Builder Represents a null value. setNullValueValue(int) - Method in class com.google.protobuf.Value.Builder Represents a null value. setNumber(int) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional int32 number = 2; setNumber(int) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional int32 number = 3; setNumber(int) - Method in class com.google.protobuf.EnumValue.Builder Enum value number. setNumber(int) - Method in class com.google.protobuf.Field.Builder The field number. setNumberValue(double) - Method in class com.google.protobuf.Value.Builder Represents a double value. setObjcClassPrefix(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. setObjcClassPrefixBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the objective c class prefix which is prepended to all objective c generated classes from this .proto. setOneofDecl(int, DescriptorProtos.OneofDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; setOneofDecl(int, DescriptorProtos.OneofDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.OneofDescriptorProto oneof_decl = 8; setOneofIndex(int) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If set, gives the index of a oneof in the containing type's oneof_decl list. setOneofIndex(int) - Method in class com.google.protobuf.Field.Builder The index of the field type in `Type.oneofs`, for message or enumeration types. setOneofs(int, String) - Method in class com.google.protobuf.Type.Builder The list of types appearing in `oneof` definitions in this type. setOptimizeFor(DescriptorProtos.FileOptions.OptimizeMode) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional .google.protobuf.FileOptions.OptimizeMode optimize_for = 9 [default = SPEED]; setOptions(int, Option) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. setOptions(int, Option.Builder) - Method in class com.google.protobuf.Api.Builder Any metadata attached to the interface. setOptions(DescriptorProtos.MessageOptions) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; setOptions(DescriptorProtos.MessageOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder optional .google.protobuf.MessageOptions options = 7; setOptions(DescriptorProtos.ExtensionRangeOptions) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; setOptions(DescriptorProtos.ExtensionRangeOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder optional .google.protobuf.ExtensionRangeOptions options = 3; setOptions(DescriptorProtos.EnumOptions) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; setOptions(DescriptorProtos.EnumOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder optional .google.protobuf.EnumOptions options = 3; setOptions(DescriptorProtos.EnumValueOptions) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; setOptions(DescriptorProtos.EnumValueOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder optional .google.protobuf.EnumValueOptions options = 3; setOptions(DescriptorProtos.FieldOptions) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; setOptions(DescriptorProtos.FieldOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder optional .google.protobuf.FieldOptions options = 8; setOptions(DescriptorProtos.FileOptions) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; setOptions(DescriptorProtos.FileOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder optional .google.protobuf.FileOptions options = 8; setOptions(DescriptorProtos.MethodOptions) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; setOptions(DescriptorProtos.MethodOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional .google.protobuf.MethodOptions options = 4; setOptions(DescriptorProtos.OneofOptions) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; setOptions(DescriptorProtos.OneofOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder optional .google.protobuf.OneofOptions options = 2; setOptions(DescriptorProtos.ServiceOptions) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; setOptions(DescriptorProtos.ServiceOptions.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder optional .google.protobuf.ServiceOptions options = 3; setOptions(int, Option) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. setOptions(int, Option.Builder) - Method in class com.google.protobuf.Enum.Builder Protocol buffer options. setOptions(int, Option) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. setOptions(int, Option.Builder) - Method in class com.google.protobuf.EnumValue.Builder Protocol buffer options. setOptions(int, Option) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. setOptions(int, Option.Builder) - Method in class com.google.protobuf.Field.Builder The protocol buffer options. setOptions(int, Option) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. setOptions(int, Option.Builder) - Method in class com.google.protobuf.Method.Builder Any metadata attached to the method. setOptions(int, Option) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. setOptions(int, Option.Builder) - Method in class com.google.protobuf.Type.Builder The protocol buffer options. setOutputType(String) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string output_type = 3; setOutputTypeBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder optional string output_type = 3; setPackage(String) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder e.g. setPackageBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder e.g. setPacked(boolean) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The packed option can be enabled for repeated primitive fields to enable a more efficient representation on the wire. setPacked(boolean) - Method in class com.google.protobuf.Field.Builder Whether to use alternative packed wire representation. setParameter(String) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The generator parameter passed on the command-line. setParameterBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder The generator parameter passed on the command-line. setParseInfoTreeBuilder(TextFormatParseInfoTree.Builder) - Method in class com.google.protobuf.TextFormat.Parser.Builder setPatch(int) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder optional int32 patch = 3; setPath(int, int) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the element in the original source .proto file. setPath(int, int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Identifies which part of the FileDescriptorProto was defined at this location. setPaths(int, String) - Method in class com.google.protobuf.FieldMask.Builder The set of field mask paths. setPhpClassPrefix(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the php class prefix which is prepended to all php generated classes from this .proto. setPhpClassPrefixBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Sets the php class prefix which is prepended to all php generated classes from this .proto. setPhpGenericServices(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool php_generic_services = 42 [default = false]; setPhpMetadataNamespace(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated metadata classes. setPhpMetadataNamespaceBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated metadata classes. setPhpNamespace(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated classes. setPhpNamespaceBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the namespace of php generated classes. setPositiveIntValue(long) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional uint64 positive_int_value = 4; setProto3Optional(boolean) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If true, this is a proto3 \"optional\". setProtoFile(int, DescriptorProtos.FileDescriptorProto) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. setProtoFile(int, DescriptorProtos.FileDescriptorProto.Builder) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder FileDescriptorProtos for all files in files_to_generate and everything they import. setPublicDependency(int, int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the public imported files in the dependency list above. setPyGenericServices(boolean) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder optional bool py_generic_services = 18 [default = false]; setRecursionLimit(int) - Method in class com.google.protobuf.CodedInputStream Set the maximum message recursion depth. setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Any.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Api.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.BoolValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.BytesValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DoubleValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Duration.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.DynamicMessage.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Empty.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Enum.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.EnumValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Field.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.FieldMask.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.FloatValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Int32Value.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Int64Value.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.ListValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in interface com.google.protobuf.Message.Builder Sets an element of a repeated field to the given value. setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Method.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Mixin.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Option.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.SourceContext.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.StringValue.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Struct.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Timestamp.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Type.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.UInt32Value.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.UInt64Value.Builder setRepeatedField(Descriptors.FieldDescriptor, int, Object) - Method in class com.google.protobuf.Value.Builder setReplaceMessageFields(boolean) - Method in class com.google.protobuf.util.FieldMaskUtil.MergeOptions Specify whether to replace message fields. setReplacePrimitiveFields(boolean) - Method in class com.google.protobuf.util.FieldMaskUtil.MergeOptions Specify whether to replace primitive (non-repeated and non-message) fields in destination message fields with the source primitive fields. setReplaceRepeatedFields(boolean) - Method in class com.google.protobuf.util.FieldMaskUtil.MergeOptions Specify whether to replace repeated fields. setRequestStreaming(boolean) - Method in class com.google.protobuf.Method.Builder If true, the request is streamed. setRequestTypeUrl(String) - Method in class com.google.protobuf.Method.Builder A URL of the input message type. setRequestTypeUrlBytes(ByteString) - Method in class com.google.protobuf.Method.Builder A URL of the input message type. setReservedName(int, String) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder Reserved field names, which may not be used by fields in the same message. setReservedName(int, String) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Reserved enum value names, which may not be reused. setReservedRange(int, DescriptorProtos.DescriptorProto.ReservedRange) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; setReservedRange(int, DescriptorProtos.DescriptorProto.ReservedRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder repeated .google.protobuf.DescriptorProto.ReservedRange reserved_range = 9; setReservedRange(int, DescriptorProtos.EnumDescriptorProto.EnumReservedRange) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. setReservedRange(int, DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder Range of reserved numeric values. setResponseStreaming(boolean) - Method in class com.google.protobuf.Method.Builder If true, the response is streamed. setResponseTypeUrl(String) - Method in class com.google.protobuf.Method.Builder The URL of the output message type. setResponseTypeUrlBytes(ByteString) - Method in class com.google.protobuf.Method.Builder The URL of the output message type. setRoot(String) - Method in class com.google.protobuf.Mixin.Builder If non-empty specifies a path under which inherited HTTP paths are rooted. setRootBytes(ByteString) - Method in class com.google.protobuf.Mixin.Builder If non-empty specifies a path under which inherited HTTP paths are rooted. setRubyPackage(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the package of ruby generated classes. setRubyPackageBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder Use this option to change the package of ruby generated classes. setSeconds(long) - Method in class com.google.protobuf.Duration.Builder Signed seconds of the span of time. setSeconds(long) - Method in class com.google.protobuf.Timestamp.Builder Represents seconds of UTC time since Unix epoch :00Z. setServerStreaming(boolean) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder Identifies if server streams multiple server messages setService(int, DescriptorProtos.ServiceDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; setService(int, DescriptorProtos.ServiceDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder repeated .google.protobuf.ServiceDescriptorProto service = 6; setSingularOverwritePolicy(TextFormat.Parser.SingularOverwritePolicy) - Method in class com.google.protobuf.TextFormat.Parser.Builder Sets parser behavior when a non-repeated field appears more than once. setSizeLimit(int) - Method in class com.google.protobuf.CodedInputStream Only valid for InputStream-backed streams. setSourceCodeInfo(DescriptorProtos.SourceCodeInfo) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. setSourceCodeInfo(DescriptorProtos.SourceCodeInfo.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder This field contains optional information about the original source code. setSourceContext(SourceContext) - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. setSourceContext(SourceContext.Builder) - Method in class com.google.protobuf.Api.Builder Source context for the protocol buffer service represented by this message. setSourceContext(SourceContext) - Method in class com.google.protobuf.Enum.Builder The source context. setSourceContext(SourceContext.Builder) - Method in class com.google.protobuf.Enum.Builder The source context. setSourceContext(SourceContext) - Method in class com.google.protobuf.Type.Builder The source context. setSourceContext(SourceContext.Builder) - Method in class com.google.protobuf.Type.Builder The source context. setSourceFile(String) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the filesystem path to the original source .proto. setSourceFileBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder Identifies the filesystem path to the original source .proto. setSpan(int, int) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder Always has exactly three or four line, start column, end line (optional, otherwise assumed same as start line), end column. setStart(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder Inclusive. setStart(int) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder Inclusive. setStart(int) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder Inclusive. setStringValue(ByteString) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder optional bytes string_value = 7; setStringValue(String) - Method in class com.google.protobuf.Value.Builder Represents a string value. setStringValueBytes(ByteString) - Method in class com.google.protobuf.Value.Builder Represents a string value. setStructValue(Struct) - Method in class com.google.protobuf.Value.Builder Represents a structured value. setStructValue(Struct.Builder) - Method in class com.google.protobuf.Value.Builder Represents a structured value. setSuffix(String) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". setSuffixBytes(ByteString) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder A suffix for alpha, beta or rc release, e.g., \"alpha-1\", \"rc2\". setSupportedFeatures(long) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder A bitmask of supported features that the code generator supports. setSwiftPrefix(String) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. setSwiftPrefixBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder By default Swift generators will take the proto package and CamelCase it replacing '.' with underscore and use that to prefix the types/symbols defined. setSyntax(Syntax) - Method in class com.google.protobuf.Api.Builder The source syntax of the service. setSyntax(String) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder The syntax of the proto file. setSyntax(Syntax) - Method in class com.google.protobuf.Enum.Builder The source syntax. setSyntax(Syntax) - Method in class com.google.protobuf.Method.Builder The source syntax of this method. setSyntax(Syntax) - Method in class com.google.protobuf.Type.Builder The source syntax. setSyntaxBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder The syntax of the proto file. setSyntaxValue(int) - Method in class com.google.protobuf.Api.Builder The source syntax of the service. setSyntaxValue(int) - Method in class com.google.protobuf.Enum.Builder The source syntax. setSyntaxValue(int) - Method in class com.google.protobuf.Method.Builder The source syntax of this method. setSyntaxValue(int) - Method in class com.google.protobuf.Type.Builder The source syntax. setTrailingComments(String) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder optional string trailing_comments = 4; setTrailingCommentsBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder optional string trailing_comments = 4; setType(DescriptorProtos.FieldDescriptorProto.Type) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder If type_name is set, this need not be set. setTypeName(String) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For message and enum types, this is the name of the type. setTypeNameBytes(ByteString) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder For message and enum types, this is the name of the type. setTypeRegistry(TypeRegistry) - Method in class com.google.protobuf.TextFormat.Parser.Builder Sets the TypeRegistry for resolving Any. setTypeUrl(String) - Method in class com.google.protobuf.Any.Builder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. setTypeUrl(String) - Method in class com.google.protobuf.Field.Builder The field type URL, without the scheme, for message or enumeration types. setTypeUrlBytes(ByteString) - Method in class com.google.protobuf.Any.Builder A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. setTypeUrlBytes(ByteString) - Method in class com.google.protobuf.Field.Builder The field type URL, without the scheme, for message or enumeration types. setUnfinishedMessage(MessageLite) - Method in exception com.google.protobuf.InvalidProtocolBufferException Attaches an unfinished message to the exception to support best-effort parsing in Parser interface. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. setUninterpretedOption(int, DescriptorProtos.UninterpretedOption.Builder) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder The parser stores options it doesn't recognize here. setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Any.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Api.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.BoolValue.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.BytesValue.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.compiler.PluginProtos.Version.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.FileOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DoubleValue.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Duration.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.DynamicMessage.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Empty.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Enum.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.EnumValue.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Field.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.FieldMask.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.FloatValue.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Int32Value.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Int64Value.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.ListValue.Builder setUnknownFields(UnknownFieldSet) - Method in interface com.google.protobuf.Message.Builder Set the UnknownFieldSet for this message. setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Method.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Mixin.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Option.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.SourceContext.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.StringValue.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Struct.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Timestamp.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Type.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.UInt32Value.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.UInt64Value.Builder setUnknownFields(UnknownFieldSet) - Method in class com.google.protobuf.Value.Builder setValue(ByteString) - Method in class com.google.protobuf.Any.Builder Must be a valid serialized protocol buffer of the above specified type. setValue(boolean) - Method in class com.google.protobuf.BoolValue.Builder The bool value. setValue(ByteString) - Method in class com.google.protobuf.BytesValue.Builder The bytes value. setValue(int, DescriptorProtos.EnumValueDescriptorProto) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; setValue(int, DescriptorProtos.EnumValueDescriptorProto.Builder) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.Builder repeated .google.protobuf.EnumValueDescriptorProto value = 2; setValue(double) - Method in class com.google.protobuf.DoubleValue.Builder The double value. setValue(float) - Method in class com.google.protobuf.FloatValue.Builder The float value. setValue(int) - Method in class com.google.protobuf.Int32Value.Builder The int32 value. setValue(long) - Method in class com.google.protobuf.Int64Value.Builder The int64 value. setValue(Any) - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. setValue(Any.Builder) - Method in class com.google.protobuf.Option.Builder The option's value packed in an Any message. setValue(String) - Method in class com.google.protobuf.StringValue.Builder The string value. setValue(int) - Method in class com.google.protobuf.UInt32Value.Builder The uint32 value. setValue(long) - Method in class com.google.protobuf.UInt64Value.Builder The uint64 value. setValueBytes(ByteString) - Method in class com.google.protobuf.StringValue.Builder The string value. setValues(int, Value) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. setValues(int, Value.Builder) - Method in class com.google.protobuf.ListValue.Builder Repeated field of dynamically typed values. setVersion(String) - Method in class com.google.protobuf.Api.Builder A version string for this interface. setVersionBytes(ByteString) - Method in class com.google.protobuf.Api.Builder A version string for this interface. setWeak(boolean) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions.Builder For Google-internal migration only. setWeakDependency(int, int) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto.Builder Indexes of the weak imported files in the dependency list. shortDebugString(MessageOrBuilder) - Method in class com.google.protobuf.TextFormat.Printer Generates a human readable form of this message, useful for debugging and other purposes, with no newline characters. shortDebugString(Descriptors.FieldDescriptor, Object) - Method in class com.google.protobuf.TextFormat.Printer Generates a human readable form of the field, useful for debugging and other purposes, with no newline characters. shortDebugString(UnknownFieldSet) - Method in class com.google.protobuf.TextFormat.Printer Generates a human readable form of the unknown fields, useful for debugging and other purposes, with no newline characters. shortDebugString(MessageOrBuilder) - Static method in class com.google.protobuf.TextFormat Generates a human readable form of this message, useful for debugging and other purposes, with no newline characters. shortDebugString(Descriptors.FieldDescriptor, Object) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().shortDebugString(FieldDescriptor, Object) shortDebugString(UnknownFieldSet) - Static method in class com.google.protobuf.TextFormat Deprecated. Use printer().shortDebugString(UnknownFieldSet) size() - Method in class com.google.protobuf.ByteString.Output Returns the current size of the output stream. size() - Method in class com.google.protobuf.ByteString Gets the number of bytes. skipField(int) - Method in class com.google.protobuf.CodedInputStream Reads and discards a single field, given its tag value. skipField(int, CodedOutputStream) - Method in class com.google.protobuf.CodedInputStream Deprecated. use UnknownFieldSet or UnknownFieldSetLite to skip to an output stream. skipMessage() - Method in class com.google.protobuf.CodedInputStream Reads and discards an entire message. skipMessage(CodedOutputStream) - Method in class com.google.protobuf.CodedInputStream Reads an entire message and writes it to output in wire format. skipRawBytes(int) - Method in class com.google.protobuf.CodedInputStream Reads and discards size bytes. sortingMapKeys() - Method in class com.google.protobuf.util.JsonFormat.Printer Create a new JsonFormat.Printer that will sort the map keys in the JSON output. SOURCE_CODE_INFO_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto SOURCE_CONTEXT_FIELD_NUMBER - Static variable in class com.google.protobuf.Api SOURCE_CONTEXT_FIELD_NUMBER - Static variable in class com.google.protobuf.Enum SOURCE_CONTEXT_FIELD_NUMBER - Static variable in class com.google.protobuf.Type SOURCE_FILE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation SourceContext - Class in com.google.protobuf `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. SourceContext.Builder - Class in com.google.protobuf `SourceContext` represents information about the source of a protobuf element, like the file in which it is defined. SourceContextOrBuilder - Interface in com.google.protobuf SourceContextProto - Class in com.google.protobuf spaceLeft() - Method in class com.google.protobuf.CodedOutputStream If writing to a flat array, return the space left in the array. SPAN_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location specializeCallback(RpcCallback<Message>) - Static method in class com.google.protobuf.RpcUtil Take an RpcCallback<Message> and convert it to an RpcCallback accepting a specific message type. SPEED_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode Generate complete code for parsing, serialization, START_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange START_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange START_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange startCancel() - Method in interface com.google.protobuf.RpcController Advises the RPC system that the caller desires that the RPC call be canceled. startsWith(ByteString) - Method in class com.google.protobuf.ByteString Tests if this bytestring starts with the specified prefix. STRING_PIECE_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType STRING_PIECE = 2; STRING_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType Default mode. STRING_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.UninterpretedOption STRING_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Value StringValue - Class in com.google.protobuf Wrapper message for `string`. StringValue.Builder - Class in com.google.protobuf Wrapper message for `string`. StringValueOrBuilder - Interface in com.google.protobuf Struct - Class in com.google.protobuf `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. Struct.Builder - Class in com.google.protobuf `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. STRUCT_VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Value StructOrBuilder - Interface in com.google.protobuf StructProto - Class in com.google.protobuf Structs - Class in com.google.protobuf.util Utilities to help create google.protobuf.Struct messages. substring(int) - Method in class com.google.protobuf.ByteString Return the substring from beginIndex, inclusive, to the end of the string. substring(int, int) - Method in class com.google.protobuf.ByteString Return the substring from beginIndex, inclusive, to endIndex, exclusive. subtract(Duration, Duration) - Static method in class com.google.protobuf.util.Durations Subtract a duration from another. subtract(FieldMask, FieldMask, FieldMask...) - Static method in class com.google.protobuf.util.FieldMaskUtil Subtracts secondMask and otherMasks from firstMask. subtract(Timestamp, Duration) - Static method in class com.google.protobuf.util.Timestamps Subtract a duration from a timestamp. subtract(Timestamp, Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.subtract(com.google.protobuf.Timestamp, com.google.protobuf.Duration) instead. subtract(Duration, Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.subtract(com.google.protobuf.Duration, com.google.protobuf.Duration) instead. SUFFIX_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.Version SUPPORTED_FEATURES_FIELD_NUMBER - Static variable in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse SWIFT_PREFIX_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions Syntax - Enum in com.google.protobuf The syntax in which a protocol buffer element is defined. SYNTAX_FIELD_NUMBER - Static variable in class com.google.protobuf.Api SYNTAX_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto SYNTAX_FIELD_NUMBER - Static variable in class com.google.protobuf.Enum SYNTAX_FIELD_NUMBER - Static variable in class com.google.protobuf.Method SYNTAX_FIELD_NUMBER - Static variable in class com.google.protobuf.Type SYNTAX_PROTO2_VALUE - Static variable in enum com.google.protobuf.Syntax Syntax `proto2`. SYNTAX_PROTO3_VALUE - Static variable in enum com.google.protobuf.Syntax Syntax `proto3`. T TextFormat - Class in com.google.protobuf Provide text parsing and formatting support for proto2 instances. TextFormat.InvalidEscapeSequenceException - Exception in com.google.protobuf Thrown by TextFormat.unescapeBytes(java.lang.CharSequence) and TextFormat.unescapeText(java.lang.String) when an invalid escape sequence is seen. TextFormat.ParseException - Exception in com.google.protobuf Thrown when parsing an invalid text format message. TextFormat.Parser - Class in com.google.protobuf Parser for text-format proto2 instances. TextFormat.Parser.Builder - Class in com.google.protobuf Builder that can be used to obtain new instances of Parser. TextFormat.Parser.SingularOverwritePolicy - Enum in com.google.protobuf Determines if repeated values for non-repeated fields and oneofs are permitted. TextFormat.Printer - Class in com.google.protobuf Helper class for converting protobufs to text. TextFormat.UnknownFieldParseException - Exception in com.google.protobuf Thrown when encountering an unknown field while parsing a text format message. TextFormatParseInfoTree - Class in com.google.protobuf Data structure which is populated with the locations of each field value parsed from the text. TextFormatParseInfoTree.Builder - Class in com.google.protobuf Builder for a TextFormatParseInfoTree. TextFormatParseLocation - Class in com.google.protobuf A location in the source code. Timestamp - Class in com.google.protobuf A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. Timestamp.Builder - Class in com.google.protobuf A Timestamp represents a point in time independent of any time zone or local calendar, encoded as a count of seconds and fractions of seconds at nanosecond resolution. TIMESTAMP_SECONDS_MAX - Static variable in class com.google.protobuf.util.TimeUtil Deprecated. TIMESTAMP_SECONDS_MIN - Static variable in class com.google.protobuf.util.TimeUtil Deprecated. TimestampOrBuilder - Interface in com.google.protobuf TimestampProto - Class in com.google.protobuf Timestamps - Class in com.google.protobuf.util Utilities to help create/manipulate protobuf/timestamp.proto. TimeUtil - Class in com.google.protobuf.util Deprecated. Use Durations and Timestamps instead. toBuilder() - Method in class com.google.protobuf.Any toBuilder() - Method in class com.google.protobuf.Api toBuilder() - Method in class com.google.protobuf.BoolValue toBuilder() - Method in class com.google.protobuf.BytesValue toBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest toBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File toBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse toBuilder() - Method in class com.google.protobuf.compiler.PluginProtos.Version toBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange toBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange toBuilder() - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange toBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.FieldOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet toBuilder() - Method in class com.google.protobuf.DescriptorProtos.FileOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation toBuilder() - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo toBuilder() - Method in class com.google.protobuf.DescriptorProtos.MessageOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.MethodOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.OneofOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto toBuilder() - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions toBuilder() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location toBuilder() - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo toBuilder() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart toBuilder() - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption toBuilder() - Method in class com.google.protobuf.DoubleValue toBuilder() - Method in class com.google.protobuf.Duration toBuilder() - Method in class com.google.protobuf.DynamicMessage toBuilder() - Method in class com.google.protobuf.Empty toBuilder() - Method in class com.google.protobuf.Enum toBuilder() - Method in class com.google.protobuf.EnumValue toBuilder() - Method in class com.google.protobuf.Field toBuilder() - Method in class com.google.protobuf.FieldMask toBuilder() - Method in class com.google.protobuf.FloatValue toBuilder() - Method in class com.google.protobuf.Int32Value toBuilder() - Method in class com.google.protobuf.Int64Value toBuilder() - Method in class com.google.protobuf.ListValue toBuilder() - Method in interface com.google.protobuf.Message toBuilder() - Method in interface com.google.protobuf.MessageLite Constructs a builder initialized with the current message. toBuilder() - Method in class com.google.protobuf.Method toBuilder() - Method in class com.google.protobuf.Mixin toBuilder() - Method in class com.google.protobuf.Option toBuilder() - Method in class com.google.protobuf.SourceContext toBuilder() - Method in class com.google.protobuf.StringValue toBuilder() - Method in class com.google.protobuf.Struct toBuilder() - Method in class com.google.protobuf.Timestamp toBuilder() - Method in class com.google.protobuf.Type toBuilder() - Method in class com.google.protobuf.UInt32Value toBuilder() - Method in class com.google.protobuf.UInt64Value toBuilder() - Method in class com.google.protobuf.Value toByteArray() - Method in class com.google.protobuf.AbstractMessageLite toByteArray() - Method in class com.google.protobuf.ByteString Copies bytes to a byte[]. toByteArray() - Method in interface com.google.protobuf.MessageLite Serializes the message to a byte array and returns it. toByteString() - Method in class com.google.protobuf.AbstractMessageLite toByteString() - Method in class com.google.protobuf.ByteString.Output Creates a byte string with the size and contents of this output stream. toByteString() - Method in interface com.google.protobuf.MessageLite Serializes the message to a ByteString and returns it. toDays(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of days. toHours(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of hours. toJsonString(FieldMask) - Static method in class com.google.protobuf.util.FieldMaskUtil Converts a field mask to a Proto3 JSON string, that is converting from snake case to camel case and joining all paths into one string with commas. toMicros(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of microseconds. toMicros(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Convert a Timestamp to the number of microseconds elapsed from the epoch. toMicros(Timestamp) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.toMicros(com.google.protobuf.Timestamp) instead. toMicros(Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.toMicros(com.google.protobuf.Duration) instead. toMillis(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of milliseconds. toMillis(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Convert a Timestamp to the number of milliseconds elapsed from the epoch. toMillis(Timestamp) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.toMillis(com.google.protobuf.Timestamp) instead. toMillis(Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.toMillis(com.google.protobuf.Duration) instead. toMinutes(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of minutes. toNanos(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of nanoseconds. toNanos(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Convert a Timestamp to the number of nanoseconds elapsed from the epoch. toNanos(Timestamp) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.toNanos(com.google.protobuf.Timestamp) instead. toNanos(Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.toNanos(com.google.protobuf.Duration) instead. toProto() - Method in class com.google.protobuf.Descriptors.Descriptor Convert the descriptor to its protocol message representation. toProto() - Method in class com.google.protobuf.Descriptors.EnumDescriptor Convert the descriptor to its protocol message representation. toProto() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor Convert the descriptor to its protocol message representation. toProto() - Method in class com.google.protobuf.Descriptors.FieldDescriptor Convert the descriptor to its protocol message representation. toProto() - Method in enum com.google.protobuf.Descriptors.FieldDescriptor.Type toProto() - Method in class com.google.protobuf.Descriptors.FileDescriptor Convert the descriptor to its protocol message representation. toProto() - Method in class com.google.protobuf.Descriptors.GenericDescriptor toProto() - Method in class com.google.protobuf.Descriptors.MethodDescriptor Convert the descriptor to its protocol message representation. toProto() - Method in class com.google.protobuf.Descriptors.OneofDescriptor toProto() - Method in class com.google.protobuf.Descriptors.ServiceDescriptor Convert the descriptor to its protocol message representation. toSeconds(Duration) - Static method in class com.google.protobuf.util.Durations Convert a Duration to the number of seconds. toSeconds(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Convert a Timestamp to the number of seconds elapsed from the epoch. toSecondsAsDouble(Duration) - Static method in class com.google.protobuf.util.Durations Returns the number of seconds of the given duration as a double. toString() - Method in class com.google.protobuf.AbstractMessage.Builder toString() - Method in class com.google.protobuf.AbstractMessage toString() - Method in class com.google.protobuf.ByteString.Output toString(String) - Method in class com.google.protobuf.ByteString Constructs a new String by decoding the bytes using the specified charset. toString(Charset) - Method in class com.google.protobuf.ByteString Constructs a new String by decoding the bytes using the specified charset. toString() - Method in class com.google.protobuf.ByteString toString() - Method in class com.google.protobuf.Descriptors.EnumValueDescriptor toString() - Method in class com.google.protobuf.Descriptors.FieldDescriptor toString() - Method in interface com.google.protobuf.Message Converts the message to a string in protocol buffer text format. toString() - Method in class com.google.protobuf.TextFormatParseLocation toString(Duration) - Static method in class com.google.protobuf.util.Durations Convert Duration to string format. toString(FieldMask) - Static method in class com.google.protobuf.util.FieldMaskUtil Converts a FieldMask to a string. toString(Timestamp) - Static method in class com.google.protobuf.util.Timestamps Convert Timestamp to RFC 3339 date string format. toString(Timestamp) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Timestamps.toString(com.google.protobuf.Timestamp) instead. toString(Duration) - Static method in class com.google.protobuf.util.TimeUtil Deprecated. Use Durations.toString(com.google.protobuf.Duration) instead. toStringUtf8() - Method in class com.google.protobuf.ByteString Constructs a new String by decoding the bytes as UTF-8. TRAILING_COMMENTS_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location Type - Class in com.google.protobuf A protocol buffer message type. Type.Builder - Class in com.google.protobuf A protocol buffer message type. TYPE_BOOL_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_BOOL = 8; TYPE_BOOL_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type bool. TYPE_BYTES_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type New in version 2. TYPE_BYTES_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type bytes. TYPE_DOUBLE_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type 0 is reserved for errors. TYPE_DOUBLE_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type double. TYPE_ENUM_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_ENUM = 14; TYPE_ENUM_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type enum. TYPE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto TYPE_FIXED32_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_FIXED32 = 7; TYPE_FIXED32_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type fixed32. TYPE_FIXED64_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_FIXED64 = 6; TYPE_FIXED64_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type fixed64. TYPE_FLOAT_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_FLOAT = 2; TYPE_FLOAT_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type float. TYPE_GROUP_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Tag-delimited aggregate. TYPE_GROUP_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type group. TYPE_INT32_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Not ZigZag encoded. TYPE_INT32_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type int32. TYPE_INT64_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Not ZigZag encoded. TYPE_INT64_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type int64. TYPE_MESSAGE_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Length-delimited aggregate. TYPE_MESSAGE_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type message. TYPE_NAME_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto TYPE_SFIXED32_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_SFIXED32 = 15; TYPE_SFIXED32_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type sfixed32. TYPE_SFIXED64_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_SFIXED64 = 16; TYPE_SFIXED64_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type sfixed64. TYPE_SINT32_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Uses ZigZag encoding. TYPE_SINT32_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type sint32. TYPE_SINT64_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Uses ZigZag encoding. TYPE_SINT64_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type sint64. TYPE_STRING_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_STRING = 9; TYPE_STRING_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type string. TYPE_UINT32_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_UINT32 = 13; TYPE_UINT32_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type uint32. TYPE_UINT64_VALUE - Static variable in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type TYPE_UINT64 = 4; TYPE_UINT64_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type uint64. TYPE_UNKNOWN_VALUE - Static variable in enum com.google.protobuf.Field.Kind Field type unknown. TYPE_URL_FIELD_NUMBER - Static variable in class com.google.protobuf.Any TYPE_URL_FIELD_NUMBER - Static variable in class com.google.protobuf.Field TypeOrBuilder - Interface in com.google.protobuf TypeProto - Class in com.google.protobuf TypeRegistry - Class in com.google.protobuf A TypeRegistry is used to resolve Any messages. TypeRegistry.Builder - Class in com.google.protobuf A Builder is used to build TypeRegistry. U UInt32Value - Class in com.google.protobuf Wrapper message for `uint32`. UInt32Value.Builder - Class in com.google.protobuf Wrapper message for `uint32`. UInt32ValueOrBuilder - Interface in com.google.protobuf UInt64Value - Class in com.google.protobuf Wrapper message for `uint64`. UInt64Value.Builder - Class in com.google.protobuf Wrapper message for `uint64`. UInt64ValueOrBuilder - Interface in com.google.protobuf unescapeBytes(CharSequence) - Static method in class com.google.protobuf.TextFormat Un-escape a byte sequence as escaped using TextFormat.escapeBytes(ByteString). UninitializedMessageException - Exception in com.google.protobuf Thrown when attempting to build a protocol message that is missing required fields. UninitializedMessageException(MessageLite) - Constructor for exception com.google.protobuf.UninitializedMessageException UninitializedMessageException(List<String>) - Constructor for exception com.google.protobuf.UninitializedMessageException UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumValueOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MessageOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.MethodOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.OneofOptions UNINTERPRETED_OPTION_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.ServiceOptions union(FieldMask, FieldMask, FieldMask...) - Static method in class com.google.protobuf.util.FieldMaskUtil Creates a union of two or more FieldMasks. UnknownFieldParseException(String) - Constructor for exception com.google.protobuf.TextFormat.UnknownFieldParseException Create a new instance, with -1 as the line and column numbers, and an empty unknown field name. UnknownFieldParseException(int, int, String, String) - Constructor for exception com.google.protobuf.TextFormat.UnknownFieldParseException Create a new instance unpack(Class<T>) - Method in class com.google.protobuf.Any UnsafeByteOperations - Class in com.google.protobuf Provides a number of unsafe byte operations to be used by advanced applications with high performance requirements. unsafeWrap(byte[]) - Static method in class com.google.protobuf.UnsafeByteOperations An unsafe operation that returns a ByteString that is backed by the provided buffer. unsafeWrap(byte[], int, int) - Static method in class com.google.protobuf.UnsafeByteOperations An unsafe operation that returns a ByteString that is backed by a subregion of the provided buffer. unsafeWrap(ByteBuffer) - Static method in class com.google.protobuf.UnsafeByteOperations An unsafe operation that returns a ByteString that is backed by the provided buffer. unsafeWriteTo(ByteString, ByteOutput) - Static method in class com.google.protobuf.UnsafeByteOperations Writes the given ByteString to the provided ByteOutput. unsignedLexicographicalComparator() - Static method in class com.google.protobuf.ByteString Returns a Comparator which compares ByteString-s lexicographically as sequences of unsigned bytes (i.e. unsignedToString(int) - Static method in class com.google.protobuf.TextFormat Convert an unsigned 32-bit integer to a string. unsignedToString(long) - Static method in class com.google.protobuf.TextFormat Convert an unsigned 64-bit integer to a string. unwrapIOException() - Method in exception com.google.protobuf.InvalidProtocolBufferException Unwraps the underlying IOException if this exception was caused by an I/O problem. useDeterministicSerialization() - Method in class com.google.protobuf.CodedOutputStream Configures serialization to be deterministic. usingTypeRegistry(TypeRegistry) - Method in class com.google.protobuf.TextFormat.Printer Creates a new TextFormat.Printer using the given typeRegistry. usingTypeRegistry(JsonFormat.TypeRegistry) - Method in class com.google.protobuf.util.JsonFormat.Parser Creates a new JsonFormat.Parser using the given registry. usingTypeRegistry(TypeRegistry) - Method in class com.google.protobuf.util.JsonFormat.Parser Creates a new JsonFormat.Parser using the given registry. usingTypeRegistry(JsonFormat.TypeRegistry) - Method in class com.google.protobuf.util.JsonFormat.Printer Creates a new JsonFormat.Printer using the given registry. usingTypeRegistry(TypeRegistry) - Method in class com.google.protobuf.util.JsonFormat.Printer Creates a new JsonFormat.Printer using the given registry. V Value - Class in com.google.protobuf `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. Value.Builder - Class in com.google.protobuf `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. Value.KindCase - Enum in com.google.protobuf VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Any VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.BoolValue VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.BytesValue VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.DoubleValue VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.FloatValue VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Int32Value VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Int64Value VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.Option VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.StringValue VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.UInt32Value VALUE_FIELD_NUMBER - Static variable in class com.google.protobuf.UInt64Value valueOf(String) - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature Deprecated. Use PluginProtos.CodeGeneratorResponse.Feature.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature valueOf(String) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label Deprecated. Use DescriptorProtos.FieldDescriptorProto.Label.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label valueOf(String) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Deprecated. Use DescriptorProtos.FieldDescriptorProto.Type.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type valueOf(String) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType Deprecated. Use DescriptorProtos.FieldOptions.CType.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType valueOf(String) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType Deprecated. Use DescriptorProtos.FieldOptions.JSType.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType valueOf(String) - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode Deprecated. Use DescriptorProtos.FileOptions.OptimizeMode.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode valueOf(String) - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel Deprecated. Use DescriptorProtos.MethodOptions.IdempotencyLevel.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel valueOf(String) - Static method in enum com.google.protobuf.Descriptors.FieldDescriptor.JavaType Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.Descriptors.FieldDescriptor.Type Returns the enum constant of this type with the specified name. valueOf(DescriptorProtos.FieldDescriptorProto.Type) - Static method in enum com.google.protobuf.Descriptors.FieldDescriptor.Type valueOf(String) - Static method in enum com.google.protobuf.Descriptors.FileDescriptor.Syntax Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.Extension.MessageType Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.Field.Cardinality Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.Field.Cardinality Deprecated. Use Field.Cardinality.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.Field.Cardinality valueOf(String) - Static method in enum com.google.protobuf.Field.Kind Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.Field.Kind Deprecated. Use Field.Kind.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.Field.Kind valueOf(String) - Static method in enum com.google.protobuf.FieldType Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.JavaType Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.NullValue Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.NullValue Deprecated. Use NullValue.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.NullValue valueOf(String) - Static method in enum com.google.protobuf.ProtoSyntax Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.Syntax Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.Syntax Deprecated. Use Syntax.forNumber(int) instead. valueOf(Descriptors.EnumValueDescriptor) - Static method in enum com.google.protobuf.Syntax valueOf(String) - Static method in enum com.google.protobuf.TextFormat.Parser.SingularOverwritePolicy Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.Value.KindCase Returns the enum constant of this type with the specified name. valueOf(int) - Static method in enum com.google.protobuf.Value.KindCase Deprecated. Use Value.KindCase.forNumber(int) instead. valueOf(String) - Static method in enum com.google.protobuf.WireFormat.FieldType Returns the enum constant of this type with the specified name. valueOf(String) - Static method in enum com.google.protobuf.WireFormat.JavaType Returns the enum constant of this type with the specified name. ValueOrBuilder - Interface in com.google.protobuf values() - Static method in enum com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.Feature Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Label Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.DescriptorProtos.FieldDescriptorProto.Type Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.CType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.DescriptorProtos.FieldOptions.JSType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.DescriptorProtos.FileOptions.OptimizeMode Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.DescriptorProtos.MethodOptions.IdempotencyLevel Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Descriptors.FieldDescriptor.JavaType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Descriptors.FieldDescriptor.Type Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Descriptors.FileDescriptor.Syntax Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Extension.MessageType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Field.Cardinality Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Field.Kind Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.FieldType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.JavaType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.NullValue Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.ProtoSyntax Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.Syntax Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.TextFormat.Parser.SingularOverwritePolicy Returns an array containing the constants of this enum type, in the order they are declared. Values - Class in com.google.protobuf.util Utilities to help create google.protobuf.Value messages. values() - Static method in enum com.google.protobuf.Value.KindCase Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.WireFormat.FieldType Returns an array containing the constants of this enum type, in the order they are declared. values() - Static method in enum com.google.protobuf.WireFormat.JavaType Returns an array containing the constants of this enum type, in the order they are declared. VALUES_FIELD_NUMBER - Static variable in class com.google.protobuf.ListValue VERSION_FIELD_NUMBER - Static variable in class com.google.protobuf.Api W WEAK_DEPENDENCY_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FileDescriptorProto WEAK_FIELD_NUMBER - Static variable in class com.google.protobuf.DescriptorProtos.FieldOptions WireFormat - Class in com.google.protobuf This class is used internally by the Protocol Buffer library and generated message implementations. WireFormat.FieldType - Enum in com.google.protobuf Lite equivalent to Descriptors.FieldDescriptor.Type. WireFormat.JavaType - Enum in com.google.protobuf Lite equivalent to Descriptors.FieldDescriptor.JavaType. WIRETYPE_END_GROUP - Static variable in class com.google.protobuf.WireFormat WIRETYPE_FIXED32 - Static variable in class com.google.protobuf.WireFormat WIRETYPE_FIXED64 - Static variable in class com.google.protobuf.WireFormat WIRETYPE_LENGTH_DELIMITED - Static variable in class com.google.protobuf.WireFormat WIRETYPE_START_GROUP - Static variable in class com.google.protobuf.WireFormat WIRETYPE_VARINT - Static variable in class com.google.protobuf.WireFormat WrappersProto - Class in com.google.protobuf write(byte) - Method in class com.google.protobuf.ByteOutput Writes a single byte. write(byte[], int, int) - Method in class com.google.protobuf.ByteOutput Writes a sequence of bytes. write(ByteBuffer) - Method in class com.google.protobuf.ByteOutput Writes a sequence of bytes. write(int) - Method in class com.google.protobuf.ByteString.Output write(byte[], int, int) - Method in class com.google.protobuf.ByteString.Output write(byte) - Method in class com.google.protobuf.CodedOutputStream write(byte[], int, int) - Method in class com.google.protobuf.CodedOutputStream write(ByteBuffer) - Method in class com.google.protobuf.CodedOutputStream writeBool(int, boolean) - Method in class com.google.protobuf.CodedOutputStream Write a bool field, including tag, to the stream. writeBoolNoTag(boolean) - Method in class com.google.protobuf.CodedOutputStream Write a bool field to the stream. writeByteArray(int, byte[]) - Method in class com.google.protobuf.CodedOutputStream Write a bytes field, including tag, to the stream. writeByteArray(int, byte[], int, int) - Method in class com.google.protobuf.CodedOutputStream Write a bytes field, including tag, to the stream. writeByteArrayNoTag(byte[]) - Method in class com.google.protobuf.CodedOutputStream Write a bytes field to the stream. writeByteBuffer(int, ByteBuffer) - Method in class com.google.protobuf.CodedOutputStream Write a bytes field, including tag, to the stream. writeBytes(int, ByteString) - Method in class com.google.protobuf.CodedOutputStream Write a bytes field, including tag, to the stream. writeBytesNoTag(ByteString) - Method in class com.google.protobuf.CodedOutputStream Write a bytes field to the stream. writeDelimitedTo(OutputStream) - Method in class com.google.protobuf.AbstractMessageLite writeDelimitedTo(OutputStream) - Method in interface com.google.protobuf.MessageLite Like MessageLite.writeTo(OutputStream), but writes the size of the message as a varint before writing the data. writeDouble(int, double) - Method in class com.google.protobuf.CodedOutputStream Write a double field, including tag, to the stream. writeDoubleNoTag(double) - Method in class com.google.protobuf.CodedOutputStream Write a double field to the stream. writeEnum(int, int) - Method in class com.google.protobuf.CodedOutputStream Write an enum field, including tag, to the stream. writeEnumNoTag(int) - Method in class com.google.protobuf.CodedOutputStream Write an enum field to the stream. writeFixed32(int, int) - Method in class com.google.protobuf.CodedOutputStream Write a fixed32 field, including tag, to the stream. writeFixed32NoTag(int) - Method in class com.google.protobuf.CodedOutputStream Write a fixed32 field to the stream. writeFixed64(int, long) - Method in class com.google.protobuf.CodedOutputStream Write a fixed64 field, including tag, to the stream. writeFixed64NoTag(long) - Method in class com.google.protobuf.CodedOutputStream Write a fixed64 field to the stream. writeFloat(int, float) - Method in class com.google.protobuf.CodedOutputStream Write a float field, including tag, to the stream. writeFloatNoTag(float) - Method in class com.google.protobuf.CodedOutputStream Write a float field to the stream. writeGroup(int, MessageLite) - Method in class com.google.protobuf.CodedOutputStream Deprecated. groups are deprecated. writeGroupNoTag(MessageLite) - Method in class com.google.protobuf.CodedOutputStream Deprecated. groups are deprecated. writeInt32(int, int) - Method in class com.google.protobuf.CodedOutputStream Write an int32 field, including tag, to the stream. writeInt32NoTag(int) - Method in class com.google.protobuf.CodedOutputStream Write an int32 field to the stream. writeInt64(int, long) - Method in class com.google.protobuf.CodedOutputStream Write an int64 field, including tag, to the stream. writeInt64NoTag(long) - Method in class com.google.protobuf.CodedOutputStream Write an int64 field to the stream. writeLazy(byte[], int, int) - Method in class com.google.protobuf.ByteOutput Writes a sequence of bytes. writeLazy(ByteBuffer) - Method in class com.google.protobuf.ByteOutput Writes a sequence of bytes. writeLazy(byte[], int, int) - Method in class com.google.protobuf.CodedOutputStream writeLazy(ByteBuffer) - Method in class com.google.protobuf.CodedOutputStream writeMessage(int, MessageLite) - Method in class com.google.protobuf.CodedOutputStream Write an embedded message field, including tag, to the stream. writeMessageNoTag(MessageLite) - Method in class com.google.protobuf.CodedOutputStream Write an embedded message field to the stream. writeMessageSetExtension(int, MessageLite) - Method in class com.google.protobuf.CodedOutputStream Write a MessageSet extension field to the stream. writeRawByte(byte) - Method in class com.google.protobuf.CodedOutputStream Write a single byte. writeRawByte(int) - Method in class com.google.protobuf.CodedOutputStream Write a single byte, represented by an integer value. writeRawBytes(byte[]) - Method in class com.google.protobuf.CodedOutputStream Write an array of bytes. writeRawBytes(byte[], int, int) - Method in class com.google.protobuf.CodedOutputStream Write part of an array of bytes. writeRawBytes(ByteString) - Method in class com.google.protobuf.CodedOutputStream Write a byte string. writeRawBytes(ByteBuffer) - Method in class com.google.protobuf.CodedOutputStream Write a ByteBuffer. writeRawLittleEndian32(int) - Method in class com.google.protobuf.CodedOutputStream Deprecated. Use CodedOutputStream.writeFixed32NoTag(int) instead. writeRawLittleEndian64(long) - Method in class com.google.protobuf.CodedOutputStream Deprecated. Use CodedOutputStream.writeFixed64NoTag(long) instead. writeRawMessageSetExtension(int, ByteString) - Method in class com.google.protobuf.CodedOutputStream Write an unparsed MessageSet extension field to the stream. writeRawVarint32(int) - Method in class com.google.protobuf.CodedOutputStream Deprecated. use CodedOutputStream.writeUInt32NoTag(int) instead. writeRawVarint64(long) - Method in class com.google.protobuf.CodedOutputStream Deprecated. use CodedOutputStream.writeUInt64NoTag(long) instead. writeSFixed32(int, int) - Method in class com.google.protobuf.CodedOutputStream Write an sfixed32 field, including tag, to the stream. writeSFixed32NoTag(int) - Method in class com.google.protobuf.CodedOutputStream Write a sfixed32 field to the stream. writeSFixed64(int, long) - Method in class com.google.protobuf.CodedOutputStream Write an sfixed64 field, including tag, to the stream. writeSFixed64NoTag(long) - Method in class com.google.protobuf.CodedOutputStream Write a sfixed64 field to the stream. writeSInt32(int, int) - Method in class com.google.protobuf.CodedOutputStream Write a sint32 field, including tag, to the stream. writeSInt32NoTag(int) - Method in class com.google.protobuf.CodedOutputStream Write a sint32 field to the stream. writeSInt64(int, long) - Method in class com.google.protobuf.CodedOutputStream Write an sint64 field, including tag, to the stream. writeSInt64NoTag(long) - Method in class com.google.protobuf.CodedOutputStream Write a sint64 field to the stream. writeString(int, String) - Method in class com.google.protobuf.CodedOutputStream Write a string field, including tag, to the stream. writeStringNoTag(String) - Method in class com.google.protobuf.CodedOutputStream Write a string field to the stream. writeTag(int, int) - Method in class com.google.protobuf.CodedOutputStream Encode and write a tag. writeTo(CodedOutputStream) - Method in class com.google.protobuf.AbstractMessage writeTo(OutputStream) - Method in class com.google.protobuf.AbstractMessageLite writeTo(CodedOutputStream) - Method in class com.google.protobuf.Any writeTo(CodedOutputStream) - Method in class com.google.protobuf.Api writeTo(CodedOutputStream) - Method in class com.google.protobuf.BoolValue writeTo(OutputStream) - Method in class com.google.protobuf.ByteString.Output Writes the complete contents of this byte array output stream to the specified output stream argument. writeTo(OutputStream) - Method in class com.google.protobuf.ByteString Writes a copy of the contents of this byte string to the specified output stream argument. writeTo(CodedOutputStream) - Method in class com.google.protobuf.BytesValue writeTo(CodedOutputStream) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorRequest writeTo(CodedOutputStream) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse.File writeTo(CodedOutputStream) - Method in class com.google.protobuf.compiler.PluginProtos.CodeGeneratorResponse writeTo(CodedOutputStream) - Method in class com.google.protobuf.compiler.PluginProtos.Version writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ExtensionRange writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto.ReservedRange writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.DescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto.EnumReservedRange writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.EnumDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.EnumOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.EnumValueDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.EnumValueOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.ExtensionRangeOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.FieldDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.FieldOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.FileDescriptorSet writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.FileOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo.Annotation writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.GeneratedCodeInfo writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.MessageOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.MethodDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.MethodOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.OneofDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.OneofOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.ServiceDescriptorProto writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.ServiceOptions writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo.Location writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.SourceCodeInfo writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption.NamePart writeTo(CodedOutputStream) - Method in class com.google.protobuf.DescriptorProtos.UninterpretedOption writeTo(CodedOutputStream) - Method in class com.google.protobuf.DoubleValue writeTo(CodedOutputStream) - Method in class com.google.protobuf.Duration writeTo(CodedOutputStream) - Method in class com.google.protobuf.DynamicMessage writeTo(CodedOutputStream) - Method in class com.google.protobuf.Empty writeTo(CodedOutputStream) - Method in class com.google.protobuf.Enum writeTo(CodedOutputStream) - Method in class com.google.protobuf.EnumValue writeTo(CodedOutputStream) - Method in class com.google.protobuf.Field writeTo(CodedOutputStream) - Method in class com.google.protobuf.FieldMask writeTo(CodedOutputStream) - Method in class com.google.protobuf.FloatValue writeTo(CodedOutputStream) - Method in class com.google.protobuf.Int32Value writeTo(CodedOutputStream) - Method in class com.google.protobuf.Int64Value writeTo(CodedOutputStream) - Method in class com.google.protobuf.ListValue writeTo(CodedOutputStream) - Method in interface com.google.protobuf.MessageLite Serializes the message and writes it to output. writeTo(OutputStream) - Method in interface com.google.protobuf.MessageLite Serializes the message and writes it to output. writeTo(CodedOutputStream) - Method in class com.google.protobuf.Method writeTo(CodedOutputStream) - Method in class com.google.protobuf.Mixin writeTo(CodedOutputStream) - Method in class com.google.protobuf.Option writeTo(CodedOutputStream) - Method in class com.google.protobuf.SourceContext writeTo(CodedOutputStream) - Method in class com.google.protobuf.StringValue writeTo(CodedOutputStream) - Method in class com.google.protobuf.Struct writeTo(CodedOutputStream) - Method in class com.google.protobuf.Timestamp writeTo(CodedOutputStream) - Method in class com.google.protobuf.Type writeTo(CodedOutputStream) - Method in class com.google.protobuf.UInt32Value writeTo(CodedOutputStream) - Method in class com.google.protobuf.UInt64Value writeTo(CodedOutputStream) - Method in class com.google.protobuf.Value writeUInt32(int, int) - Method in class com.google.protobuf.CodedOutputStream Write a uint32 field, including tag, to the stream. writeUInt32NoTag(int) - Method in class com.google.protobuf.CodedOutputStream Write a uint32 field to the stream. writeUInt64(int, long) - Method in class com.google.protobuf.CodedOutputStream Write a uint64 field, including tag, to the stream. writeUInt64NoTag(long) - Method in class com.google.protobuf.CodedOutputStream Write a uint64 field to the stream. Z ZERO - Static variable in class com.google.protobuf.util.Durations A constant holding the duration of zero. A B C D E F G H I J K L M N O P R S T U V W Z\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:14.073Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":223323}}490{"id":"doc-multivectors_and_late_interaction_qdrant-26b9663a","source":"documentation","title":"Multivectors and Late Interaction - Qdrant","url":"https://qdrant.tech/documentation/tutorials-search-engineering/using-multivector-representations/","text":"Example:\n```python\nfrom qdrant_client import QdrantClient, models\n\nclient = QdrantClient(\"http://localhost:6333\")\ncollection_name = \"dense_multivector_demo\"\nclient.create_collection(\n collection_name=collection_name,\n vectors_config={\n \"dense\": models.VectorParams(\n size=384,\n distance=models.Distance.COSINE\n # Leave HNSW indexing ON for dense\n ),\n \"colbert\": models.VectorParams(\n size=128,\n distance=models.Distance.COSINE,\n multivector_config=models.MultiVectorConfig(\n comparator=models.MultiVectorComparator.MAX_SIM\n ),\n hnsw_config=models.HnswConfigDiff(m=0) # Disable HNSW for reranking\n )\n }\n)\n```\n\nExample:\n```bash\npip install qdrant-client[fastembed]>=1.14.2\n```\n\nExample:\n```python\nfrom qdrant_client import QdrantClient, models\n\n# 1. Connect to Qdrant server\nclient = QdrantClient(\"http://localhost:6333\")\n```\n\nExample:\n```python\nfrom fastembed import TextEmbedding, LateInteractionTextEmbedding\n# Example documents and query\ndocuments = [\n \"Artificial intelligence is used in hospitals for cancer diagnosis and treatment.\",\n \"Self-driving cars use AI to detect obstacles and make driving decisions.\",\n \"AI is transforming customer service through chatbots and automation.\",\n # ...\n]\nquery_text = \"How does AI help in medicine?\"\n\ndense_documents = [\n models.Document(text=doc, model=\"BAAI/bge-small-en\")\n for doc in documents\n]\ndense_query = models.Document(text=query_text, model=\"BAAI/bge-small-en\")\n\ncolbert_documents = [\n models.Document(text=doc, model=\"colbert-ir/colbertv2.0\")\n for doc in documents\n]\ncolbert_query = models.Document(text=query_text, model=\"colbert-ir/colbertv2.0\")\n```\n\nExample:\n```python\ncollection_name = \"dense_multivector_demo\"\nclient.create_collection(\n collection_name=collection_name,\n vectors_config={\n \"dense\": models.VectorParams(\n size=384,\n distance=models.Distance.COSINE\n # Leave HNSW indexing ON for dense\n ),\n \"colbert\": models.VectorParams(\n size=128,\n distance=models.Distance.COSINE,\n multivector_config=models.MultiVectorConfig(\n comparator=models.MultiVectorComparator.MAX_SIM\n ),\n hnsw_config=models.HnswConfigDiff(m=0) # Disable HNSW for reranking\n )\n }\n)\n```\n\nExample:\n```python\npoints = [\n models.PointStruct(\n id=i,\n vector={\n \"dense\": dense_documents[i],\n \"colbert\": colbert_documents[i]\n },\n payload={\"text\": documents[i]}\n ) for i in range(len(documents))\n]\nclient.upload_points(\n collection_name=\"dense_multivector_demo\", \n points=points, \n batch_size=8\n)\n```\n\nExample:\n```python\nresults = client.query_points(\n collection_name=\"dense_multivector_demo\",\n prefetch=models.Prefetch(\n query=dense_query,\n using=\"dense\",\n ),\n query=colbert_query,\n using=\"colbert\",\n limit=3,\n with_payload=True\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:32.596Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":122,"estimatedTokens":771}}491{"id":"doc-inference_api_qdrant-fec44378","source":"documentation","title":"Inference API - Qdrant","url":"https://qdrant.tech/documentation/inference/inference-api/","text":"Example:\n```js\n// Document\n{\n // Text input\n text: \"Your text\",\n // Name of the model, to do inference with\n model: \"<the-model-to-use>\",\n // Extra parameters for the model, Optional\n options: {}\n}\n```\n\nExample:\n```js\n// Image\n{\n // Image input\n image: \"<url>\", // Or base64 encoded image\n // Name of the model, to do inference with\n model: \"<the-model-to-use>\",\n // Extra parameters for the model, Optional\n options: {}\n}\n```\n\nExample:\n```http\nPOST /collections/<your-collection>/points/query\n{\n \"query\": {\n \"nearest\": [0.12, 0.34, 0.56, 0.78, ...]\n }\n}\n```\n\nExample:\n```python\nclient.query_points(\n collection_name=\"{collection_name}\",\n query=[0.12, 0.34, 0.56, 0.78],\n)\n```\n\nExample:\n```typescript\nimport { QdrantClient } from \"@qdrant/js-client-rest\";\n\nclient.query(\"{collection_name}\", {\n query: [0.12, 0.34, 0.56, 0.78],\n});\n```\n\nExample:\n```rust\nuse qdrant_client::Qdrant;\nuse qdrant_client::qdrant::{Query, QueryPointsBuilder};\n\nclient\n .query(\n QueryPointsBuilder::new(\"{collection_name}\")\n .query(Query::new_nearest(vec![0.12, 0.34, 0.56, 0.78]))\n )\n .await?;\n```\n\nExample:\n```java\nimport static io.qdrant.client.QueryFactory.nearest;\n\nimport io.qdrant.client.QdrantClient;\nimport io.qdrant.client.QdrantGrpcClient;\nimport io.qdrant.client.grpc.Points.QueryPoints;\nimport java.util.List;\n\nclient.queryAsync(QueryPoints.newBuilder()\n .setCollectionName(\"{collection_name}\")\n .setQuery(nearest(List.of(0.12f, 0.34f, 0.56f, 0.78f)))\n .build()).get();\n```\n\nExample:\n```csharp\nusing Qdrant.Client;\n\nawait client.QueryAsync(\n collectionName: \"{collection_name}\",\n query: new float[] { 0.12f, 0.34f, 0.56f, 0.78f }\n);\n```\n\nExample:\n```go\nimport (\n\t\"context\"\n\n\t\"github.com/qdrant/go-client/qdrant\"\n)\n\nclient.Query(context.Background(), &qdrant.QueryPoints{\n\tCollectionName: \"{collection_name}\",\n\tQuery: qdrant.NewQuery(0.12, 0.34, 0.56, 0.78),\n})\n```\n\nExample:\n```http\nPOST /collections/<your-collection>/points/query\n{\n \"query\": {\n \"nearest\": {\n \"text\": \"My Query Text\",\n \"model\": \"<the-model-to-use>\"\n }\n }\n}\n```\n\nExample:\n```python\nfrom qdrant_client import QdrantClient, models\n\nclient.query_points(\n collection_name=\"{collection_name}\",\n query=models.Document(\n text=\"My Query Text\",\n model=\"<the-model-to-use>\",\n ),\n)\n```\n\nExample:\n```typescript\nimport { QdrantClient } from \"@qdrant/js-client-rest\";\n\nclient.query(\"{collection_name}\", {\n query: {\n text: 'My Query Text',\n model: '<the-model-to-use>',\n },\n});\n```\n\nExample:\n```rust\nuse qdrant_client::{\n Qdrant,\n qdrant::{Document, Query, QueryPointsBuilder},\n};\n\nclient\n .query(\n QueryPointsBuilder::new(\"{collection_name}\")\n .query(Query::new_nearest(Document {\n text: \"My Query Text\".into(),\n model: \"<the-model-to-use>\".into(),\n ..Default::default()\n }))\n .build(),\n )\n .await?;\n```\n\nExample:\n```java\nimport static io.qdrant.client.QueryFactory.nearest;\n\nimport io.qdrant.client.QdrantClient;\nimport io.qdrant.client.QdrantGrpcClient;\nimport io.qdrant.client.grpc.Points.Document;\nimport io.qdrant.client.grpc.Points;\n\n client\n .queryAsync(\n Points.QueryPoints.newBuilder()\n .setCollectionName(\"{collection_name}\")\n .setQuery(\n nearest(\n Document.newBuilder()\n .setModel(\"<the-model-to-use>\")\n .setText(\"My Query Text\")\n .build()))\n .build())\n .get();\n```\n\nExample:\n```csharp\nusing Qdrant.Client;\nusing Qdrant.Client.Grpc;\n\nawait client.QueryAsync(\n collectionName: \"{collection_name}\",\n query: new Document() { Model = \"<the-model-to-use>\", Text = \"My Query Text\" }\n);\n```\n\nExample:\n```go\nimport (\n\t\"context\"\n\n\t\"github.com/qdrant/go-client/qdrant\"\n)\n\nclient.Query(context.Background(), &qdrant.QueryPoints{\n\tCollectionName: \"{collection_name}\",\n\tQuery: qdrant.NewQueryNearest(\n\t\tqdrant.NewVectorInputDocument(&qdrant.Document{\n\t\t\tText: \"My Query Text\",\n\t\t\tModel: \"<the-model-to-use>\",\n\t\t}),\n\t),\n})\n```\n\nExample:\n```http\nPUT /collections/{collection_name}/points?wait=true\n{\n \"points\": [\n {\n \"id\": 1,\n \"vector\": {\n \"image\": {\n \"image\": \"https://qdrant.tech/example.png\",\n \"model\": \"jinaai/jina-clip-v2\",\n \"options\": {\n \"jina-api-key\": \"<YOUR_JINAAI_API_KEY>\",\n \"dimensions\": 512\n }\n },\n \"text\": {\n \"text\": \"Mars, the red planet\",\n \"model\": \"sentence-transformers/all-minilm-l6-v2\"\n },\n \"bm25\": {\n \"text\": \"Mars, the red planet\",\n \"model\": \"qdrant/bm25\"\n }\n }\n }\n ]\n}\n```\n\nExample:\n```python\nfrom qdrant_client import QdrantClient, models\n\nclient = QdrantClient(\n url=\"https://xyz-example.qdrant.io:6333\",\n api_key=\"<your-qdrant-api-key>\",\n cloud_inference=True\n)\n\nclient.upsert(\n collection_name=\"{collection_name}\",\n points=[\n models.PointStruct(\n id=1,\n vector={\n \"image\": models.Image(\n image=\"https://qdrant.tech/example.png\",\n model=\"jinaai/jina-clip-v2\",\n options={\n \"jina-api-key\": \"<your_jinaai_api_key>\",\n \"dimensions\": 512\n },\n ),\n \"text\": models.Document(\n text=\"Mars, the red planet\",\n model=\"sentence-transformers/all-minilm-l6-v2\",\n ),\n \"bm25\": models.Document(\n text=\"Mars, the red planet\",\n model=\"Qdrant/bm25\",\n ),\n },\n )\n ],\n)\n```\n\nExample:\n```typescript\nimport { QdrantClient } from \"@qdrant/js-client-rest\";\n\nclient.upsert(\"{collection_name}\", {\n points: [\n {\n id: 1,\n vector: {\n image: {\n image: 'https://qdrant.tech/example.png',\n model: 'jinaai/jina-clip-v2',\n options: {\n 'jina-api-key': '<your_jinaai_api_key>',\n dimensions: 512,\n },\n },\n text: {\n text: 'Mars, the red planet',\n model: 'sentence-transformers/all-minilm-l6-v2',\n },\n bm25: {\n text: 'Mars, the red planet',\n model: 'Qdrant/bm25',\n },\n },\n },\n ],\n});\n```\n\nExample:\n```rust\nuse qdrant_client::{\n Payload, Qdrant,\n qdrant::{Document, Image, NamedVectors, PointStruct, UpsertPointsBuilder},\n};\nuse std::collections::HashMap;\n\nlet mut jina_options = HashMap::new();\njina_options.insert(\"jina-api-key\".to_string(), \"<YOUR_JINAAI_API_KEY>\".into());\njina_options.insert(\"dimensions\".to_string(), 512.into());\n\nclient\n .upsert_points(\n UpsertPointsBuilder::new(\n \"{collection_name}\",\n vec![PointStruct::new(\n 1,\n NamedVectors::default()\n .add_vector(\n \"image\",\n Image {\n image: Some(\"https://qdrant.tech/example.png\".into()),\n model: \"jinaai/jina-clip-v2\".into(),\n options: jina_options,\n },\n )\n .add_vector(\n \"text\",\n Document {\n text: \"Mars, the red planet\".into(),\n model: \"sentence-transformers/all-minilm-l6-v2\".into(),\n ..Default::default()\n },\n )\n .add_vector(\n \"bm25\",\n Document {\n text: \"How to bake cookies?\".into(),\n model: \"qdrant/bm25\".into(),\n ..Default::default()\n },\n ),\n Payload::default(),\n )],\n )\n .wait(true),\n )\n .await?;\n```\n\nExample:\n```java\nimport static io.qdrant.client.PointIdFactory.id;\nimport static io.qdrant.client.ValueFactory.value;\nimport static io.qdrant.client.VectorFactory.vector;\nimport static io.qdrant.client.VectorsFactory.namedVectors;\n\nimport io.qdrant.client.QdrantClient;\nimport io.qdrant.client.QdrantGrpcClient;\nimport io.qdrant.client.grpc.Points.Document;\nimport io.qdrant.client.grpc.Points.Image;\nimport io.qdrant.client.grpc.Points.PointStruct;\nimport java.util.List;\nimport java.util.Map;\n\n client\n .upsertAsync(\n \"{collection_name}\",\n List.of(\n PointStruct.newBuilder()\n .setId(id(1))\n .setVectors(\n namedVectors(\n Map.of(\n \"image\",\n vector(\n Image.newBuilder()\n .setModel(\"jinaai/jina-clip-v2\")\n .setImage(value(\"https://qdrant.tech/example.png\"))\n .putAllOptions(\n Map.of(\n \"jina-api-key\",\n value(\"<YOUR_JINAAI_API_KEY>\"),\n \"dimensions\",\n value(512)))\n .build()),\n \"text\",\n vector(\n Document.newBuilder()\n .setModel(\"sentence-transformers/all-minilm-l6-v2\")\n .setText(\"Mars, the red planet\")\n .build()),\n \"bm25\",\n vector(\n Document.newBuilder()\n .setModel(\"qdrant/bm25\")\n .setText(\"Mars, the red planet\")\n .build()))))\n .build()))\n .get();\n```\n\nExample:\n```csharp\nusing Qdrant.Client;\nusing Qdrant.Client.Grpc;\n\nawait client.UpsertAsync(\n collectionName: \"{collection_name}\",\n points: new List<PointStruct>\n {\n new()\n {\n Id = 1,\n Vectors = new Dictionary<string, Vector>\n {\n [\"image\"] = new Image()\n {\n Model = \"jinaai/jina-clip-v2\",\n Image_ = \"https://qdrant.tech/example.png\",\n Options = { [\"jina-api-key\"] = \"<YOUR_JINAAI_API_KEY>\", [\"dimensions\"] = 512 },\n },\n [\"text\"] = new Document()\n {\n Model = \"sentence-transformers/all-minilm-l6-v2\",\n Text = \"Mars, the red planet\",\n },\n [\"bm25\"] = new Document() { Model = \"qdrant/bm25\", Text = \"Mars, the red planet\" },\n },\n },\n }\n);\n```\n\nExample:\n```go\nimport (\n\t\"context\"\n\n\t\"github.com/qdrant/go-client/qdrant\"\n)\n\nclient.Upsert(context.Background(), &qdrant.UpsertPoints{\n\tCollectionName: \"{collection_name}\",\n\tPoints: []*qdrant.PointStruct{\n\t\t{\n\t\t\tId: qdrant.NewIDNum(uint64(1)),\n\t\t\tVectors: qdrant.NewVectorsMap(map[string]*qdrant.Vector{\n\t\t\t\t\"image\": qdrant.NewVectorImage(&qdrant.Image{\n\t\t\t\t\tModel: \"jinaai/jina-clip-v2\",\n\t\t\t\t\tImage: qdrant.NewValueString(\"https://qdrant.tech/example.png\"),\n\t\t\t\t\tOptions: qdrant.NewValueMap(map[string]any{\n\t\t\t\t\t\t\"jina-api-key\": \"<YOUR_JINAAI_API_KEY>\",\n\t\t\t\t\t\t\"dimensions\": 512,\n\t\t\t\t\t}),\n\t\t\t\t}),\n\t\t\t\t\"text\": qdrant.NewVectorDocument(&qdrant.Document{\n\t\t\t\t\tModel: \"sentence-transformers/all-minilm-l6-v2\",\n\t\t\t\t\tText: \"Mars, the red planet\",\n\t\t\t\t}),\n\t\t\t\t\"my-bm25-vector\": qdrant.NewVectorDocument(&qdrant.Document{\n\t\t\t\t\tModel: \"qdrant/bm25\",\n\t\t\t\t\tText: \"Recipe for baking chocolate chip cookies\",\n\t\t\t\t}),\n\t\t\t}),\n\t\t},\n\t},\n})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:32.598Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":23,"totalLines":487,"estimatedTokens":3119}}492{"id":"doc-sqlite_documentation-5ea2568d","source":"documentation","title":"SQLite Documentation","url":"https://sqlite.org/docs.html","text":"▼ Document Lists And Indexes Alphabetical Listing Of All Documents Website Keyword Index Permuted Title Index ► Overview Documents About SQLite → A high-level overview of what SQLite is and why you might be interested in using it. Appropriate Uses For SQLite → This document describes situations where SQLite is an appropriate database engine to use versus situations where a client/server database engine might be a better choice. Distinctive Features → This document enumerates and describes some of the features of SQLite that make it different from other SQL database engines. Quirks of SQLite → This document is a short list of some unusual features of SQLite that tend to cause misunderstandings and confusion. The list includes both deliberate innovations and \"misfeatures\" that are retained only for backwards compatibility. How SQLite Is Tested → The reliability and robustness of SQLite is achieved in large part by thorough and careful testing. This document identifies the many tests that occur before every release of SQLite. Copyright → SQLite is in the public domain. This document describes what that means and the implications for contributors. Frequently Asked Questions → The title of the document says all... Books About SQLite → A list of independently written books about SQLite. ► Programming Interfaces SQLite In 5 Minutes Or Less → A very quick introduction to programming with SQLite. Introduction to the C/C++ API → This document introduces the C/C++ API. Users should read this document before the C/C++ API Reference Guide linked below. How To Compile SQLite → Instructions and hints for compiling SQLite C code and integrating that code with your own application. C/C++ API Reference → This document describes each API function separately. Result and Error Codes → A description of the meanings of the numeric result codes returned by various C/C++ interfaces. Application-Defined SQL Function → An overview of the C-language interfaces used to create new application-defined SQL functions in SQLite. Tcl API → A description of the TCL interface bindings for SQLite. SQLite Android Bindings → Information on how to deploy your own private copy of SQLite on Android, bypassing the built-in SQLite, but using the same Java interface. System.Data.SQLite → C#/.NET bindings for SQLite ► SQL Language Documentation SQL Syntax → This document describes the SQL language that is understood by SQLite. Pragma commands → This document describes SQLite performance tuning options and other special purpose database commands. Core SQL Functions → General-purpose built-in scalar SQL functions. Aggregate SQL Functions → General-purpose built-in aggregate SQL functions. Date and Time SQL Functions → SQL functions for manipulating dates and times. Window Functions → SQL Window functions. Generated Columns → Stored and virtual columns in table definitions. DataTypes → SQLite version 3 introduces the concept of manifest typing, where the type of a value is associated with the value itself, not the column that it is stored in. This page describes data typing for SQLite version 3 in further detail. Indexes On Expressions → Indexes in SQLite do not have to be over just plain table columns. Expressions can also be indexed. Row Values → SQLite supports comparisons, including inequality comparisons, between tuples of values, call \"row values\". This document explains. STRICT Tables → A STRICT table in SQLite does rigid type enforcement, in order to more closely mimic the behavior of other SQL database engines. ► Extensions JSON Functions → SQL functions for creating, parsing, and querying JSON content. FTS5 - Full Text Search → A description of the SQLite Full Text Search (FTS5) extension. FTS3 - Full Text Search → A description of the SQLite Full Text Search (FTS3) extension. R-Tree Module → A description of the SQLite R-Tree extension. An R-Tree is a specialized data structure that supports fast multi-dimensional range queries often used in geospatial systems. Sessions → The Sessions extension allows change to an SQLite database to be captured in a compact file which can be reverted on the original database (to implement \"undo\") or transferred and applied to another similar database. Run-Time Loadable Extensions → A general overview on how run-time loadable extensions work, how they are compiled, and how developers can create their own run-time loadable extensions for SQLite. Dbstat Virtual Table → The DBSTAT virtual table reports on the sizes and geometries of tables storing content in an SQLite database, and is the basis for the sqlite3_analyzer utility program. Csv Virtual Table → The CSV virtual table allows SQLite to directly read and query RFC 4180 formatted files. Carray → CARRAY is a table-valued function that allows C-language arrays to be used in SQL queries. generate_series → A description of the generate_series() table-valued function. Spellfix1 → The spellfix1 extension is an experiment in doing spelling correction for full-text search. Zipfile → A [virtual table] with accompanying support functions that can read and write a ZIP archive as if it were a database. The IEEE754 Extension → A set of SQL functions for encoding and decoding IEEE-754 floating point numbers. The Decimal Extension → A set of functions for doing arbitrary-precision decimal arithmetic, including expanding IEEE-754 floating point values to their exact decimal representation. The UINT Collating Sequence → A collating sequence that sorts text with embedded numbers in numeric order. The Percentile Extension → An implementation of aggregate (), percentile(), percentile_cont(), and percentile_disc(). ► Features 8+3 Filenames → How to make SQLite work on filesystems that only support 8+3 filenames. Autoincrement → A description of the AUTOINCREMENT keyword in SQLite, what it does, why it is sometimes useful, and why it should be avoided if not strictly necessary. Backup API → The online-backup interface can be used to copy content from a disk file into an in-memory database or vice versa and it can make a hot backup of a live database. This application note gives examples of how. Error and Warning Log → SQLite supports an \"error and warning log\" design to capture information about suspicious and/or error events during operation. Embedded applications are encouraged to enable the error and warning log to help with debugging application problems that arise in the field. This document explains how to do that. Foreign Key Support → This document describes the support for foreign key constraints introduced in version 3.6.19. Indexes On Expressions → Notes on how to create indexes on expressions instead of just individual columns. Internal versus External Blob Storage → Should you store large BLOBs directly in the database, or store them in files and just record the filename in the database? This document seeks to shed light on that question. Limits In SQLite → This document describes limitations of SQLite (the maximum length of a string or blob, the maximum size of a database, the maximum number of tables in a database, etc.) and how these limits can be altered at compile-time and run-time. Memory-Mapped I/O → SQLite supports memory-mapped I/O. Learn how to enable memory-mapped I/O and about the various advantages and disadvantages to using memory-mapped I/O in this document. Multi-threaded Programs and SQLite → SQLite is safe to use in multi-threaded programs. This document provides the details and hints on how to maximize performance. Null Handling → Different SQL database engines handle NULLs in different ways. The SQL standards are ambiguous. This (circa 2003) document describes how SQLite handles NULLs in comparison with other SQL database engines. Partial Indexes → A partial index is an index that only covers a subset of the rows in a table. Learn how to use partial indexes in SQLite from this document. Shared Cache Mode → Version 3.3.0 and later supports the ability for two or more database connections to share the same page and schema cache. This feature is useful for certain specialized applications. Unlock Notify → The \"unlock notify\" feature can be used in conjunction with shared cache mode to more efficiently manage resource conflict (database table locks). URI Filenames → The names of database files can be specified using either an ordinary filename or a URI. Using URI filenames provides additional capabilities, as this document describes. WITHOUT ROWID Tables → The WITHOUT ROWID optimization is a option that can sometimes result in smaller and faster databases. Write-Ahead Log (WAL) Mode → Transaction control using a write-ahead log offers more concurrency and is often faster than the default rollback transactions. This document explains how to use WAL mode for improved performance. ► Tools Command-Line Shell (sqlite3.exe) → Notes on using the \"sqlite3.exe\" command-line interface that can be used to create, modify, and query arbitrary SQLite database files. Remote Copy Of A Live Database → The sqlite3_rsync program makes a consistent copy of a live database to or from a remote system. Database Hash (dbhash.exe) → This program demonstrates how to compute a hash over the content of an SQLite database. Fossil → The Fossil Version Control System is a distributed VCS designed specifically to support SQLite development. Fossil uses SQLite as for storage. RBU → The \"Resumable Bulk Update\" utility program allows a batch of changes to be applied to a remote database running on embedded hardware in a way that is resumeable and does not interrupt ongoing operation. SQLite Database Analyzer (sqlite3_analyzer.exe) → This stand-alone program reads an SQLite database and outputs a file showing the space used by each table and index and other statistics. Built using the dbstat virtual table. SQLite Database Diff (sqldiff.exe) → This stand-alone program compares two SQLite database files and outputs the SQL needed to convert one into the other. SQLite Archiver (sqlar.exe) → A ZIP-like archive program that uses SQLite for storage. ► Advocacy 35% Faster Than The Filesystem → This article points out that reading blobs out of an SQLite database is often faster than reading the same blobs from individual files in the filesystem. Flexible Typing Is A Feature → SQLite provides developers with the freedom to store content in any desired format, regardless of the declared datatype of the column. This article explains why that is a feature, not a bug. SQLite As An Application File Format → This article advocates using SQLite as an application file format in place of XML or JSON or a \"pile-of-file\". Well Known Users → This page lists a small subset of the many thousands of devices and application programs that make use of SQLite. Why SQLite Is Coded In C → Why is SQLite not coded in some other trendy language like C++ or Rust? Isn't C obsolete? Why SQLite Does Not Use Git → Why SQLite does not use Git for version control, like most everybody else? ► Technical and Design Documentation How Database Corruption Can Occur → SQLite is highly resistant to database corruption. But application, OS, and hardware bugs can still result in corrupt database files. This article describes many of the ways that SQLite database files can go corrupt. Defense Against Dark Arts → Hints for avoiding application vulnerabilities when using SQLite. Temporary Files Used By SQLite → SQLite can potentially use many different temporary files when processing certain SQL statements. This document describes the many kinds of temporary files that SQLite uses and offers suggestions for avoiding them on systems where creating a temporary file is an expensive operation. In-Memory Databases → SQLite normally stores content in a disk file. However, it can also be used as an in-memory database engine. This document explains how. How SQLite Implements Atomic Commit → A description of the logic within SQLite that implements transactions with atomic commit, even in the face of power failures. Dynamic Memory Allocation in SQLite → SQLite has a sophisticated memory allocation subsystem that can be configured and customized to meet memory usage requirements of the application and that is robust against out-of-memory conditions and leak-free. This document provides the details. Customizing And Porting SQLite → This document explains how to customize the build of SQLite and how to port SQLite to new platforms. Locking And Concurrency In SQLite Version 3 → A description of how the new locking code in version 3 increases concurrency and decreases the problem of writer starvation. Isolation In SQLite → When we say that SQLite transactions are \"serializable\" what exactly does that mean? How and when are changes made visible within the same database connection and to other database connections? Overview Of The Optimizer → A quick overview of the various query optimizations that are attempted by the SQLite code generator. The Next-Generation Query Planner → Additional information about the SQLite query planner, and in particular the redesign of the query planner that occurred for version 3.8.0. Architecture → An architectural overview of the SQLite library, useful for those who want to hack the code. VDBE Opcodes → This document is an automatically generated description of the various opcodes that the VDBE understands. Programmers can use this document as a reference to better understand the output of EXPLAIN listings from SQLite. Virtual Filesystem → The \"VFS\" object is the interface between the SQLite core and the underlying operating system. Learn more about how the VFS object works and how to create new VFS objects from this article. Virtual Tables → This article describes the virtual table mechanism and API in SQLite and how it can be used to add new capabilities to the core SQLite library. The SQLite File Format → A description of the format used for SQLite database and journal files, and other details required to create software to read and write SQLite databases without using SQLite. Compilation Options → This document describes the compile time options that may be set to modify the default behavior of the library or omit optional features in order to reduce binary size. Android Bindings for SQLite → A description of how to compile your own SQLite for Android (bypassing the SQLite that is built into Android) together with code and makefiles. Debugging Hints → A list of tricks and techniques used to trace, examine, and understand the operation of the core SQLite library. ► Upgrading SQLite, Backwards Compatibility Moving From SQLite 3.5 to 3.6 → A document describing the differences between SQLite version 3.5.9 and 3.6.0. Moving From SQLite 3.4 to 3.5 → A document describing the differences between SQLite version 3.4.2 and 3.5.0. Release History → A chronology of SQLite releases going back to version 1.0.0 Backwards Compatibility → This document details all of the incompatible changes to the SQLite file format that have occurred since version 1.0.0. Private Branches → This document suggests procedures for maintaining a private branch or fork of SQLite and keeping that branch or fork in sync with the public SQLite source tree. ► Obsolete Documents Asynchronous IO Mode → This page describes the asynchronous IO extension developed alongside SQLite. Using asynchronous IO can cause SQLite to appear more responsive by delegating database writes to a background thread. extension is deprecated. WAL mode is recommended as a replacement. Version 2 C/C++ API → A description of the C/C++ interface bindings for SQLite through version 2.8 Version 2 DataTypes → A description of how SQLite version 2 handles SQL datatypes. Short is a string. VDBE Tutorial → The VDBE is the subsystem within SQLite that does the actual work of executing SQL statements. This page describes the principles of operation for the VDBE in SQLite version 2.7. This is essential reading for anyone who want to modify the SQLite sources. SQLite Version 3 → A summary of the changes between SQLite version 2.8 and SQLite version 3.0. Version 3 C/C++ API → A summary of the API related changes between SQLite version 2.8 and SQLite version 3.0. Speed Comparison → The speed of version 2.7.6 of SQLite is compared against PostgreSQL and MySQL.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:43.227Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":4073}}493{"id":"doc-running_tests_that_require_special_setup_gitlab_-d1010cec","source":"documentation","title":"Running tests that require special setup | GitLab Docs","url":"https://docs.gitlab.com/development/testing_guide/end_to_end/running_tests/running_tests_that_require_special_setup/","text":"Example:\n```shell\ndocker run \\\n --publish 80:80 \\\n --name gitlab \\\n --hostname localhost \\\n --network test\n gitlab/gitlab-ee:nightly\n```\n\nExample:\n```shell\nexport QA_THIRD_PARTY_DOCKER_REGISTRY=<registry>\nexport QA_THIRD_PARTY_DOCKER_REPOSITORY=<repository>\nexport QA_THIRD_PARTY_DOCKER_USER=<user with registry access>\nexport QA_THIRD_PARTY_DOCKER_PASSWORD=<password for user>\nexport WEBDRIVER_HEADLESS=0\nbin/qa Test::Instance::All http://localhost -- qa/specs/features/ee/browser_ui/3_create/jenkins/jenkins_build_status_spec.rb\n```\n\nExample:\n```shell\ngitlab-qa Test::Integration::GitalyCluster EE\n```\n\nExample:\n```shell\ngitlab-qa Test::Integration::GitalyCluster EE --no-tests\n```\n\nExample:\n```plaintext\nCONTAINER ID ... PORTS NAMES\nd15d3386a0a8 ... 22/tcp, 443/tcp, 0.0.0.0:32772->80/tcp gitlab-gitaly-cluster\n```\n\nExample:\n```shell\necho '127.0.0.1 gitlab-gitaly-cluster.test' | sudo tee -a /etc/hosts\n```\n\nExample:\n```shell\n# on macOS\nbrew install nginx\n\n# on Debian/Ubuntu\napt install nginx\n\n# on Fedora\nyum install nginx\n```\n\nExample:\n```plaintext\n# On Debian/Ubuntu, in /etc/nginx/sites-enabled/gitlab-cluster\n# On macOS, in /usr/local/etc/nginx/nginx.conf\n\nserver {\n server_name gitlab-gitaly-cluster.test;\n client_max_body_size 500m;\n\n location / {\n proxy_pass http://127.0.0.1:32772;\n proxy_set_header Host gitlab-gitaly-cluster.test;\n }\n}\n```\n\nExample:\n```shell\n# On Debian/Ubuntu\nsudo systemctl restart nginx\n\n# on macOS\nsudo nginx -s reload\n```\n\nExample:\n```shell\nWEBDRIVER_HEADLESS=false bin/qa Test::Instance::All http://gitlab-gitaly-cluster.test -- --tag gitaly_cluster\n```\n\nExample:\n```shell\ndocker stop gitlab-gitaly-cluster praefect postgres gitaly3 gitaly2 gitaly1\ndocker rm gitlab-gitaly-cluster praefect postgres gitaly3 gitaly2 gitaly1\n```\n\nExample:\n```shell\ndocker run \\\n --detach \\\n --hostname interface_ip_address \\\n --publish 80:80 \\\n --name gitlab \\\n --restart always \\\n --volume ~/ee_volume/config:/etc/gitlab \\\n --volume ~/ee_volume/logs:/var/log/gitlab \\\n --volume ~/ee_volume/data:/var/opt/gitlab \\\n --shm-size 256m \\\n gitlab/gitlab-ee:latest\n```\n\nExample:\n```shell\nWEBDRIVER_HEADLESS=false bundle exec bin/qa QA::EE::Scenario::Test::Geo --primary-address http://localhost:3001 --secondary-address http://localhost:3002 --without-setup\n```\n\nExample:\n```shell\nexport EE_LICENSE=$(cat <path/to/your/gitlab_license>)\n```\n\nExample:\n```shell\n# For the most recent nightly image\ndocker pull gitlab/gitlab-ee:nightly\n\n# For a specific release\ndocker pull gitlab/gitlab-ee:13.0.10-ee.0\n\n# For a specific image\ndocker pull registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:examplesha123456789\n```\n\nExample:\n```shell\n# Using the most recent nightly image\ngitlab-qa Test::Integration::Geo EE --no-teardown\n\n# Using a specific GitLab release\ngitlab-qa Test::Integration::Geo EE:13.0.10-ee.0 --no-teardown\n\n# Using a full image address\nGITLAB_QA_ACCESS_TOKEN=your-token-here gitlab-qa Test::Integration::Geo registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:examplesha123456789 --no-teardown\n```\n\nExample:\n```plaintext\n127.0.0.1 gitlab-primary.geo gitlab-secondary.geo\n```\n\nExample:\n```shell\n$ docker port gitlab-primary\n\n80/tcp -> 0.0.0.0:32768\n\n$ docker port gitlab-secondary\n\n80/tcp -> 0.0.0.0:32769\n```\n\nExample:\n```plaintext\nserver {\n server_name gitlab-primary.geo;\n location / {\n proxy_pass http://localhost:32768; # Change port to your assigned port\n proxy_set_header Host gitlab-primary.geo;\n }\n}\n\nserver {\n server_name gitlab-secondary.geo;\n location / {\n proxy_pass http://localhost:32769; # Change port to your assigned port\n proxy_set_header Host gitlab-secondary.geo;\n }\n}\n```\n\nExample:\n```shell\nsudo nginx\n# or\nsudo nginx -s reload\n```\n\nExample:\n```shell\nQA_LOG_LEVEL=debug GITLAB_QA_ACCESS_TOKEN=[add token here] GITLAB_QA_ADMIN_ACCESS_TOKEN=[add token here] bundle exec bin/qa QA::EE::Scenario::Test::Geo \\\n--primary-address http://gitlab-primary.geo \\\n--secondary-address http://gitlab-secondary.geo \\\n--without-setup\n```\n\nExample:\n```shell\nQA_LOG_LEVEL=debug bundle exec bin/qa QA::EE::Scenario::Test::Geo \\\n--primary-address http://gitlab-primary.geo \\\n--primary-name gitlab-primary \\\n--secondary-address http://gitlab-secondary.geo \\\n--secondary-name gitlab-secondary\n```\n\nExample:\n```shell\ndocker stop gitlab-primary gitlab-secondary\ndocker rm gitlab-primary gitlab-secondary\n```\n\nExample:\n```yaml\nomniauth:\n enabled: true\n providers:\n - { name: 'group_saml' }\n```\n\nExample:\n```shell\nQA_LOG_LEVEL=debug CHROME_HEADLESS=false bundle exec bin/qa Test::Instance::All http://localhost:3000 qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_spec.rb -- --tag orchestrated\n```\n\nExample:\n```yaml\nomniauth:\n enabled: true\n allow_single_sign_on: [\"saml\"]\n block_auto_created_users: false\n auto_link_saml_user: true\n providers:\n - { name: 'saml',\n args: {\n assertion_consumer_service_url: 'http://gdk.test:3000/users/auth/saml/callback',\n idp_cert_fingerprint: '11:9b:9e:02:79:59:cd:b7:c6:62:cf:d0:75:d9:e2:ef:38:4e:44:5f',\n idp_sso_target_url: 'https://gdk.test:8443/simplesaml/saml2/idp/SSOService.php',\n issuer: 'http://gdk.test:3000',\n name_identifier_format: 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent'\n } }\n```\n\nExample:\n```shell\ndocker run --name=group_saml_qa_idp -p 8080:8080 -p 8443:8443 \\\n-e SIMPLESAMLPHP_SP_ENTITY_ID=http://localhost:3000 \\\n-e SIMPLESAMLPHP_SP_ASSERTION_CONSUMER_SERVICE=http://localhost:3000/users/auth/saml/callback \\\n-d jamedjo/test-saml-idp\n```\n\nExample:\n```shell\nQA_LOG_LEVEL=debug CHROME_HEADLESS=false bundle exec bin/qa Test::Instance::All http://localhost:3000 qa/specs/features/browser_ui/1_manage/login/login_via_instance_wide_saml_sso_spec.rb -- --tag orchestrated\n```\n\nExample:\n```shell\nopenssl req -x509 -newkey rsa:4096 -keyout gitlab.test.key -out gitlab.test.crt -days 3650 -nodes -subj \"/C=US/ST=CA/L=San Francisco/O=GitLab/OU=Org/CN=gitlab.test\"\n```\n\nExample:\n```shell\ndocker network create test && docker run --name ldap-server --net test --hostname ldap-server.test --volume /path/to/gitlab-qa/fixtures/ldap:/container/service/slapd/assets/config/bootstrap/ldif/custom:Z --env LDAP_TLS_CRT_FILENAME=\"ldap-server.test.crt\" --env LDAP_TLS_KEY_FILENAME=\"ldap-server.test.key\" --env LDAP_TLS_ENFORCE=\"true\" --env LDAP_TLS_VERIFY_CLIENT=\"never\" osixia/openldap:latest --copy-service\n```\n\nExample:\n```shell\nsudo docker run \\\n --hostname gitlab.test \\\n --net test \\\n --publish 443:443 --publish 80:80 --publish 22:22 \\\n --name gitlab \\\n --volume /path/to/gitlab-qa/tls_certificates/gitlab:/etc/gitlab/ssl \\\n --env GITLAB_OMNIBUS_CONFIG=\"gitlab_rails['ldap_enabled'] = true; gitlab_rails['ldap_servers'] = {\\\"main\\\"=>{\\\"label\\\"=>\\\"LDAP\\\", \\\"host\\\"=>\\\"ldap-server.test\\\", \\\"port\\\"=>636, \\\"uid\\\"=>\\\"uid\\\", \\\"bind_dn\\\"=>\\\"cn=admin,dc=example,dc=org\\\", \\\"password\\\"=>\\\"admin\\\", \\\"encryption\\\"=>\\\"simple_tls\\\", \\\"verify_certificates\\\"=>false, \\\"base\\\"=>\\\"dc=example,dc=org\\\", \\\"user_filter\\\"=>\\\"\\\", \\\"group_base\\\"=>\\\"ou=Global Groups,dc=example,dc=org\\\", \\\"admin_group\\\"=>\\\"AdminGroup\\\", \\\"external_groups\\\"=>\\\"\\\", \\\"sync_ssh_keys\\\"=>false}}; letsencrypt['enable'] = false; external_url 'https://gitlab.test'; gitlab_rails['ldap_sync_worker_cron'] = '* * * * *'; gitlab_rails['ldap_group_sync_worker_cron'] = '* * * * *'; \" \\\n gitlab/gitlab-ee:latest\n```\n\nExample:\n```shell\nGITLAB_LDAP_USERNAME=\"tanuki\" GITLAB_LDAP_PASSWORD=\"password\" QA_LOG_LEVEL=debug WEBDRIVER_HEADLESS=false bin/qa Test::Instance::All https://gitlab.test qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb\n```\n\nExample:\n```shell\ndocker network create test && docker run --net test --publish 389:389 --publish 636:636 --name ldap-server --hostname ldap-server.test --volume /path/to/gitlab-qa/fixtures/ldap:/container/service/slapd/assets/config/bootstrap/ldif/custom:Z --env LDAP_TLS=\"false\" osixia/openldap:latest --copy-service\n```\n\nExample:\n```shell\nsudo docker run \\\n --hostname localhost \\\n --net test \\\n --publish 443:443 --publish 80:80 --publish 22:22 \\\n --name gitlab \\\n --env GITLAB_OMNIBUS_CONFIG=\"gitlab_rails['ldap_enabled'] = true; gitlab_rails['ldap_servers'] = {\\\"main\\\"=>{\\\"label\\\"=>\\\"LDAP\\\", \\\"host\\\"=>\\\"ldap-server.test\\\", \\\"port\\\"=>389, \\\"uid\\\"=>\\\"uid\\\", \\\"bind_dn\\\"=>\\\"cn=admin,dc=example,dc=org\\\", \\\"password\\\"=>\\\"admin\\\", \\\"encryption\\\"=>\\\"plain\\\", \\\"verify_certificates\\\"=>false, \\\"base\\\"=>\\\"dc=example,dc=org\\\", \\\"user_filter\\\"=>\\\"\\\", \\\"group_base\\\"=>\\\"ou=Global Groups,dc=example,dc=org\\\", \\\"admin_group\\\"=>\\\"AdminGroup\\\", \\\"external_groups\\\"=>\\\"\\\", \\\"sync_ssh_keys\\\"=>false}}; gitlab_rails['ldap_sync_worker_cron'] = '* * * * *'; gitlab_rails['ldap_group_sync_worker_cron'] = '* * * * *'; \" \\\ngitlab/gitlab-ee:latest\n```\n\nExample:\n```shell\nGITLAB_LDAP_USERNAME=\"tanuki\" GITLAB_LDAP_PASSWORD=\"password\" QA_LOG_LEVEL=debug WEBDRIVER_HEADLESS=false bin/qa Test::Instance::All http://localhost qa/specs/features/browser_ui/1_manage/login/log_into_gitlab_via_ldap_spec.rb\n```\n\nExample:\n```yaml\nsmtp:\n enabled: true\n address: \"mailhog.test\"\n port: 1025\n```\n\nExample:\n```shell\ndocker network create test && docker run \\\n --network test \\\n --hostname mailhog.test \\\n --name mailhog \\\n --publish 1025:1025 \\\n --publish 8025:8025 \\\n mailhog/mailhog:v1.0.0\n```\n\nExample:\n```shell\nQA_LOG_LEVEL=debug WEBDRIVER_HEADLESS=false bin/qa Test::Instance::All http://localhost:3000 qa/specs/features/browser_ui/2_plan/email/trigger_email_notification_spec.rb -- --tag orchestrated\n```\n\nExample:\n```shell\nQA_COOKIES=\"gitlab_canary=true\" WEBDRIVER_HEADLESS=false bin/qa Test::Instance::Staging <YOUR SPECIFIC TAGS OR TESTS>\n```\n\nExample:\n```shell\nexport QA_COOKIES=\"gitlab_canary=true\"\n```\n\nExample:\n```ruby\nit 'tests toggling between canary and non-canary nodes' do\n Runtime::Browser.visit(:gitlab, Page::Main::Login)\n\n # After starting the browser session, use the target_canary method ...\n\n Runtime::Browser::Session.target_canary(true)\n Flow::Login.sign_in\n\n verify_session_on_canary(true)\n\n Runtime::Browser::Session.target_canary(false)\n\n # Refresh the page ...\n\n verify_session_on_canary(false)\n\n # Log out and clean up ...\nend\n\ndef verify_session_on_canary(enable_canary)\n Page::Main::Menu.perform do |menu|\n aggregate_failures 'testing session log in' do\n expect(menu.canary?).to be(enable_canary)\n end\n end\nend\n```\n\nExample:\n```shell\nbundle install\n\nRELEASE_REGISTRY_URL='registry.gitlab.com' RELEASE_REGISTRY_USERNAME='<your_gitlab_username>' RELEASE_REGISTRY_PASSWORD='<your_gitlab_personal_access_token>' RELEASE='registry.gitlab.com/gitlab-org/build/omnibus-gitlab-mirror/gitlab-ee:c0ae46db6b31ea231b2de88961cd687acf634179' GITLAB_QA_ADMIN_ACCESS_TOKEN=\"<your_gdk_admin_personal_access_token>\" QA_LOG_LEVEL=debug CHROME_HEADLESS=false bundle exec bin/qa Test::Instance::All http://gdk.test:3000 qa/specs/features/browser_ui/1_manage/login/login_via_oauth_and_oidc_with_gitlab_as_idp_spec.rb\n```\n\nExample:\n```shell\n# From the gdk directory\nmkdir -p gitaly-custom-hooks/pre-receive.d\ncp gitlab/qa/gdk/pre-receive gitaly-custom-hooks/pre-receive.d\nchmod +x gitaly-custom-hooks/pre-receive.d/pre-receive\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:17:13.857Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":43,"totalLines":375,"estimatedTokens":2816}}494{"id":"doc-commands_docs-ad165301","source":"documentation","title":"Commands | Docs","url":"https://redis.io/docs/latest/commands","text":"Develop with Redis Libraries and tools Redis products Commands Docs Docs → Commands Commands Search commands… Filter by group… Array Bloom filter Bitmap Cuckoo filter Cluster management Count-min sketch Connection management Generic Geospatial indices Hash HyperLogLog JSON List Pub/Sub Scripting and functions Redis Search Server management Set Sorted set Stream String Auto-suggest T-digest Time series Top-k Transactions Vector set by version (all) 7.0 6.2 6.0 5.0 4.0 3.2 3.0 2.9 2.8 2.6 2.4 2.2 2.0 1.2 1.0 1.0 1.0 2.0 2.4 2.2 2.0 1.0 2.0 1.0 2.2 2.0 1.4 1.2 1.1 1.0 1.0 2.4 1.6 1.4 1.0 2.0 Redis 8.10 Commands Reference Complete list of all Redis commands available in version 8.10, organized by functional group Learn more → Read more Redis 8.8 Commands Reference Complete list of all Redis commands available in version 8.8, organized by functional group Learn more → Read more Redis 8.6 Commands Reference Complete list of all Redis commands available in version 8.6, organized by functional group Learn more → Read more Redis 8.4 Commands Reference Complete list of all Redis commands available in version 8.4, organized by functional group Learn more → Read more Redis 8.2 Commands Reference Complete list of all Redis commands available in version 8.2, organized by functional group Learn more → Read more Redis 8.0 Commands Reference Complete list of all Redis commands available in version 8.0, organized by functional group Learn more → Read more Redis 7.4 Commands Reference Complete list of all Redis commands available in version 7.4, organized by functional group Learn more → Read more Redis 7.2 Commands Reference Complete list of all Redis commands available in version 7.2, organized by functional group Learn more → Read more Redis 6.2 Commands Reference Complete list of all Redis commands available in version 6.2, organized by functional group Learn more → Read more ACL CAT Lists the ACL categories, or the commands inside a category. Learn more → Read more ACL DELUSER Deletes ACL users, and terminates their connections. Learn more → Read more ACL DRYRUN Simulates the execution of a command by a user, without executing the command. Learn more → Read more ACL GENPASS Generates a pseudorandom, secure password that can be used to identify ACL users. Learn more → Read more ACL GETUSER Lists the ACL rules of a user. Learn more → Read more ACL LIST Dumps the effective rules in ACL file format. Learn more → Read more ACL LOAD Reloads the rules from the configured ACL file. Learn more → Read more ACL LOG Lists recent security events generated due to ACL rules. Learn more → Read more ACL SAVE Saves the effective ACL rules in the configured ACL file. Learn more → Read more ACL SETUSER Creates and modifies an ACL user and its rules. Learn more → Read more ACL USERS Lists all ACL users. Learn more → Read more ACL WHOAMI Returns the authenticated username of the current connection. Learn more → Read more APPEND Appends a string to the value of a key. Creates the key if it doesn't exist. Learn more → Read more ARCOUNT Returns the number of non-empty elements in an array. Learn more → Read more ARDEL Deletes elements at the specified indices in an array. Learn more → Read more ARDELRANGE Deletes elements in one or more ranges. Learn more → Read more ARGET Gets the value at an index in an array. Learn more → Read more ARGETRANGE Gets values in a range of indices. Learn more → Read more ARGREP Searches array elements in a range using textual predicates. Learn more → Read more ARINFO Returns metadata about an array. Learn more → Read more ARINSERT Inserts one or more values at consecutive indices. Learn more → Read more ARLASTITEMS Returns the most recently inserted elements. Learn more → Read more ARLEN Returns the length of an array (max index + 1). Learn more → Read more ARMGET Gets values at multiple indices in an array. Learn more → Read more ARMSET Sets multiple index-value pairs in an array. Learn more → Read more ARNEXT Returns the next index ARINSERT would use. Learn more → Read more AROP Performs aggregate operations on array elements in a range. Learn more → Read more ARRING Inserts values into a ring buffer of specified size, wrapping and truncating as needed. Learn more → Read more ARSCAN Iterates existing elements in a range, returning index-value pairs. Learn more → Read more ARSEEK Sets the ARINSERT / ARRING cursor to a specific index. Learn more → Read more ARSET Sets one or more contiguous values starting at an index in an array. Learn more → Read more ASKING Signals that a cluster client is following an -ASK redirect. Learn more → Read more AUTH Authenticates the connection. Learn more → Read more BACKUP ABORT Cancel a backup that has not been sealed yet. Learn more → Read more BACKUP CLEANUP Remove sealed backup files and return to idle. Learn more → Read more BACKUP LIST List the immutable backup file paths pinned so far. Learn more → Read more BACKUP SEAL Freeze the current backup (BASE + INCR + manifest). Learn more → Read more BACKUP START Start a new backup into the configured 'backupdirname'. Learn more → Read more BACKUP STATUS Report the current backup state. Learn more → Read more BF.ADD Adds an item to a Bloom Filter Learn more → Read more BF.CARD Returns the cardinality of a Bloom filter Learn more → Read more BF.EXISTS Checks whether an item exists in a Bloom Filter Learn more → Read more BF.INFO Returns information about a Bloom Filter Learn more → Read more BF.INSERT Adds one or more items to a Bloom Filter. A filter will be created if it does not exist Learn more → Read more BF.LOADCHUNK Restores a filter previously saved using SCANDUMP Learn more → Read more BF.MADD Adds one or more items to a Bloom Filter. A filter will be created if it does not exist Learn more → Read more BF.MEXISTS Checks whether one or more items exist in a Bloom Filter Learn more → Read more BF.RESERVE Creates a new Bloom Filter Learn more → Read more BF.SCANDUMP Begins an incremental save of the bloom filter Learn more → Read more BGREWRITEAOF Asynchronously rewrites the append-only file to disk. Learn more → Read more BGSAVE Asynchronously saves the database(s) to disk. Learn more → Read more BITCOUNT Counts the number of set bits (population counting) in a string. Learn more → Read more BITFIELD Performs arbitrary bitfield integer operations on strings. Learn more → Read more BITFIELD_RO Performs arbitrary read-only bitfield integer operations on strings. Learn more → Read more BITOP Performs bitwise operations on multiple strings, and stores the result. Learn more → Read more BITPOS Finds the first set (1) or clear (0) bit in a string. Learn more → Read more BLMOVE Pops an element from a list, pushes it to another list and returns it. Blocks until an element is available otherwise. Deletes the list if the last element was moved. Learn more → Read more BLMOVEM Moves up to (or exactly) a number of elements from one list to another and returns them. Blocks until the elements are available otherwise. Deletes the source list if it becomes empty. Learn more → Read more BLMPOP Pops the first element from one of multiple lists. Blocks until an element is available otherwise. Deletes the list if the last element was popped. Learn more → Read more BLPOP Removes and returns the first element in a list. Blocks until an element is available otherwise. Deletes the list if the last element was popped. Learn more → Read more BRPOP Removes and returns the last element in a list. Blocks until an element is available otherwise. Deletes the list if the last element was popped. Learn more → Read more BRPOPLPUSH Deprecated Use BLMOVE with the RIGHT and LEFT arguments instead Pops an element from a list, pushes it to another list and returns it. Block until an element is available otherwise. Deletes the list if the last element was popped. Learn more → Read more BZMPOP Removes and returns a member by score from one or more sorted sets. Blocks until a member is available otherwise. Deletes the sorted set if the last element was popped. Learn more → Read more BZPOPMAX Removes and returns the member with the highest score from one or more sorted sets. Blocks until a member available otherwise. Deletes the sorted set if the last element was popped. Learn more → Read more BZPOPMIN Removes and returns the member with the lowest score from one or more sorted sets. Blocks until a member is available otherwise. Deletes the sorted set if the last element was popped. Learn more → Read more CF.ADD Adds an item to a Cuckoo Filter Learn more → Read more CF.ADDNX Adds an item to a Cuckoo Filter if the item did not exist previously. Learn more → Read more CF.COUNT Return the number of times an item might be in a Cuckoo Filter Learn more → Read more CF.DEL Deletes an item from a Cuckoo Filter Learn more → Read more CF.EXISTS Checks whether one or more items exist in a Cuckoo Filter Learn more → Read more CF.INFO Returns information about a Cuckoo Filter Learn more → Read more CF.INSERT Adds one or more items to a Cuckoo Filter. A filter will be created if it does not exist Learn more → Read more CF.INSERTNX Adds one or more items to a Cuckoo Filter if the items did not exist previously. A filter will be created if it does not exist Learn more → Read more CF.LOADCHUNK Restores a filter previously saved using SCANDUMP Learn more → Read more CF.MEXISTS Checks whether one or more items exist in a Cuckoo Filter Learn more → Read more CF.RESERVE Creates a new Cuckoo Filter Learn more → Read more CF.SCANDUMP Begins an incremental save of the bloom filter Learn more → Read more CLIENT CACHING Instructs the server whether to track the keys in the next request. Learn more → Read more CLIENT GETNAME Returns the name of the connection. Learn more → Read more CLIENT GETREDIR Returns the client ID to which the connection's tracking notifications are redirected. Learn more → Read more CLIENT ID Returns the unique client ID of the connection. Learn more → Read more CLIENT INFO Returns information about the connection. Learn more → Read more CLIENT KILL Terminates open connections. Learn more → Read more CLIENT LIST Lists open connections. Learn more → Read more CLIENT NO-EVICT Sets the client eviction mode of the connection. Learn more → Read more CLIENT NO-TOUCH Controls whether commands sent by the client affect the LRU/LFU of accessed keys. Learn more → Read more CLIENT PAUSE Suspends commands processing. Learn more → Read more CLIENT REPLY Instructs the server whether to reply to commands. Learn more → Read more CLIENT SETINFO Sets information specific to the client or connection. Learn more → Read more CLIENT SETNAME Sets the connection name. Learn more → Read more CLIENT TRACKING Controls server-assisted client-side caching for the connection. Learn more → Read more CLIENT TRACKINGINFO Returns information about server-assisted client-side caching for the connection. Learn more → Read more CLIENT UNBLOCK Unblocks a client blocked by a blocking command from a different connection. Learn more → Read more CLIENT UNPAUSE Resumes processing commands from paused clients. Learn more → Read more CLUSTER ADDSLOTS Assigns new hash slots to a node. Learn more → Read more CLUSTER ADDSLOTSRANGE Assigns new hash slot ranges to a node. Learn more → Read more CLUSTER BUMPEPOCH Advances the cluster config epoch. Learn more → Read more CLUSTER COUNT-FAILURE-REPORTS Returns the number of active failure reports active for a node. Learn more → Read more CLUSTER COUNTKEYSINSLOT Returns the number of keys in a hash slot. Learn more → Read more CLUSTER DELSLOTS Sets hash slots as unbound for a node. Learn more → Read more CLUSTER DELSLOTSRANGE Sets hash slot ranges as unbound for a node. Learn more → Read more CLUSTER FAILOVER Forces a replica to perform a manual failover of its master. Learn more → Read more CLUSTER FLUSHSLOTS Deletes all slots information from a node. Learn more → Read more CLUSTER FORGET Removes a node from the nodes table. Learn more → Read more CLUSTER GETKEYSINSLOT Returns the key names in a hash slot. Learn more → Read more CLUSTER INFO Returns information about the state of a node. Learn more → Read more CLUSTER KEYSLOT Returns the hash slot for a key. Learn more → Read more CLUSTER LINKS Returns a list of all TCP links to and from peer nodes. Learn more → Read more CLUSTER MEET Forces a node to handshake with another node. Learn more → Read more CLUSTER MIGRATION Start, monitor, and cancel atomic slot migration tasks. Learn more → Read more CLUSTER MYID Returns the ID of a node. Learn more → Read more CLUSTER MYSHARDID Returns the shard ID of a node. Learn more → Read more CLUSTER NODES Returns the cluster configuration for a node. Learn more → Read more CLUSTER REPLICAS Lists the replica nodes of a master node. Learn more → Read more CLUSTER REPLICATE Configure a node as replica of a master node. Learn more → Read more CLUSTER RESET Resets a node. Learn more → Read more CLUSTER SAVECONFIG Forces a node to save the cluster configuration to disk. Learn more → Read more CLUSTER SET-CONFIG-EPOCH Sets the configuration epoch for a new node. Learn more → Read more CLUSTER SETSLOT Binds a hash slot to a node. Learn more → Read more CLUSTER SHARDS Returns the mapping of cluster slots to shards. Learn more → Read more CLUSTER SLAVES Deprecated Use CLUSTER REPLICAS instead Lists the replica nodes of a master node. Learn more → Read more CLUSTER SLOT-STATS Return an array of slot usage statistics for slots assigned to the current node. Learn more → Read more CLUSTER SLOTS Deprecated Use CLUSTER SHARDS instead Returns the mapping of cluster slots to nodes. Learn more → Read more CMS.INCRBY Increases the count of one or more items by increment Learn more → Read more CMS.INFO Returns information about a sketch Learn more → Read more CMS.INITBYDIM Initializes a Count-Min Sketch to dimensions specified by user Learn more → Read more CMS.INITBYPROB Initializes a Count-Min Sketch to accommodate requested tolerances. Learn more → Read more CMS.MERGE Merges several sketches into one sketch Learn more → Read more CMS.QUERY Returns the count for one or more items in a sketch Learn more → Read more COMMAND Returns detailed information about all commands. Learn more → Read more COMMAND COUNT Returns a count of commands. Learn more → Read more COMMAND DOCS Returns documentary information about one, multiple or all commands. Learn more → Read more COMMAND GETKEYS Extracts the key names from an arbitrary command. Learn more → Read more COMMAND GETKEYSANDFLAGS Extracts the key names and access flags for an arbitrary command. Learn more → Read more COMMAND INFO Returns information about one, multiple or all commands. Learn more → Read more COMMAND LIST Returns a list of command names. Learn more → Read more Commands Learn more → Read more CONFIG GET Returns the effective values of configuration parameters. Learn more → Read more CONFIG RESETSTAT Resets the server's statistics. Learn more → Read more CONFIG REWRITE Persists the effective configuration to file. Learn more → Read more CONFIG SET Sets configuration parameters in-flight. Learn more → Read more COPY Copies the value of a key to a new key. Learn more → Read more DBSIZE Returns the number of keys in the database. Learn more → Read more DECR Decrements the integer value of a key by one. Uses 0 as initial value if the key doesn't exist. Learn more → Read more DECRBY Decrements a number from the integer value of a key. Uses 0 as initial value if the key doesn't exist. Learn more → Read more DEL Deletes one or more keys. Learn more → Read more DELEX Conditionally removes the specified key based on value or hash digest comparison. Learn more → Read more DIGEST Returns the hash digest of a string value as a hexadecimal string. Learn more → Read more DISCARD Discards a transaction. Learn more → Read more DUMP Returns a serialized representation of the value stored at a key. Learn more → Read more ECHO Returns the given string. Learn more → Read more EVAL Executes a server-side Lua script. Learn more → Read more EVAL_RO Executes a read-only server-side Lua script. Learn more → Read more EVALSHA Executes a server-side Lua script by SHA1 digest. Learn more → Read more EVALSHA_RO Executes a read-only server-side Lua script by SHA1 digest. Learn more → Read more EXEC Executes all commands in a transaction. Learn more → Read more EXISTS Determines whether one or more keys exist. Learn more → Read more EXPIRE Sets the expiration time of a key in seconds. Learn more → Read more EXPIREAT Sets the expiration time of a key to a Unix timestamp. Learn more → Read more EXPIRETIME Returns the expiration time of a key as a Unix timestamp. Learn more → Read more FAILOVER Starts a coordinated failover from a server to one of its replicas. Learn more → Read more FCALL Invokes a function. Learn more → Read more FCALL_RO Invokes a read-only function. Learn more → Read more FLUSHALL Removes all keys from all databases. Learn more → Read more FLUSHDB Remove all keys from the current database. Learn more → Read more FT._LIST Returns a list of all existing indexes Learn more → Read more FT.AGGREGATE Run a search query on an index and perform aggregate transformations on the results Learn more → Read more FT.ALIASADD Adds an alias to the index Learn more → Read more FT.ALIASDEL Deletes an alias from the index Learn more → Read more FT.ALIASLIST Lists all aliases for the index Learn more → Read more FT.ALIASUPDATE Adds or updates an alias to the index Learn more → Read more FT.ALTER Adds a new field to the index Learn more → Read more FT.CONFIG GET Deprecated Use CONFIG GET instead Retrieves runtime configuration options Learn more → Read more FT.CONFIG SET Deprecated Use CONFIG SET instead Sets runtime configuration options Learn more → Read more FT.CREATE Creates an index with the given spec Learn more → Read more FT.CURSOR DEL Deletes a cursor Learn more → Read more FT.CURSOR READ Reads from a cursor Learn more → Read more FT.DICTADD Adds terms to a dictionary Learn more → Read more FT.DICTDEL Deletes terms from a dictionary Learn more → Read more FT.DICTDUMP Dumps all terms in the given dictionary Learn more → Read more FT.DROPINDEX Deletes the index Learn more → Read more FT.EXPLAIN Returns the execution plan for a complex query Learn more → Read more FT.EXPLAINCLI Returns the execution plan for a complex query Learn more → Read more FT.HYBRID Performs hybrid search combining text search and vector similarity search Learn more → Read more FT.INFO Returns information and statistics on the index Learn more → Read more FT.PROFILE Performs a `FT.SEARCH`, `FT.HYBRID`, or `FT.AGGREGATE` command and collects performance information Learn more → Read more FT.SEARCH Searches the index with a textual query, returning either documents or just ids Learn more → Read more FT.SPELLCHECK Performs spelling correction on a query, returning suggestions for misspelled terms Learn more → Read more FT.SUGADD Adds a suggestion string to an auto-complete suggestion dictionary Learn more → Read more FT.SUGDEL Deletes a string from a suggestion index Learn more → Read more FT.SUGGET Gets completion suggestions for a prefix Learn more → Read more FT.SUGLEN Gets the size of an auto-complete suggestion dictionary Learn more → Read more FT.SYNDUMP Dumps the contents of a synonym group Learn more → Read more FT.SYNUPDATE Creates or updates a synonym group with additional terms Learn more → Read more FT.TAGVALS Deprecated Returns the distinct tags indexed in a Tag field Learn more → Read more FUNCTION DELETE Deletes a library and its functions. Learn more → Read more FUNCTION DUMP Dumps all libraries into a serialized binary payload. Learn more → Read more FUNCTION FLUSH Deletes all libraries and functions. Learn more → Read more FUNCTION KILL Terminates a function during execution. Learn more → Read more FUNCTION LIST Returns information about all libraries. Learn more → Read more FUNCTION LOAD Creates a library. Learn more → Read more FUNCTION RESTORE Restores all libraries from a payload. Learn more → Read more FUNCTION STATS Returns information about a function during execution. Learn more → Read more GEOADD Adds one or more members to a geospatial index. The key is created if it doesn't exist. Learn more → Read more GEODIST Returns the distance between two members of a geospatial index. Learn more → Read more GEOHASH Returns members from a geospatial index as geohash strings. Learn more → Read more GEOPOS Returns the longitude and latitude of members from a geospatial index. Learn more → Read more GEORADIUS Deprecated Use GEOSEARCH and GEOSEARCHSTORE with the BYRADIUS argument instead Queries a geospatial index for members within a distance from a coordinate, optionally stores the result. Learn more → Read more GEORADIUS_RO Deprecated Use GEOSEARCH with the BYRADIUS argument instead Returns members from a geospatial index that are within a distance from a coordinate. Learn more → Read more GEORADIUSBYMEMBER Deprecated Use GEOSEARCH and GEOSEARCHSTORE with the BYRADIUS and FROMMEMBER arguments instead Queries a geospatial index for members within a distance from a member, optionally stores the result. Learn more → Read more GEORADIUSBYMEMBER_RO Deprecated Use GEOSEARCH with the BYRADIUS and FROMMEMBER arguments instead Returns members from a geospatial index that are within a distance from a member. Learn more → Read more GEOSEARCH Queries a geospatial index for members inside an area of a box or a circle. Learn more → Read more GEOSEARCHSTORE Queries a geospatial index for members inside an area of a box or a circle, optionally stores the result. Learn more → Read more GET Returns the string value of a key. Learn more → Read more GETBIT Returns a bit value by offset. Learn more → Read more GETDEL Returns the string value of a key after deleting the key. Learn more → Read more GETEX Returns the string value of a key after setting its expiration time. Learn more → Read more GETRANGE Returns a substring of the string stored at a key. Learn more → Read more GETSET Deprecated Use SET with the GET argument instead Returns the previous string value of a key after setting it to a new value. Learn more → Read more HDEL Deletes one or more fields and their values from a hash. Deletes the hash if no fields remain. Learn more → Read more HELLO Handshakes with the Redis server. Learn more → Read more HEXISTS Determines whether a field exists in a hash. Learn more → Read more HEXPIRE Set expiry for hash field using relative time to expire (seconds) Learn more → Read more HEXPIREAT Set expiry for hash field using an absolute Unix timestamp (seconds) Learn more → Read more HEXPIRETIME Returns the expiration time of a hash field as a Unix timestamp, in seconds. Learn more → Read more HGET Returns the value of a field in a hash. Learn more → Read more HGETALL Returns all fields and values in a hash. Learn more → Read more HGETDEL Returns the value of a field and deletes it from the hash. Learn more → Read more HGETEX Get the value of one or more fields of a given hash key, and optionally set their expiration. Learn more → Read more HIMPORT A container for session-based hash import commands using fieldsets. Learn more → Read more HIMPORT DISCARD Removes a single session-local fieldset by name. Learn more → Read more HIMPORT DISCARDALL Removes all session-local fieldsets for the connection. Learn more → Read more HIMPORT PREPARE Defines a session-local fieldset that maps a name to a sorted set of field names. Learn more → Read more HIMPORT SET Creates a fieldset-based hash from values supplied in the order matching a previously prepared fieldset. Learn more → Read more HINCRBY Increments the integer value of a field in a hash by a number. Uses 0 as initial value if the field doesn't exist. Learn more → Read more HINCRBYFLOAT Increments the floating point value of a field by a number. Uses 0 as initial value if the field doesn't exist. Learn more → Read more HKEYS Returns all fields in a hash. Learn more → Read more HLEN Returns the number of fields in a hash. Learn more → Read more HMGET Returns the values of all fields in a hash. Learn more → Read more HMSET Deprecated Use HSET with multiple field-value pairs instead Sets the values of multiple fields. Learn more → Read more HOTKEYS A container for hotkeys tracking commands. Learn more → Read more HOTKEYS GET Returns lists of top K hotkeys depending on metrics chosen in HOTKEYS START command. Learn more → Read more HOTKEYS RESET Release the resources used for hotkey tracking. Learn more → Read more HOTKEYS START Starts hotkeys tracking. Learn more → Read more HOTKEYS STOP Stops hotkeys tracking. Learn more → Read more HPERSIST Removes the expiration time for each specified field Learn more → Read more HPEXPIRE Set expiry for hash field using relative time to expire (milliseconds) Learn more → Read more HPEXPIREAT Set expiry for hash field using an absolute Unix timestamp (milliseconds) Learn more → Read more HPEXPIRETIME Returns the expiration time of a hash field as a Unix timestamp, in msec. Learn more → Read more HPTTL Returns the TTL in milliseconds of a hash field. Learn more → Read more HRANDFIELD Returns one or more random fields from a hash. Learn more → Read more HSCAN Iterates over fields and values of a hash. Learn more → Read more HSET Creates or modifies the value of a field in a hash. Learn more → Read more HSETEX Set the value of one or more fields of a given hash key, and optionally set their expiration. Learn more → Read more HSETNX Sets the value of a field in a hash only when the field doesn't exist. Learn more → Read more HSTRLEN Returns the length of the value of a field. Learn more → Read more HTTL Returns the TTL in seconds of a hash field. Learn more → Read more HVALS Returns all values in a hash. Learn more → Read more INCR Increments the integer value of a key by one. Uses 0 as initial value if the key doesn't exist. Learn more → Read more INCRBY Increments the integer value of a key by a number. Uses 0 as initial value if the key doesn't exist. Learn more → Read more INCRBYFLOAT Increment the floating point value of a key by a number. Uses 0 as initial value if the key doesn't exist. Learn more → Read more INCREX Increments the numeric value of a key by a number and sets its expiration time. Uses 0 as initial value if the key doesn't exist. Learn more → Read more INFO Returns information and statistics about the server. Learn more → Read more JSON.ARRAPPEND Append one or more json values into the array at path after the last element in it. Learn more → Read more JSON.ARRINDEX Returns the index of the first occurrence of a JSON scalar value in the array at path Learn more → Read more JSON.ARRINSERT Inserts the JSON scalar(s) value at the specified index in the array at path Learn more → Read more JSON.ARRLEN Returns the length of the array at path Learn more → Read more JSON.ARRPOP Removes and returns the element at the specified index in the array at path Learn more → Read more JSON.ARRTRIM Trims the array at path to contain only the specified inclusive range of indices from start to stop Learn more → Read more JSON.CLEAR Clears all values from an array or an object and sets numeric values to `0` Learn more → Read more JSON.DEBUG Debugging container command Learn more → Read more JSON.DEBUG MEMORY Reports the size in bytes of a key Learn more → Read more JSON.DEL Deletes a value Learn more → Read more JSON.FORGET Deletes a value Learn more → Read more JSON.GET Gets the value at one or more paths in JSON serialized form Learn more → Read more JSON.MERGE Merges a given JSON value into matching paths. Consequently, JSON values at matching paths are updated, deleted, or expanded with new children Learn more → Read more JSON.MGET Returns the values at a path from one or more keys Learn more → Read more JSON.MSET Sets or updates the JSON value of one or more keys Learn more → Read more JSON.NUMINCRBY Increments the numeric value at path by a value Learn more → Read more JSON.NUMMULTBY Multiplies the numeric value at path by a value Learn more → Read more JSON.OBJKEYS Returns the key names of JSON objects at the paths matching a given path expression Learn more → Read more JSON.OBJLEN Returns the number of keys in JSON objects at the paths matching a given path expression Learn more → Read more JSON.RESP Returns the JSON value at path in Redis Serialization Protocol (RESP) Learn more → Read more JSON.SET Sets or updates the JSON value at a path Learn more → Read more JSON.STRAPPEND Appends a string to JSON strings at the paths matching a given path expression Learn more → Read more JSON.STRLEN Returns the length of JSON strings at the paths matching a given path expression Learn more → Read more JSON.TOGGLE Toggles a boolean value Learn more → Read more JSON.TYPE Returns the type of the JSON value at path Learn more → Read more KEYS Returns all key names that match a pattern. Learn more → Read more LASTSAVE Returns the Unix timestamp of the last successful save to disk. Learn more → Read more LATENCY DOCTOR Returns a human-readable latency analysis report. Learn more → Read more LATENCY GRAPH Returns a latency graph for an event. Learn more → Read more LATENCY HISTOGRAM Returns the cumulative distribution of latencies of a subset or all commands. Learn more → Read more LATENCY HISTORY Returns timestamp-latency samples for an event. Learn more → Read more LATENCY LATEST Returns the latest latency samples for all events. Learn more → Read more LATENCY RESET Resets the latency data for one or more events. Learn more → Read more LCS Finds the longest common substring. Learn more → Read more LINDEX Returns an element from a list by its index. Learn more → Read more LINSERT Inserts an element before or after another element in a list. Learn more → Read more LLEN Returns the length of a list. Learn more → Read more LMOVE Returns an element after popping it from one list and pushing it to another. Deletes the list if the last element was moved. Learn more → Read more LMOVEM Moves up to (or exactly) a number of elements from one list to another and returns them. Deletes the source list if it becomes empty. Learn more → Read more LMPOP Returns multiple elements from a list after removing them. Deletes the list if the last element was popped. Learn more → Read more LOLWUT Displays computer art and the Redis version Learn more → Read more LPOP Returns the first elements in a list after removing it. Deletes the list if the last element was popped. Learn more → Read more LPOS Returns the index of matching elements in a list. Learn more → Read more LPUSH Prepends one or more elements to a list. Creates the key if it doesn't exist. Learn more → Read more LPUSHX Prepends one or more elements to a list only when the list exists. Learn more → Read more LRANGE Returns a range of elements from a list. Learn more → Read more LREM Removes elements from a list. Deletes the list if the last element was removed. Learn more → Read more LSET Sets the value of an element in a list by its index. Learn more → Read more LTRIM Removes elements from both ends a list. Deletes the list if all elements were trimmed. Learn more → Read more MEMORY DOCTOR Outputs a memory problems report. Learn more → Read more MEMORY MALLOC-STATS Returns the allocator statistics. Learn more → Read more MEMORY PURGE Asks the allocator to release memory. Learn more → Read more MEMORY STATS Returns details about memory usage. Learn more → Read more MEMORY USAGE Estimates the memory usage of a key. Learn more → Read more MGET Atomically returns the string values of one or more keys. Learn more → Read more MIGRATE Atomically transfers a key from one Redis instance to another. Learn more → Read more MODULE LIST Returns all loaded modules. Learn more → Read more MODULE LOAD Loads a module. Learn more → Read more MODULE LOADEX Loads a module using extended parameters. Learn more → Read more MODULE UNLOAD Unloads a module. Learn more → Read more MONITOR Listens for all requests received by the server in real-time. Learn more → Read more MOVE Moves a key to another database. Learn more → Read more MSET Atomically creates or modifies the string values of one or more keys. Learn more → Read more MSETEX Atomically sets multiple string keys with a shared expiration in a single operation. Learn more → Read more MSETNX Atomically modifies the string values of one or more keys only when all keys don't exist. Learn more → Read more MULTI Starts a transaction. Learn more → Read more OBJECT ENCODING Returns the internal encoding of a Redis object. Learn more → Read more OBJECT FREQ Returns the logarithmic access frequency counter of a Redis object. Learn more → Read more OBJECT IDLETIME Returns the time since the last access to a Redis object. Learn more → Read more OBJECT REFCOUNT Returns the reference count of a value of a key. Learn more → Read more PERSIST Removes the expiration time of a key. Learn more → Read more PEXPIRE Sets the expiration time of a key in milliseconds. Learn more → Read more PEXPIREAT Sets the expiration time of a key to a Unix milliseconds timestamp. Learn more → Read more PEXPIRETIME Returns the expiration time of a key as a Unix milliseconds timestamp. Learn more → Read more PFADD Adds elements to a HyperLogLog key. Creates the key if it doesn't exist. Learn more → Read more PFCOUNT Returns the approximated cardinality of the set(s) observed by the HyperLogLog key(s). Learn more → Read more PFDEBUG Internal commands for debugging HyperLogLog values. Learn more → Read more PFMERGE Merges one or more HyperLogLog values into a single key. Learn more → Read more PFSELFTEST An internal command for testing HyperLogLog values. Learn more → Read more PING Returns the server's liveliness response. Learn more → Read more PSETEX Deprecated Use SET with the PX argument instead Sets both string value and expiration time in milliseconds of a key. The key is created if it doesn't exist. Learn more → Read more PSUBSCRIBE Listens for messages published to channels that match one or more patterns. Learn more → Read more PSYNC An internal command used in replication. Learn more → Read more PTTL Returns the expiration time in milliseconds of a key. Learn more → Read more PUBLISH Posts a message to a channel. Learn more → Read more PUBSUB CHANNELS Returns the active channels. Learn more → Read more PUBSUB NUMPAT Returns a count of unique pattern subscriptions. Learn more → Read more PUBSUB NUMSUB Returns a count of subscribers to channels. Learn more → Read more PUBSUB SHARDCHANNELS Returns the active shard channels. Learn more → Read more PUBSUB SHARDNUMSUB Returns the count of subscribers of shard channels. Learn more → Read more PUNSUBSCRIBE Stops listening to messages published to channels that match one or more patterns. Learn more → Read more QUIT Deprecated Use just closing the connection instead Closes the connection. Learn more → Read more RANDOMKEY Returns a random key name from the database. Learn more → Read more READONLY Enables read-only queries for a connection to a Redis Cluster replica node. Learn more → Read more READWRITE Enables read-write queries for a connection to a Reids Cluster replica node. Learn more → Read more RENAME Renames a key and overwrites the destination. Learn more → Read more RENAMENX Renames a key only when the target key name doesn't exist. Learn more → Read more REPLCONF An internal command for configuring the replication stream. Learn more → Read more REPLICAOF Configures a server as replica of another, or promotes it to a master. Learn more → Read more RESET Resets the connection. Learn more → Read more RESTORE Creates a key from the serialized representation of a value. Learn more → Read more RESTORE-ASKING An internal command for migrating keys in a cluster. Learn more → Read more ROLE Returns the replication role. Learn more → Read more RPOP Returns and removes the last elements of a list. Deletes the list if the last element was popped. Learn more → Read more RPOPLPUSH Deprecated Use LMOVE with the RIGHT and LEFT arguments instead Returns the last element of a list after removing and pushing it to another list. Deletes the list if the last element was popped. Learn more → Read more RPUSH Appends one or more elements to a list. Creates the key if it doesn't exist. Learn more → Read more RPUSHX Appends an element to a list only when the list exists. Learn more → Read more SADD Adds one or more members to a set. Creates the key if it doesn't exist. Learn more → Read more SAVE Synchronously saves the database(s) to disk. Learn more → Read more SCAN Iterates over the key names in the database. Learn more → Read more SCARD Returns the number of members in a set. Learn more → Read more SCRIPT DEBUG Sets the debug mode of server-side Lua scripts. Learn more → Read more SCRIPT EXISTS Determines whether server-side Lua scripts exist in the script cache. Learn more → Read more SCRIPT FLUSH Removes all server-side Lua scripts from the script cache. Learn more → Read more SCRIPT KILL Terminates a server-side Lua script during execution. Learn more → Read more SCRIPT LOAD Loads a server-side Lua script to the script cache. Learn more → Read more SDIFF Returns the difference of multiple sets. Learn more → Read more SDIFFCARD Returns the number of members of the difference between the first set and all successive sets. Learn more → Read more SDIFFSTORE Stores the difference of multiple sets in a key. Learn more → Read more SELECT Changes the selected database. Learn more → Read more SET Sets the string value of a key, ignoring its type. The key is created if it doesn't exist. Learn more → Read more SETBIT Sets or clears the bit at offset of the string value. Creates the key if it doesn't exist. Learn more → Read more SETEX Deprecated Use SET with the EX argument instead Sets the string value and expiration time of a key. Creates the key if it doesn't exist. Learn more → Read more SETNX Deprecated Use SET with the NX argument instead Set the string value of a key only when the key doesn't exist. Learn more → Read more SETRANGE Overwrites a part of a string value with another by an offset. Creates the key if it doesn't exist. Learn more → Read more SHUTDOWN Synchronously saves the database(s) to disk and shuts down the Redis server. Learn more → Read more SINTER Returns the intersect of multiple sets. Learn more → Read more SINTERCARD Returns the number of members of the intersect of multiple sets. Learn more → Read more SINTERSTORE Stores the intersect of multiple sets in a key. Learn more → Read more SISMEMBER Determines whether a member belongs to a set. Learn more → Read more SLAVEOF Deprecated Use REPLICAOF instead Sets a Redis server as a replica of another, or promotes it to being a master. Learn more → Read more SLOWLOG GET Returns the slow log's entries. Learn more → Read more SLOWLOG LEN Returns the number of entries in the slow log. Learn more → Read more SLOWLOG RESET Clears all entries from the slow log. Learn more → Read more SMEMBERS Returns all members of a set. Learn more → Read more SMISMEMBER Determines whether multiple members belong to a set. Learn more → Read more SMOVE Moves a member from one set to another. Learn more → Read more SORT Sorts the elements in a list, a set, or a sorted set, optionally storing the result. Learn more → Read more SORT_RO Returns the sorted elements of a list, a set, or a sorted set. Learn more → Read more SPOP Returns one or more random members from a set after removing them. Deletes the set if the last member was popped. Learn more → Read more SPUBLISH Post a message to a shard channel Learn more → Read more SRANDMEMBER Get one or multiple random members from a set Learn more → Read more SREM Removes one or more members from a set. Deletes the set if the last member was removed. Learn more → Read more SSCAN Iterates over members of a set. Learn more → Read more SSUBSCRIBE Listens for messages published to shard channels. Learn more → Read more STRLEN Returns the length of a string value. Learn more → Read more SUBSCRIBE Listens for messages published to channels. Learn more → Read more SUBSTR Deprecated Use GETRANGE instead Returns a substring from a string value. Learn more → Read more SUNION Returns the union of multiple sets. Learn more → Read more SUNIONCARD Returns the number of members of the union of multiple sets. Learn more → Read more SUNIONSTORE Stores the union of multiple sets in a key. Learn more → Read more SUNSUBSCRIBE Stops listening to messages posted to shard channels. Learn more → Read more SWAPDB Swaps two Redis databases. Learn more → Read more SYNC An internal command used in replication. Learn more → Read more TDIGEST.ADD Adds one or more observations to a t-digest sketch Learn more → Read more TDIGEST.BYRANK Returns, for each input rank, an estimation of the value (floating-point) with that rank Learn more → Read more TDIGEST.BYREVRANK Returns, for each input reverse rank, an estimation of the value (floating-point) with that reverse rank Learn more → Read more TDIGEST.CDF Returns, for each input value, an estimation of the fraction (floating-point) of (observations smaller than the given value + half the observations equal to the given value) Learn more → Read more TDIGEST.CREATE Allocates memory and initializes a new t-digest sketch Learn more → Read more TDIGEST.INFO Returns information and statistics about a t-digest sketch Learn more → Read more TDIGEST.MAX Returns the maximum observation value from a t-digest sketch Learn more → Read more TDIGEST.MERGE Merges multiple t-digest sketches into a single sketch Learn more → Read more TDIGEST.MIN Returns the minimum observation value from a t-digest sketch Learn more → Read more TDIGEST.QUANTILE Returns, for each input fraction, an estimation of the value (floating point) that is smaller than the given fraction of observations Learn more → Read more TDIGEST.RANK Returns, for each input value (floating-point), the estimated rank of the value (the number of observations in the sketch that are smaller than the value + half the number of observations that are equal to the value) Learn more → Read more TDIGEST.RESET Resets a t-digest the sketch and re-initializes it. Learn more → Read more TDIGEST.REVRANK Returns, for each input value (floating-point), the estimated reverse rank of the value (the number of observations in the sketch that are larger than the value + half the number of observations that are equal to the value) Learn more → Read more TDIGEST.TRIMMED_MEAN Returns an estimation of the mean value from the sketch, excluding observation values outside the low and high cutoff quantiles Learn more → Read more TIME Returns the server time. Learn more → Read more TOPK.ADD Adds an item to a Top-k sketch. Multiple items can be added at the same time. Learn more → Read more TOPK.COUNT Return the count for one or more items are in a sketch Learn more → Read more TOPK.INCRBY Increases the count of one or more items by increment Learn more → Read more TOPK.INFO Returns information about a sketch Learn more → Read more TOPK.LIST Return full list of items in Top K list Learn more → Read more TOPK.QUERY Checks whether one or more items are in a sketch Learn more → Read more TOPK.RESERVE Initializes a TopK with specified parameters Learn more → Read more TOUCH Returns the number of existing keys out of those specified after updating the time they were last accessed. Learn more → Read more TS.ADD Append a sample to a time series Learn more → Read more TS.ALTER Update the retention, chunk size, duplicate policy, and labels of an existing time series Learn more → Read more TS.CREATE Create a new time series Learn more → Read more TS.CREATERULE Create a compaction rule Learn more → Read more TS.DECRBY Decrease the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given decrement Learn more → Read more TS.DEL Delete all samples between two timestamps for a given time series Learn more → Read more TS.DELETERULE Delete a compaction rule Learn more → Read more TS.GET Get the sample with the highest timestamp from a given time series Learn more → Read more TS.INCRBY Increase the value of the sample with the maximum existing timestamp, or create a new sample with a value equal to the value of the sample with the maximum existing timestamp with a given increment Learn more → Read more TS.INFO Returns information and statistics for a time series Learn more → Read more TS.MADD Append new samples to one or more time series Learn more → Read more TS.MGET Get the sample with the highest timestamp from each time series matching a specific filter Learn more → Read more TS.MRANGE Query a range across multiple time series by filters in forward direction Learn more → Read more TS.MREVRANGE Query a range across multiple time-series by filters in reverse direction Learn more → Read more TS.NRANGE Query a range across multiple time series in forward direction, returning the results grouped by timestamp Learn more → Read more TS.NREVRANGE Query a range across multiple time series in reverse direction, returning the results grouped by timestamp Learn more → Read more TS.QUERYINDEX Get all time series keys matching a filter list Learn more → Read more TS.QUERYLABELS Get all label names, or all values of a given label, for time series matching a filter list, or all series Learn more → Read more TS.RANGE Query a range in forward direction Learn more → Read more TS.READ up to max_count samples with timestamp >= timestamp. With BLOCK, waits up to milliseconds ms until at least min_count qualifying samples exist Learn more → Read more TS.REVRANGE Query a range in reverse direction Learn more → Read more TTL Returns the expiration time in seconds of a key. Learn more → Read more TYPE Determines the type of value stored at a key. Learn more → Read more UNLINK Asynchronously deletes one or more keys. Learn more → Read more UNSUBSCRIBE Stops listening to messages posted to channels. Learn more → Read more UNWATCH Forgets about watched keys of a transaction. Learn more → Read more VADD Add a new element to a vector set, or update its vector if it already exists. Learn more → Read more VCARD Return the number of elements in a vector set. Learn more → Read more VDIM Return the dimension of vectors in the vector set. Learn more → Read more VEMB Return the vector associated with an element. Learn more → Read more VGETATTR Retrieve the JSON attributes of elements. Learn more → Read more VINFO Return information about a vector set. Learn more → Read more VISMEMBER Check if an element exists in a vector set. Learn more → Read more VLINKS Return the neighbors of an element at each layer in the HNSW graph. Learn more → Read more VRANDMEMBER Return one or multiple random members from a vector set. Learn more → Read more VRANGE Return elements in a lexicographical range Learn more → Read more VREM Remove an element from a vector set. Learn more → Read more VSETATTR Associate or remove the JSON attributes of elements. Learn more → Read more VSIM Return elements by vector similarity. Learn more → Read more WAIT Blocks until the asynchronous replication of all preceding write commands sent by the connection is completed. Learn more → Read more WAITAOF Blocks until all of the preceding write commands sent by the connection are written to the append-only file of the master and/or replicas. Learn more → Read more WATCH Monitors changes to keys to determine the execution of a transaction. Learn more → Read more XACK Returns the number of messages that were successfully acknowledged by the consumer group member of a stream. Learn more → Read more XACKDEL Acknowledges and conditionally deletes one or multiple entries for a stream consumer group. Learn more → Read more XADD Appends a new message to a stream. Creates the key if it doesn't exist. Learn more → Read more XAUTOCLAIM Changes, or acquires, ownership of messages in a consumer group, as if the messages were delivered to as consumer group member. Learn more → Read more XCFGSET Sets the IDMP configuration parameters for a stream. Learn more → Read more XCLAIM Changes, or acquires, ownership of a message in a consumer group, as if the message was delivered a consumer group member. Learn more → Read more XDEL Returns the number of messages after removing them from a stream. Learn more → Read more XDELEX Deletes one or multiple entries from the stream. Learn more → Read more XGROUP CREATE Creates a consumer group. Learn more → Read more XGROUP CREATECONSUMER Creates a consumer in a consumer group. Learn more → Read more XGROUP DELCONSUMER Deletes a consumer from a consumer group. Learn more → Read more XGROUP DESTROY Destroys a consumer group. Learn more → Read more XGROUP SETID Sets the last-delivered ID of a consumer group. Learn more → Read more XIDMPRECORD An internal command for setting IDMP metadata on an existing stream message. Learn more → Read more XINFO CONSUMERS Returns a list of the consumers in a consumer group. Learn more → Read more XINFO GROUPS Returns a list of the consumer groups of a stream. Learn more → Read more XINFO STREAM Returns information about a stream. Learn more → Read more XLEN Return the number of messages in a stream. Learn more → Read more XNACK Releases pending messages back to the group's PEL without acknowledging them, making them available for re-delivery. Learn more → Read more XPENDING Returns the information and entries from a stream consumer group's pending entries list. Learn more → Read more XRANGE Returns the messages from a stream within a range of IDs. Learn more → Read more XREAD Returns messages from multiple streams with IDs greater than the ones requested. Blocks until a message is available otherwise. Learn more → Read more XREADGROUP Returns new or historical messages from a stream for a consumer in a group. Blocks until a message is available otherwise. Learn more → Read more XREVRANGE Returns the messages from a stream within a range of IDs in reverse order. Learn more → Read more XSETID An internal command for replicating stream values. Learn more → Read more XTRIM Deletes messages from the beginning of a stream. Learn more → Read more ZADD Adds one or more members to a sorted set, or updates their scores. Creates the key if it doesn't exist. Learn more → Read more ZCARD Returns the number of members in a sorted set. Learn more → Read more ZCOUNT Returns the count of members in a sorted set that have scores within a range. Learn more → Read more ZDIFF Returns the difference between multiple sorted sets. Learn more → Read more ZDIFFSTORE Stores the difference of multiple sorted sets in a key. Learn more → Read more ZINCRBY Increments the score of a member in a sorted set. Learn more → Read more ZINTER Returns the intersect of multiple sorted sets. Learn more → Read more ZINTERCARD Returns the number of members of the intersect of multiple sorted sets. Learn more → Read more ZINTERSTORE Stores the intersect of multiple sorted sets in a key. Learn more → Read more ZLEXCOUNT Returns the number of members in a sorted set within a lexicographical range. Learn more → Read more ZMPOP Returns the highest- or lowest-scoring members from one or more sorted sets after removing them. Deletes the sorted set if the last member was popped. Learn more → Read more ZMSCORE Returns the score of one or more members in a sorted set. Learn more → Read more ZPOPMAX Returns the highest-scoring members from a sorted set after removing them. Deletes the sorted set if the last member was popped. Learn more → Read more ZPOPMIN Returns the lowest-scoring members from a sorted set after removing them. Deletes the sorted set if the last member was popped. Learn more → Read more ZRANDMEMBER Returns one or more random members from a sorted set. Learn more → Read more ZRANGE Returns members in a sorted set within a range of indexes. Learn more → Read more ZRANGEBYLEX Deprecated Use ZRANGE with the BYLEX argument instead Returns members in a sorted set within a lexicographical range. Learn more → Read more ZRANGEBYSCORE Deprecated Use ZRANGE with the BYSCORE argument instead Returns members in a sorted set within a range of scores. Learn more → Read more ZRANGESTORE Stores a range of members from sorted set in a key. Learn more → Read more ZRANK Returns the index of a member in a sorted set ordered by ascending scores. Learn more → Read more ZREM Removes one or more members from a sorted set. Deletes the sorted set if all members were removed. Learn more → Read more ZREMRANGEBYLEX Removes members in a sorted set within a lexicographical range. Deletes the sorted set if all members were removed. Learn more → Read more ZREMRANGEBYRANK Removes members in a sorted set within a range of indexes. Deletes the sorted set if all members were removed. Learn more → Read more ZREMRANGEBYSCORE Removes members in a sorted set within a range of scores. Deletes the sorted set if all members were removed. Learn more → Read more ZREVRANGE Deprecated Use ZRANGE with the REV argument instead Returns members in a sorted set within a range of indexes in reverse order. Learn more → Read more ZREVRANGEBYLEX Deprecated Use ZRANGE with the REV and BYLEX arguments instead Returns members in a sorted set within a lexicographical range in reverse order. Learn more → Read more ZREVRANGEBYSCORE Deprecated Use ZRANGE with the REV and BYSCORE arguments instead Returns members in a sorted set within a range of scores in reverse order. Learn more → Read more ZREVRANK Returns the index of a member in a sorted set ordered by descending scores. Learn more → Read more ZSCAN Iterates over members and scores of a sorted set. Learn more → Read more ZSCORE Returns the score of a member in a sorted set. Learn more → Read more ZUNION Returns the union of multiple sorted sets. Learn more → Read more ZUNIONSTORE Stores the union of multiple sorted sets in a key. Learn more → Read more # A B C D E F G H I J K L M O P Q R S T U V W X Z\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.414Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":13596}}495{"id":"doc-what_s_new_docs-05fc113d","source":"documentation","title":"What's new? | Docs","url":"https://redis.io/docs/latest/develop/whats-new/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\",\"rc\"],\"description\":\"High-level description of important updates to the Develop section\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"What's new?\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.460Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":103}}496{"id":"doc-json_docs-ea1546cb","source":"documentation","title":"JSON | Docs","url":"https://redis.io/docs/latest/develop/data-types/json/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"description\":\"JSON support for Redis\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"JSON\",\"tableOfContents\":{\"sections\":[{\"id\":\"primary-features\",\"title\":\"Primary features\"},{\"id\":\"use-redis-with-json\",\"title\":\"Use Redis with JSON\"},{\"id\":\"format-cli-output\",\"title\":\"Format CLI output\"},{\"id\":\"enable-redis-json\",\"title\":\"Enable Redis JSON\"},{\"id\":\"limitation\",\"title\":\"Limitation\"},{\"id\":\"further-information\",\"title\":\"Further information\"}]},\"codeExamples\":[{\"codetabsId\":\"json_tutorial-stepset_get\",\"commands\":[{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(M+N)\",\"name\":\"JSON.SET\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.GET\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.TYPE\"}],\"description\":\"Foundational: Set and retrieve JSON values using JSON.SET and JSON.GET to store and access JSON documents\",\"difficulty\":\"beginner\",\"id\":\"set_get\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_json_tutorial-stepset_get\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_json_tutorial-stepset_get\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_json_tutorial-stepset_get\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_json_tutorial-stepset_get\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_json_tutorial-stepset_get\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_json_tutorial-stepset_get\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_json_tutorial-stepset_get\"},{\"id\":\"dotnet-Sync (NRedisStack)\",\"panelId\":\"panel_Csharp-Sync (NRedisStack)_json_tutorial-stepset_get\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_json_tutorial-stepset_get\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_json_tutorial-stepset_get\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_json_tutorial-stepset_get\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_json_tutorial-stepset_get\"}]},{\"buildsUpon\":[\"set_get\"],\"codetabsId\":\"json_tutorial-stepstr\",\"commands\":[{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.STRLEN\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.STRAPPEND\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.GET\"}],\"description\":\"String JSON strings using JSON.STRLEN to get length and JSON.STRAPPEND to concatenate values\",\"difficulty\":\"beginner\",\"id\":\"str\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_json_tutorial-stepstr\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_json_tutorial-stepstr\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_json_tutorial-stepstr\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_json_tutorial-stepstr\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_json_tutorial-stepstr\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_json_tutorial-stepstr\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_json_tutorial-stepstr\"},{\"id\":\"dotnet-Sync (NRedisStack)\",\"panelId\":\"panel_Csharp-Sync (NRedisStack)_json_tutorial-stepstr\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_json_tutorial-stepstr\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_json_tutorial-stepstr\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_json_tutorial-stepstr\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_json_tutorial-stepstr\"}]},{\"buildsUpon\":[\"set_get\"],\"codetabsId\":\"json_tutorial-stepnum\",\"commands\":[{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(M+N)\",\"name\":\"JSON.SET\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.NUMINCRBY\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.NUMMULTBY\"}],\"description\":\"Numeric atomic arithmetic on JSON numbers using JSON.NUMINCRBY to increment and JSON.NUMMULTBY to multiply values\",\"difficulty\":\"beginner\",\"id\":\"num\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_json_tutorial-stepnum\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_json_tutorial-stepnum\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_json_tutorial-stepnum\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_json_tutorial-stepnum\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_json_tutorial-stepnum\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_json_tutorial-stepnum\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_json_tutorial-stepnum\"},{\"id\":\"dotnet-Sync (NRedisStack)\",\"panelId\":\"panel_Csharp-Sync (NRedisStack)_json_tutorial-stepnum\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_json_tutorial-stepnum\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_json_tutorial-stepnum\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_json_tutorial-stepnum\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_json_tutorial-stepnum\"}]},{\"buildsUpon\":[\"set_get\"],\"codetabsId\":\"json_tutorial-steparr\",\"commands\":[{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(M+N)\",\"name\":\"JSON.SET\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.GET\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.DEL\"}],\"description\":\"Arrays and with complex JSON structures using JSONPath to access nested elements and JSON.DEL to remove values\",\"difficulty\":\"intermediate\",\"id\":\"arr\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_json_tutorial-steparr\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_json_tutorial-steparr\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_json_tutorial-steparr\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_json_tutorial-steparr\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_json_tutorial-steparr\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_json_tutorial-steparr\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_json_tutorial-steparr\"},{\"id\":\"dotnet-Sync (NRedisStack)\",\"panelId\":\"panel_Csharp-Sync (NRedisStack)_json_tutorial-steparr\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_json_tutorial-steparr\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_json_tutorial-steparr\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_json_tutorial-steparr\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_json_tutorial-steparr\"}]},{\"buildsUpon\":[\"arr\"],\"codetabsId\":\"json_tutorial-steparr2\",\"commands\":[{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(M+N)\",\"name\":\"JSON.SET\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.ARRAPPEND\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.GET\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.ARRINSERT\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.ARRTRIM\"},{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(N)\",\"name\":\"JSON.ARRPOP\"}],\"description\":\"Array JSON.ARRAPPEND to add elements, JSON.ARRINSERT to insert at positions, JSON.ARRTRIM to keep ranges, and JSON.ARRPOP to remove elements\",\"difficulty\":\"intermediate\",\"id\":\"arr2\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_json_tutorial-steparr2\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_json_tutorial-steparr2\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_json_tutorial-steparr2\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_json_tutorial-steparr2\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_json_tutorial-steparr2\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_json_tutorial-steparr2\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_json_tutorial-steparr2\"},{\"id\":\"dotnet-Sync (NRedisStack)\",\"panelId\":\"panel_Csharp-Sync (NRedisStack)_json_tutorial-steparr2\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_json_tutorial-steparr2\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_json_tutorial-steparr2\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_json_tutorial-steparr2\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_json_tutorial-steparr2\"}]},{\"buildsUpon\":[\"arr\"],\"codetabsId\":\"json_tutorial-stepobj\",\"commands\":[{\"acl_categories\":[\"@write\",\"@json\"],\"complexity\":\"O(M+N)\",\"name\":\"JSON.SET\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.OBJLEN\"},{\"acl_categories\":[\"@read\",\"@json\"],\"complexity\":\"O(1)\",\"name\":\"JSON.OBJKEYS\"}],\"description\":\"Object JSON objects using JSON.OBJLEN to count fields and JSON.OBJKEYS to retrieve all keys\",\"difficulty\":\"intermediate\",\"id\":\"obj\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_json_tutorial-stepobj\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_json_tutorial-stepobj\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_json_tutorial-stepobj\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_json_tutorial-stepobj\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_json_tutorial-stepobj\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_json_tutorial-stepobj\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_json_tutorial-stepobj\"},{\"id\":\"dotnet-Sync (NRedisStack)\",\"panelId\":\"panel_Csharp-Sync (NRedisStack)_json_tutorial-stepobj\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_json_tutorial-stepobj\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_json_tutorial-stepobj\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_json_tutorial-stepobj\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_json_tutorial-stepobj\"}]}]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```python\nres1 = r.json().set(\"bike\", \"$\", '\"Hyperion\"')\nprint(res1) # >>> True\n\nres2 = r.json().get(\"bike\", \"$\")\nprint(res2) # >>> ['\"Hyperion\"']\n\nres3 = r.json().type(\"bike\", \"$\")\nprint(res3) # >>> ['string']\n```\n\nExample:\n```python\n\"\"\"\nCode samples for JSON doc pages:\n https://redis.io/docs/latest/develop/data-types/json/\n\"\"\"\nimport redis\n\nr = redis.Redis(decode_responses=True)\n\n\nres1 = r.json().set(\"bike\", \"$\", '\"Hyperion\"')\nprint(res1) # >>> True\n\nres2 = r.json().get(\"bike\", \"$\")\nprint(res2) # >>> ['\"Hyperion\"']\n\nres3 = r.json().type(\"bike\", \"$\")\nprint(res3) # >>> ['string']\n\n\nres4 = r.json().strlen(\"bike\", \"$\")\nprint(res4) # >>> [10]\n\nres5 = r.json().strappend(\"bike\", '\" (Enduro bikes)\"')\nprint(res5) # >>> 27\n\nres6 = r.json().get(\"bike\", \"$\")\nprint(res6) # >>> ['\"Hyperion\"\" (Enduro bikes)\"']\n\n\nres7 = r.json().set(\"crashes\", \"$\", 0)\nprint(res7) # >>> True\n\nres8 = r.json().numincrby(\"crashes\", \"$\", 1)\nprint(res8) # >>> [1]\n\nres9 = r.json().numincrby(\"crashes\", \"$\", 1.5)\nprint(res9) # >>> [2.5]\n\nres10 = r.json().numincrby(\"crashes\", \"$\", -0.75)\nprint(res10) # >>> [1.75]\n\n\nres11 = r.json().set(\"newbike\", \"$\", [\"Deimos\", {\"crashes\": 0}, None])\nprint(res11) # >>> True\n\nres12 = r.json().get(\"newbike\", \"$\")\nprint(res12) # >>> ['[\"Deimos\", { \"crashes\": 0 }, null]']\n\nres13 = r.json().get(\"newbike\", \"$[1].crashes\")\nprint(res13) # >>> [0]\n\nres14 = r.json().delete(\"newbike\", \"$.[-1]\")\nprint(res14) # >>> [1]\n\nres15 = r.json().get(\"newbike\", \"$\")\nprint(res15) # >>> [['Deimos', {'crashes': 0}]]\n\n\nres16 = r.json().set(\"riders\", \"$\", [])\nprint(res16) # >>> True\n\nres17 = r.json().arrappend(\"riders\", \"$\", \"Norem\")\nprint(res17) # >>> [1]\n\nres18 = r.json().get(\"riders\", \"$\")\nprint(res18) # >>> [['Norem']]\n\nres19 = r.json().arrinsert(\"riders\", \"$\", 1, \"Prickett\", \"Royce\", \"Castilla\")\nprint(res19) # >>> [4]\n\nres20 = r.json().get(\"riders\", \"$\")\nprint(res20) # >>> [['Norem', 'Prickett', 'Royce', 'Castilla']]\n\nres21 = r.json().arrtrim(\"riders\", \"$\", 1, 1)\nprint(res21) # >>> [1]\n\nres22 = r.json().get(\"riders\", \"$\")\nprint(res22) # >>> [['Prickett']]\n\nres23 = r.json().arrpop(\"riders\", \"$\")\nprint(res23) # >>> ['\"Prickett\"']\n\nres24 = r.json().arrpop(\"riders\", \"$\")\nprint(res24) # >>> [None]\n\n\nres25 = r.json().set(\n \"bike:1\", \"$\", {\"model\": \"Deimos\", \"brand\": \"Ergonom\", \"price\": 4972}\n)\nprint(res25) # >>> True\n\nres26 = r.json().objlen(\"bike:1\", \"$\")\nprint(res26) # >>> [3]\n\nres27 = r.json().objkeys(\"bike:1\", \"$\")\nprint(res27) # >>> [['model', 'brand', 'price']]\n\n\ninventory_json = {\n \"inventory\": {\n \"mountain_bikes\": [\n {\n \"id\": \"bike:1\",\n \"model\": \"Phoebe\",\n \"description\": \"This is a mid-travel trail slayer that is a fantastic \"\n \"daily driver or one bike quiver. The Shimano Claris 8-speed groupset \"\n \"gives plenty of gear range to tackle hills and there\\u2019s room for \"\n \"mudguards and a rack too. This is the bike for the rider who wants \"\n \"trail manners with low fuss ownership.\",\n \"price\": 1920,\n \"specs\": {\"material\": \"carbon\", \"weight\": 13.1},\n \"colors\": [\"black\", \"silver\"],\n },\n {\n \"id\": \"bike:2\",\n \"model\": \"Quaoar\",\n \"description\": \"Redesigned for the 2020 model year, this bike \"\n \"impressed our testers and is the best all-around trail bike we've \"\n \"ever tested. The Shimano gear system effectively does away with an \"\n \"external cassette, so is super low maintenance in terms of wear \"\n \"and tear. All in all it's an impressive package for the price, \"\n \"making it very competitive.\",\n \"price\": 2072,\n \"specs\": {\"material\": \"aluminium\", \"weight\": 7.9},\n \"colors\": [\"black\", \"white\"],\n },\n {\n \"id\": \"bike:3\",\n \"model\": \"Weywot\",\n \"description\": \"This bike gives kids aged six years and older \"\n \"a durable and uberlight mountain bike for their first experience \"\n \"on tracks and easy cruising through forests and fields. A set of \"\n \"powerful Shimano hydraulic disc brakes provide ample stopping \"\n \"ability. If you're after a budget option, this is one of the best \"\n \"bikes you could get.\",\n \"price\": 3264,\n \"specs\": {\"material\": \"alloy\", \"weight\": 13.8},\n },\n ],\n \"commuter_bikes\": [\n {\n \"id\": \"bike:4\",\n \"model\": \"Salacia\",\n \"description\": \"This bike is a great option for anyone who just \"\n \"wants a bike to get about on With a slick-shifting Claris gears \"\n \"from Shimano\\u2019s, this is a bike which doesn\\u2019t break the \"\n \"bank and delivers craved performance. It\\u2019s for the rider \"\n \"who wants both efficiency and capability.\",\n \"price\": 1475,\n \"specs\": {\"material\": \"aluminium\", \"weight\": 16.6},\n \"colors\": [\"black\", \"silver\"],\n },\n {\n \"id\": \"bike:5\",\n \"model\": \"Mimas\",\n \"description\": \"A real joy to ride, this bike got very high \"\n \"scores in last years Bike of the year report. The carefully \"\n \"crafted 50-34 tooth chainset and 11-32 tooth cassette give an \"\n \"easy-on-the-legs bottom gear for climbing, and the high-quality \"\n \"Vittoria Zaffiro tires give balance and grip.It includes \"\n \"a low-step frame , our memory foam seat, bump-resistant shocks and \"\n \"conveniently placed thumb throttle. Put it all together and you \"\n \"get a bike that helps redefine what can be done for this price.\",\n \"price\": 3941,\n \"specs\": {\"material\": \"alloy\", \"weight\": 11.6},\n },\n ],\n }\n}\n\nres1 = r.json().set(\"bikes:inventory\", \"$\", inventory_json)\nprint(res1) # >>> True\n\nres2 = r.json().get(\"bikes:inventory\", \"$.inventory.*\")\nprint(res2)\n# >>> [[{'id': 'bike:1', 'model': 'Phoebe',\n# >>> 'description': 'This is a mid-travel trail slayer...\n\nres3 = r.json().get(\"bikes:inventory\", \"$.inventory.mountain_bikes[*].model\")\nprint(res3) # >>> [['Phoebe', 'Quaoar', 'Weywot']]\n\nres4 = r.json().get(\"bikes:inventory\", '$.inventory[\"mountain_bikes\"][*].model')\nprint(res4) # >>> [['Phoebe', 'Quaoar', 'Weywot']]\n\nres5 = r.json().get(\"bikes:inventory\", \"$..mountain_bikes[*].model\")\nprint(res5) # >>> [['Phoebe', 'Quaoar', 'Weywot']]\n\n\nres6 = r.json().get(\"bikes:inventory\", \"$..model\")\nprint(res6) # >>> [['Phoebe', 'Quaoar', 'Weywot', 'Salacia', 'Mimas']]\n\n\nres7 = r.json().get(\"bikes:inventory\", \"$..mountain_bikes[0:2].model\")\nprint(res7) # >>> [['Phoebe', 'Quaoar']]\n\n\nres8 = r.json().get(\n \"bikes:inventory\",\n \"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\",\n)\nprint(res8)\n# >>> [{'id': 'bike:2', 'model': 'Quaoar',\n# 'description': \"Redesigned for the 2020 model year...\n\n\nres9 = r.json().get(\"bikes:inventory\", \"$..[?(@.specs.material == 'alloy')].model\")\nprint(res9) # >>> ['Weywot', 'Mimas']\n\n\nres10 = r.json().get(\"bikes:inventory\", \"$..[?(@.specs.material =~ '(?i)al')].model\")\nprint(res10) # >>> ['Quaoar', 'Weywot', 'Salacia', 'Mimas']\n\n\nres11 = r.json().set(\n \"bikes:inventory\", \"$.inventory.mountain_bikes[0].regex_pat\", \"(?i)al\"\n)\nres12 = r.json().set(\n \"bikes:inventory\", \"$.inventory.mountain_bikes[1].regex_pat\", \"(?i)al\"\n)\nres13 = r.json().set(\n \"bikes:inventory\", \"$.inventory.mountain_bikes[2].regex_pat\", \"(?i)al\"\n)\n\nres14 = r.json().get(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\",\n)\nprint(res14) # >>> ['Quaoar', 'Weywot']\n\n\nres15 = r.json().get(\"bikes:inventory\", \"$..price\")\nprint(res15) # >>> [1920, 2072, 3264, 1475, 3941]\n\nres16 = r.json().numincrby(\"bikes:inventory\", \"$..price\", -100)\nprint(res16) # >>> [1820, 1972, 3164, 1375, 3841]\n\nres17 = r.json().numincrby(\"bikes:inventory\", \"$..price\", 100)\nprint(res17) # >>> [1920, 2072, 3264, 1475, 3941]\n\n\nres18 = r.json().set(\"bikes:inventory\", \"$.inventory.*[?(@.price<2000)].price\", 1500)\nres19 = r.json().get(\"bikes:inventory\", \"$..price\")\nprint(res19) # >>> [1500, 2072, 3264, 1500, 3941]\n\n\nres20 = r.json().arrappend(\n \"bikes:inventory\", \"$.inventory.*[?(@.price<2000)].colors\", \"pink\"\n)\nprint(res20) # >>> [3, 3]\n\nres21 = r.json().get(\"bikes:inventory\", \"$..[*].colors\")\nprint(\n res21\n) # >>> [['black', 'silver', 'pink'], ['black', 'white'], ['black', 'silver', 'pink']]\n```\n\nExample:\n```node\nconst res1 = await client.json.set(\"bike\", \"$\", '\"Hyperion\"');\nconsole.log(res1); // OK\n\nconst res2 = await client.json.get(\"bike\", { path: \"$\" });\nconsole.log(res2); // ['\"Hyperion\"']\n\nconst res3 = await client.json.type(\"bike\", { path: \"$\" });\nconsole.log(res3); // [ 'string' ]\n```\n\nExample:\n```node\nimport assert from 'assert';\nimport {\n createClient\n} from 'redis';\n\nconst client = await createClient();\nawait client.connect();\n\nconst res1 = await client.json.set(\"bike\", \"$\", '\"Hyperion\"');\nconsole.log(res1); // OK\n\nconst res2 = await client.json.get(\"bike\", { path: \"$\" });\nconsole.log(res2); // ['\"Hyperion\"']\n\nconst res3 = await client.json.type(\"bike\", { path: \"$\" });\nconsole.log(res3); // [ 'string' ]\n\n\nconst res4 = await client.json.strLen(\"bike\", { path: \"$\" });\nconsole.log(res4) // [10]\n\nconst res5 = await client.json.strAppend(\"bike\", '\" (Enduro bikes)\"');\nconsole.log(res5) // 27\n\nconst res6 = await client.json.get(\"bike\", { path: \"$\" });\nconsole.log(res6) // ['\"Hyperion\"\" (Enduro bikes)\"']\n\n\nconst res7 = await client.json.set(\"crashes\", \"$\", 0);\nconsole.log(res7) // OK\n\nconst res8 = await client.json.numIncrBy(\"crashes\", \"$\", 1);\nconsole.log(res8) // [1]\n\nconst res9 = await client.json.numIncrBy(\"crashes\", \"$\", 1.5);\nconsole.log(res9) // [2.5]\n\nconst res10 = await client.json.numIncrBy(\"crashes\", \"$\", -0.75);\nconsole.log(res10) // [1.75]\n\n\nconst res11 = await client.json.set(\"newbike\", \"$\", [\"Deimos\", {\"crashes\": 0 }, null]);\nconsole.log(res11); // OK\n\nconst res12 = await client.json.get(\"newbike\", { path: \"$\" });\nconsole.log(res12); // [[ 'Deimos', { crashes: 0 }, null ]]\n\nconst res13 = await client.json.get(\"newbike\", { path: \"$[1].crashes\" });\nconsole.log(res13); // [0]\n\nconst res14 = await client.json.del(\"newbike\", { path: \"$.[-1]\"} );\nconsole.log(res14); // 1\n\nconst res15 = await client.json.get(\"newbike\", { path: \"$\" });\nconsole.log(res15); // [[ 'Deimos', { crashes: 0 } ]]\n\n\nconst res16 = await client.json.set(\"riders\", \"$\", []);\nconsole.log(res16); // OK\n\nconst res17 = await client.json.arrAppend(\"riders\", \"$\", \"Norem\");\nconsole.log(res17); // [1]\n\nconst res18 = await client.json.get(\"riders\", { path: \"$\" });\nconsole.log(res18); // [[ 'Norem' ]]\n\nconst res19 = await client.json.arrInsert(\"riders\", \"$\", 1, \"Prickett\", \"Royse\", \"Castilla\");\nconsole.log(res19); // [4]\n\nconst res20 = await client.json.get(\"riders\", { path: \"$\" });\nconsole.log(res20); // [[ 'Norem', 'Prickett', 'Royse', 'Castilla' ]]\n\nconst res21 = await client.json.arrTrim(\"riders\", \"$\", 1, 1);\nconsole.log(res21); // [1]\n\nconst res22 = await client.json.get(\"riders\", { path: \"$\" });\nconsole.log(res22); // [[ 'Prickett' ]]\n\nconst res23 = await client.json.arrPop(\"riders\", { path: \"$\" });\nconsole.log(res23); // [ 'Prickett' ]\n\nconst res24 = await client.json.arrPop(\"riders\", { path: \"$\" });\nconsole.log(res24); // [null]\n\n\nconst res25 = await client.json.set(\n \"bike:1\", \"$\", {\n \"model\": \"Deimos\",\n \"brand\": \"Ergonom\",\n \"price\": 4972\n }\n);\nconsole.log(res25); // OK\n\nconst res26 = await client.json.objLen(\"bike:1\", { path: \"$\" });\nconsole.log(res26); // [3]\n\nconst res27 = await client.json.objKeys(\"bike:1\", { path: \"$\" });\nconsole.log(res27); // [['model', 'brand', 'price']]\n\n\nconst inventoryJSON = {\n \"inventory\": {\n \"mountain_bikes\": [{\n \"id\": \"bike:1\",\n \"model\": \"Phoebe\",\n \"description\": \"This is a mid-travel trail slayer that is a fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset gives plenty of gear range to tackle hills and there\\u2019s room for mudguards and a rack too. This is the bike for the rider who wants trail manners with low fuss ownership.\",\n \"price\": 1920,\n \"specs\": {\n \"material\": \"carbon\",\n \"weight\": 13.1\n },\n \"colors\": [\"black\", \"silver\"],\n },\n {\n \"id\": \"bike:2\",\n \"model\": \"Quaoar\",\n \"description\": \"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and teaawait client. All in all it's an impressive package for the price, making it very competitive.\",\n \"price\": 2072,\n \"specs\": {\n \"material\": \"aluminium\",\n \"weight\": 7.9\n },\n \"colors\": [\"black\", \"white\"],\n },\n {\n \"id\": \"bike:3\",\n \"model\": \"Weywot\",\n \"description\": \"This bike gives kids aged six years and older a durable and uberlight mountain bike for their first experience on tracks and easy cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes provide ample stopping ability. If you're after a budget option, this is one of the best bikes you could get.\",\n \"price\": 3264,\n \"specs\": {\n \"material\": \"alloy\",\n \"weight\": 13.8\n },\n },\n ],\n \"commuter_bikes\": [{\n \"id\": \"bike:4\",\n \"model\": \"Salacia\",\n \"description\": \"This bike is a great option for anyone who just wants a bike to get about on With a slick-shifting Claris gears from Shimano\\u2019s, this is a bike which doesn\\u2019t break the bank and delivers craved performance. It\\u2019s for the rider who wants both efficiency and capability.\",\n \"price\": 1475,\n \"specs\": {\n \"material\": \"aluminium\",\n \"weight\": 16.6\n },\n \"colors\": [\"black\", \"silver\"],\n },\n {\n \"id\": \"bike:5\",\n \"model\": \"Mimas\",\n \"description\": \"A real joy to ride, this bike got very high scores in last years Bike of the year report. The carefully crafted 50-34 tooth chainset and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb throttle. Put it all together and you get a bike that helps redefine what can be done for this price.\",\n \"price\": 3941,\n \"specs\": {\n \"material\": \"alloy\",\n \"weight\": 11.6\n },\n },\n ],\n }\n};\n\nconst res28 = await client.json.set(\"bikes:inventory\", \"$\", inventoryJSON);\nconsole.log(res28); // OK\n\nconst res29 = await client.json.get(\"bikes:inventory\", {\n path: \"$.inventory.*\"\n});\nconsole.log(res29);\n/*\n[\n [\n {\n id: 'bike:1',\n model: 'Phoebe',\n description: 'This is a mid-travel trail slayer that is a fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset gives plenty of gear range to tackle hills and there’s room for mudguards and a rack too. This is the bike for the rider who wants trail manners with low fuss ownership.',\n price: 1920,\n specs: [Object],\n colors: [Array]\n },\n {\n id: 'bike:2',\n model: 'Quaoar',\n description: \"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and teaawait client. All in all it's an impressive package for the price, making it very competitive.\",\n price: 2072,\n specs: [Object],\n colors: [Array]\n },\n {\n id: 'bike:3',\n model: 'Weywot',\n description: \"This bike gives kids aged six years and older a durable and uberlight mountain bike for their first experience on tracks and easy cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes provide ample stopping ability. If you're after a budget option, this is one of the best bikes you could get.\",\n price: 3264,\n specs: [Object]\n }\n ],\n [\n {\n id: 'bike:4',\n model: 'Salacia',\n description: 'This bike is a great option for anyone who just wants a bike to get about on With a slick-shifting Claris gears from Shimano’s, this is a bike which doesn’t break the bank and delivers craved performance. It’s for the rider who wants both efficiency and capability.',\n price: 1475,\n specs: [Object],\n colors: [Array]\n },\n {\n id: 'bike:5',\n model: 'Mimas',\n description: 'A real joy to ride, this bike got very high scores in last years Bike of the year report. The carefully crafted 50-34 tooth chainset and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb throttle. Put it all together and you get a bike that helps redefine what can be done for this price.',\n price: 3941,\n specs: [Object]\n }\n ]\n]\n*/\n\nconst res30 = await client.json.get(\"bikes:inventory\", {\n path: \"$.inventory.mountain_bikes[*].model\"\n});\nconsole.log(res30); // ['Phoebe', 'Quaoar', 'Weywot']\n\nconst res31 = await client.json.get(\"bikes:inventory\", {\n path: '$.inventory[\"mountain_bikes\"][*].model'\n});\nconsole.log(res31); // ['Phoebe', 'Quaoar', 'Weywot']\n\nconst res32 = await client.json.get(\"bikes:inventory\", {\n path: \"$..mountain_bikes[*].model\"\n});\nconsole.log(res32); // ['Phoebe', 'Quaoar', 'Weywot']\n\n\nconst res33 = await client.json.get(\"bikes:inventory\", {\n path: \"$..model\"\n});\nconsole.log(res33); // ['Phoebe', 'Quaoar', 'Weywot', 'Salacia', 'Mimas']\n\n\nconst res34 = await client.json.get(\"bikes:inventory\", {\n path: \"$..mountain_bikes[0:2].model\"\n});\nconsole.log(res34); // ['Phoebe', 'Quaoar']\n\n\nconst res35 = await client.json.get(\"bikes:inventory\", {\n path: \"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\"\n});\nconsole.log(res35);\n/*\n[\n {\n id: 'bike:2',\n model: 'Quaoar',\n description: \"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and teaawait client. All in all it's an impressive package for the price, making it very competitive.\",\n price: 2072,\n specs: { material: 'aluminium', weight: 7.9 },\n colors: [ 'black', 'white' ]\n }\n]\n*/\n\n// names of bikes made from an alloy\nconst res36 = await client.json.get(\"bikes:inventory\", {\n path: \"$..[?(@.specs.material == 'alloy')].model\"\n});\nconsole.log(res36); // ['Weywot', 'Mimas']\n\nconst res37 = await client.json.get(\"bikes:inventory\", {\n path: \"$..[?(@.specs.material =~ '(?i)al')].model\"\n});\nconsole.log(res37); // ['Quaoar', 'Weywot', 'Salacia', 'Mimas']\n\n\nconst res37a = await client.json.set(\n 'bikes:inventory', \n '$.inventory.mountain_bikes[0].regex_pat', \n '(?i)al'\n);\n\nconst res37b = await client.json.set(\n 'bikes:inventory', \n '$.inventory.mountain_bikes[1].regex_pat', \n '(?i)al'\n);\n\nconst res37c = await client.json.set(\n 'bikes:inventory', \n '$.inventory.mountain_bikes[2].regex_pat', \n '(?i)al'\n);\n\nconst res37d = await client.json.get(\n 'bikes:inventory',\n { path: '$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model' }\n);\nconsole.log(res37d); // ['Quaoar', 'Weywot']\n\nconst res38 = await client.json.get(\"bikes:inventory\", {\n path: \"$..price\"\n});\nconsole.log(res38); // [1920, 2072, 3264, 1475, 3941]\n\nconst res39 = await client.json.numIncrBy(\"bikes:inventory\", \"$..price\", -100);\nconsole.log(res39); // [1820, 1972, 3164, 1375, 3841]\n\nconst res40 = await client.json.numIncrBy(\"bikes:inventory\", \"$..price\", 100);\nconsole.log(res40); // [1920, 2072, 3264, 1475, 3941]\n\n\nconst res40a = await client.json.set(\n 'bikes:inventory', \n '$.inventory.*[?(@.price<2000)].price', \n 1500\n);\n\n// Get all prices from the inventory\nconst res40b = await client.json.get(\n 'bikes:inventory',\n { path: \"$..price\" }\n);\nconsole.log(res40b); // [1500, 2072, 3264, 1500, 3941]\n\nconst res41 = await client.json.arrAppend(\n \"bikes:inventory\", \"$.inventory.*[?(@.price<2000)].colors\", \"pink\"\n);\nconsole.log(res41); // [3, 3]\n\nconst res42 = await client.json.get(\"bikes:inventory\", {\n path: \"$..[*].colors\"\n});\nconsole.log(res42); // [['black', 'silver', 'pink'], ['black', 'white'], ['black', 'silver', 'pink']]\n```\n\nExample:\n```java\nString res1 = jedis.jsonSet(\"bike\", new Path2(\"$\"), \"\\\"Hyperion\\\"\");\n System.out.println(res1); // >>> OK\n\n Object res2 = jedis.jsonGet(\"bike\", new Path2(\"$\"));\n System.out.println(res2); // >>> [\"Hyperion\"]\n\n List<Class<?>> res3 = jedis.jsonType(\"bike\", new Path2(\"$\"));\n System.out.println(res3); // >>> [class java.lang.String]\n```\n\nExample:\n```java\nimport redis.clients.jedis.UnifiedJedis;\nimport redis.clients.jedis.json.Path2;\n\nimport org.json.JSONArray;\nimport org.json.JSONObject;\n\nimport static org.junit.jupiter.api.Assertions.assertEquals;\n\npublic class JsonExample {\n public void run() {\n UnifiedJedis jedis = new UnifiedJedis(\"redis://localhost:6379\");\n\n\n String res1 = jedis.jsonSet(\"bike\", new Path2(\"$\"), \"\\\"Hyperion\\\"\");\n System.out.println(res1); // >>> OK\n\n Object res2 = jedis.jsonGet(\"bike\", new Path2(\"$\"));\n System.out.println(res2); // >>> [\"Hyperion\"]\n\n List<Class<?>> res3 = jedis.jsonType(\"bike\", new Path2(\"$\"));\n System.out.println(res3); // >>> [class java.lang.String]\n\n // Tests for 'set_get' step.\n\n\n List<Long> res4 = jedis.jsonStrLen(\"bike\", new Path2(\"$\"));\n System.out.println(res4); // >>> [8]\n\n List<Long> res5 = jedis.jsonStrAppend(\"bike\", new Path2(\"$\"), \" (Enduro bikes)\");\n System.out.println(res5); // >>> [23]\n\n Object res6 = jedis.jsonGet(\"bike\", new Path2(\"$\"));\n System.out.println(res6); // >>> [\"Hyperion (Enduro bikes)\"]\n\n // Tests for 'str' step.\n\n\n String res7 = jedis.jsonSet(\"crashes\", new Path2(\"$\"), 0);\n System.out.println(res7); // >>> OK\n\n Object res8 = jedis.jsonNumIncrBy(\"crashes\", new Path2(\"$\"), 1);\n System.out.println(res8); // >>> [1]\n\n Object res9 = jedis.jsonNumIncrBy(\"crashes\", new Path2(\"$\"), 1.5);\n System.out.println(res9); // >>> [2.5]\n\n Object res10 = jedis.jsonNumIncrBy(\"crashes\", new Path2(\"$\"), -0.75);\n System.out.println(res10); // >>> [1.75]\n\n // Tests for 'num' step.\n\n\n String res11 = jedis.jsonSet(\"newbike\", new Path2(\"$\"),\n new JSONArray()\n .put(\"Deimos\")\n .put(new JSONObject().put(\"crashes\", 0))\n .put((Object) null)\n );\n System.out.println(res11); // >>> OK\n \n Object res12 = jedis.jsonGet(\"newbike\", new Path2(\"$\"));\n System.out.println(res12); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n Object res13 = jedis.jsonGet(\"newbike\", new Path2(\"$[1].crashes\"));\n System.out.println(res13); // >>> [0]\n\n long res14 = jedis.jsonDel(\"newbike\", new Path2(\"$.[-1]\"));\n System.out.println(res14); // >>> 1\n\n Object res15 = jedis.jsonGet(\"newbike\", new Path2(\"$\"));\n System.out.println(res15); // >>> [[\"Deimos\",{\"crashes\":0}]]\n\n // Tests for 'arr' step.\n\n\n String res16 = jedis.jsonSet(\"riders\", new Path2(\"$\"), new JSONArray());\n System.out.println(res16); // >>> OK\n\n List<Long> res17 = jedis.jsonArrAppendWithEscape(\"riders\", new Path2(\"$\"), \"Norem\");\n System.out.println(res17); // >>> [1]\n\n Object res18 = jedis.jsonGet(\"riders\", new Path2(\"$\"));\n System.out.println(res18); // >>> [[\"Norem\"]]\n\n List<Long> res19 = jedis.jsonArrInsertWithEscape(\n \"riders\", new Path2(\"$\"), 1, \"Prickett\", \"Royce\", \"Castilla\"\n );\n System.out.println(res19); // >>> [4]\n\n Object res20 = jedis.jsonGet(\"riders\", new Path2(\"$\"));\n System.out.println(res20);\n // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n \n List<Long> res21 = jedis.jsonArrTrim(\"riders\", new Path2(\"$\"), 1, 1);\n System.out.println(res21); // >>> [1]\n\n Object res22 = jedis.jsonGet(\"riders\", new Path2(\"$\"));\n System.out.println(res22); // >>> [[\"Prickett\"]]\n\n Object res23 = jedis.jsonArrPop(\"riders\", new Path2(\"$\"));\n System.out.println(res23); // >>> [Prickett]\n\n Object res24 = jedis.jsonArrPop(\"riders\", new Path2(\"$\"));\n System.out.println(res24); // >>> [null]\n\n // Tests for 'arr2' step.\n\n\n String res25 = jedis.jsonSet(\"bike:1\", new Path2(\"$\"),\n new JSONObject()\n .put(\"model\", \"Deimos\")\n .put(\"brand\", \"Ergonom\")\n .put(\"price\", 4972)\n );\n System.out.println(res25); // >>> OK\n\n List<Long> res26 = jedis.jsonObjLen(\"bike:1\", new Path2(\"$\"));\n System.out.println(res26); // >>> [3]\n\n List<List<String>> res27 = jedis.jsonObjKeys(\"bike:1\", new Path2(\"$\"));\n System.out.println(res27); // >>> [[price, model, brand]]\n\n // Tests for 'obj' step.\n\n String inventory_json = \"{\"\n + \" \\\"inventory\\\": {\"\n + \" \\\"mountain_bikes\\\": [\"\n + \" {\"\n + \" \\\"id\\\": \\\"bike:1\\\",\"\n + \" \\\"model\\\": \\\"Phoebe\\\",\"\n + \" \\\"description\\\": \\\"This is a mid-travel trail slayer that is a \"\n + \"fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset \"\n + \"gives plenty of gear range to tackle hills and there\\u2019s room for mudguards \"\n + \"and a rack too. This is the bike for the rider who wants trail manners with \"\n + \"low fuss ownership.\\\",\"\n + \" \\\"price\\\": 1920,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"carbon\\\", \\\"weight\\\": 13.1},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"silver\\\"]\"\n + \" },\"\n + \" {\"\n + \" \\\"id\\\": \\\"bike:2\\\",\"\n + \" \\\"model\\\": \\\"Quaoar\\\",\"\n + \" \\\"description\\\": \\\"Redesigned for the 2020 model year, this \"\n + \"bike impressed our testers and is the best all-around trail bike we've ever \"\n + \"tested. The Shimano gear system effectively does away with an external cassette, \"\n + \"so is super low maintenance in terms of wear and tear. All in all it's an \"\n + \"impressive package for the price, making it very competitive.\\\",\"\n + \" \\\"price\\\": 2072,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"aluminium\\\", \\\"weight\\\": 7.9},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"white\\\"]\"\n + \" },\"\n + \" {\"\n + \" \\\"id\\\": \\\"bike:3\\\",\"\n + \" \\\"model\\\": \\\"Weywot\\\",\"\n + \" \\\"description\\\": \\\"This bike gives kids aged six years and older \"\n + \"a durable and uberlight mountain bike for their first experience on tracks and easy \"\n + \"cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes \"\n + \"provide ample stopping ability. If you're after a budget option, this is one of the \"\n + \"best bikes you could get.\\\",\"\n + \" \\\"price\\\": 3264,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"alloy\\\", \\\"weight\\\": 13.8}\"\n + \" }\"\n + \" ],\"\n + \" \\\"commuter_bikes\\\": [\"\n + \" {\"\n + \" \\\"id\\\": \\\"bike:4\\\",\"\n + \" \\\"model\\\": \\\"Salacia\\\",\"\n + \" \\\"description\\\": \\\"This bike is a great option for anyone who just \"\n + \"wants a bike to get about on With a slick-shifting Claris gears from Shimano\\u2019s, \"\n + \"this is a bike which doesn\\u2019t break the bank and delivers craved performance. \"\n + \"It\\u2019s for the rider who wants both efficiency and capability.\\\",\"\n + \" \\\"price\\\": 1475,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"aluminium\\\", \\\"weight\\\": 16.6},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"silver\\\"]\"\n + \" },\"\n + \" {\"\n + \" \\\"id\\\": \\\"bike:5\\\",\"\n + \" \\\"model\\\": \\\"Mimas\\\",\"\n + \" \\\"description\\\": \\\"A real joy to ride, this bike got very high scores \"\n + \"in last years Bike of the year report. The carefully crafted 50-34 tooth chainset \"\n + \"and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the \"\n + \"high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step \"\n + \"frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb \"\n + \"throttle. Put it all together and you get a bike that helps redefine what can be \"\n + \"done for this price.\\\",\"\n + \" \\\"price\\\": 3941,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"alloy\\\", \\\"weight\\\": 11.6}\"\n + \" }\"\n + \" ]\"\n + \" }\"\n + \"}\";\n\n String res28 = jedis.jsonSet(\"bikes:inventory\", new Path2(\"$\"), inventory_json);\n System.out.println(res28); // >>> OK\n\n // Tests for 'set_bikes' step.\n\n\n Object res29 = jedis.jsonGet(\"bikes:inventory\", new Path2(\"$.inventory.*\"));\n System.out.println(res29);\n // >>> [[{\"specs\":{\"material\":\"carbon\",\"weight\":13.1},\"price\":1920, ...\n\n // Tests for 'get_bikes' step.\n\n\n Object res30 = jedis.jsonGet(\n \"bikes:inventory\", new Path2(\"$.inventory.mountain_bikes[*].model\")\n );\n System.out.println(res30); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n Object res31 = jedis.jsonGet(\n \"bikes:inventory\", new Path2(\"$.inventory[\\\"mountain_bikes\\\"][*].model\")\n );\n System.out.println(res31); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n Object res32 = jedis.jsonGet(\n \"bikes:inventory\", new Path2(\"$..mountain_bikes[*].model\")\n );\n System.out.println(res32); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n // Tests for 'get_mtnbikes' step.\n\n\n Object res33 = jedis.jsonGet(\"bikes:inventory\", new Path2(\"$..model\"));\n System.out.println(res33);\n // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]\n\n // Tests for 'get_models' step.\n\n\n Object res34 = jedis.jsonGet(\n \"bikes:inventory\", new Path2(\"$..mountain_bikes[0:2].model\")\n );\n System.out.println(res34); // >>> [\"Phoebe\",\"Quaoar\"]\n\n // Tests for 'get2mtnbikes' step.\n\n\n Object res35 = jedis.jsonGet(\n \"bikes:inventory\",\n new Path2(\"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\")\n );\n System.out.println(res35);\n // >>> [{\"specs\":{\"material\":\"aluminium\",\"weight\":7.9},\"price\":2072,...\n\n // Tests for 'filter1' step.\n\n\n Object res36 = jedis.jsonGet(\n \"bikes:inventory\", new Path2(\"$..[?(@.specs.material == 'alloy')].model\")\n );\n System.out.println(res36); // >>> [\"Weywot\",\"Mimas\"]\n\n // Tests for 'filter2' step.\n\n\n Object res37 = jedis.jsonGet(\n \"bikes:inventory\", new Path2(\"$..[?(@.specs.material =~ '(?i)al')].model\")\n );\n System.out.println(res37);\n // >>> [\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]\n\n // Tests for 'filter3' step.\n\n\n jedis.jsonSet(\n \"bikes:inventory\", new Path2(\"$.inventory.mountain_bikes[0].regex_pat\"),\n \"\\\"(?i)al\\\"\"\n );\n jedis.jsonSet(\n \"bikes:inventory\", new Path2(\"$.inventory.mountain_bikes[1].regex_pat\"),\n \"\\\"(?i)al\\\"\"\n );\n jedis.jsonSet(\n \"bikes:inventory\", new Path2(\"$.inventory.mountain_bikes[2].regex_pat\"),\n \"\\\"(?i)al\\\"\"\n );\n \n Object res38 = jedis.jsonGet(\n \"bikes:inventory\",\n new Path2(\"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\")\n );\n System.out.println(res38); // >>> [\"Quaoar\",\"Weywot\"]\n\n // Tests for 'filter4' step.\n\n\n Object res39 = jedis.jsonGet(\"bikes:inventory\", new Path2(\"$..price\"));\n System.out.println(res39);\n // >>> [1920,2072,3264,1475,3941]\n\n Object res40 = jedis.jsonNumIncrBy(\"bikes:inventory\", new Path2(\"$..price\"), -100);\n System.out.println(res40); // >>> [1820,1972,3164,1375,3841]\n\n Object res41 = jedis.jsonNumIncrBy(\"bikes:inventory\", new Path2(\"$..price\"), 100);\n System.out.println(res41); // >>> [1920,2072,3264,1475,3941]\n\n // Tests for 'update_bikes' step.\n\n\n jedis.jsonSet(\"bikes:inventory\", new Path2(\"$.inventory.*[?(@.price<2000)].price\"), 1500);\n Object res42 = jedis.jsonGet(\"bikes:inventory\", new Path2(\"$..price\"));\n System.out.println(res42); // >>> [1500,2072,3264,1500,3941]\n\n // Tests for 'update_filters1' step.\n\n\n List<Long> res43 = jedis.jsonArrAppendWithEscape(\n \"bikes:inventory\", new Path2(\"$.inventory.*[?(@.price<2000)].colors\"),\n \"\\\"pink\\\"\"\n );\n System.out.println(res43); // >>> [3, 3]\n\n Object res44 = jedis.jsonGet(\"bikes:inventory\", new Path2(\"$..[*].colors\"));\n System.out.println(res44);\n // >>> [[\"black\",\"silver\",\"\\\"pink\\\"\"],[\"black\",\"white\"],[\"black\",\"silver\",\"\\\"pink\\\"\"]]\n\n // Tests for 'update_filters2' step.\n\n jedis.close();\n }\n}\n```\n\nExample:\n```java\nCompletableFuture<Void> setget = asyncCommands\n .jsonSet(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\"Hyperion\\\"\")).thenCompose(res1 -> {\n System.out.println(res1); // OK\n\n return asyncCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH);\n }).thenCompose(res2 -> {\n System.out.println(res2); // >>> [[\"Hyperion\"]]\n\n return asyncCommands.jsonType(\"bike\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [STRING]\n .toCompletableFuture();\n```\n\nExample:\n```java\nimport io.lettuce.core.*;\nimport io.lettuce.core.api.async.RedisAsyncCommands;\nimport io.lettuce.core.json.JsonPath;\nimport io.lettuce.core.json.JsonParser;\nimport io.lettuce.core.json.JsonArray;\nimport io.lettuce.core.json.JsonObject;\nimport io.lettuce.core.api.StatefulRedisConnection;\nimport io.lettuce.core.json.arguments.JsonRangeArgs;\n\nimport java.util.concurrent.CompletableFuture;\nimport java.nio.ByteBuffer;\nimport java.nio.charset.Charset;\n\npublic class JsonExample {\n\n public void run() {\n RedisClient redisClient = RedisClient.create(\"redis://localhost:6379\");\n\n try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {\n RedisAsyncCommands<String, String> asyncCommands = connection.async();\n\n JsonParser parser = asyncCommands.getJsonParser();\n\n\n CompletableFuture<Void> setget = asyncCommands\n .jsonSet(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\"Hyperion\\\"\")).thenCompose(res1 -> {\n System.out.println(res1); // OK\n\n return asyncCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH);\n }).thenCompose(res2 -> {\n System.out.println(res2); // >>> [[\"Hyperion\"]]\n\n return asyncCommands.jsonType(\"bike\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [STRING]\n .toCompletableFuture();\n setget.join();\n\n CompletableFuture<Void> str = asyncCommands.jsonStrlen(\"bike\", JsonPath.ROOT_PATH).thenCompose(res3 -> {\n System.out.println(res3); // >>> [8]\n\n return asyncCommands.jsonStrappend(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\" (Enduro bikes)\\\"\"));\n }).thenCompose(res4 -> {\n System.out.println(res4); // >>> [23]\n\n return asyncCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [[\"Hyperion (Enduro bikes)\"]]\n .toCompletableFuture();\n str.join();\n\n CompletableFuture<Void> num = asyncCommands.jsonSet(\"crashes\", JsonPath.ROOT_PATH, parser.createJsonValue(\"0\"))\n .thenCompose(res5 -> {\n System.out.println(res5); // >>> OK\n\n return asyncCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1);\n }).thenCompose(res6 -> {\n System.out.println(res6); // >>> [1]\n\n return asyncCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1.5);\n }).thenCompose(res7 -> {\n System.out.println(res7); // >>> [2.5]\n\n return asyncCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, -0.75);\n })\n .thenAccept(System.out::println) // >>> [1.75]\n .toCompletableFuture();\n num.join();\n\n JsonObject crashDetails = parser.createJsonObject();\n crashDetails.put(\"crashes\", parser.createJsonValue(\"0\"));\n\n JsonArray bikeDetails = parser.createJsonArray();\n bikeDetails.add(parser.createJsonValue(\"\\\"Deimos\\\"\"));\n bikeDetails.add(crashDetails);\n bikeDetails.add(null);\n\n CompletableFuture<Void> arr = asyncCommands.jsonSet(\"newbike\", JsonPath.ROOT_PATH, bikeDetails).thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH);\n }).thenCompose(res8 -> {\n System.out.println(res8);\n // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n return asyncCommands.jsonGet(\"newbike\", JsonPath.of(\"$[1].crashes\"));\n }).thenCompose(res9 -> {\n System.out.println(res9); // >>> [[0]]\n\n return asyncCommands.jsonDel(\"newbike\", JsonPath.of(\"$.[-1]\"));\n }).thenCompose(res10 -> {\n System.out.println(res10); // >>> 1\n\n return asyncCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [[[\\\"Deimos\\\",{\\\"crashes\\\":0}]]]\n .toCompletableFuture();\n arr.join();\n\n CompletableFuture<Void> arr2 = asyncCommands.jsonSet(\"riders\", JsonPath.ROOT_PATH, parser.createJsonArray())\n .thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 0,\n parser.createJsonValue(\"\\\"Norem\\\"\"));\n }).thenCompose(res11 -> {\n System.out.println(res11); // >>> [1]\n\n return asyncCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH);\n })\n\n .thenCompose(res12 -> {\n System.out.println(res12); // >>> [\"Norem\"]\n\n return asyncCommands.jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 1,\n parser.createJsonValue(\"\\\"Prickett\\\"\"), parser.createJsonValue(\"\\\"Royce\\\"\"),\n parser.createJsonValue(\"\\\"Castilla\\\"\"));\n }).thenCompose(res13 -> {\n System.out.println(res13); // >>> [4]\n\n return asyncCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH);\n }).thenCompose(res14 -> {\n System.out.println(res14); // >>> [\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]\n //\n return asyncCommands.jsonArrtrim(\"riders\", JsonPath.ROOT_PATH, new JsonRangeArgs().start(1).stop(1));\n }).thenCompose(res15 -> {\n System.out.println(res15); // >>> [1]\n\n return asyncCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH);\n }).thenCompose(res16 -> {\n System.out.println(res16); // >>> [[[\"Prickett\"]]]\n return asyncCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH, 0);\n }).thenCompose(res17 -> {\n System.out.println(res17); // >>> [\"Prickett\"]\n return asyncCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> null\n .toCompletableFuture();\n arr2.join();\n\n JsonObject bikeObj = parser.createJsonObject().put(\"model\", parser.createJsonValue(\"\\\"Deimos\\\"\"))\n .put(\"brand\", parser.createJsonValue(\"\\\"Ergonom\\\"\")).put(\"price\", parser.createJsonValue(\"\\\"4972\\\"\"));\n\n CompletableFuture<Void> obj = asyncCommands.jsonSet(\"bike:1\", JsonPath.ROOT_PATH, bikeObj).thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonObjlen(\"bike:1\", JsonPath.ROOT_PATH);\n }).thenCompose(res18 -> {\n System.out.println(res18); // >>> [3]\n\n return asyncCommands.jsonObjkeys(\"bike:1\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [model, brand, price]\n .toCompletableFuture();\n obj.join();\n\n String inventory_json_str = \"{\" + \" \\\"inventory\\\": {\" + \" \\\"mountain_bikes\\\": [\" + \" {\"\n + \" \\\"id\\\": \\\"bike:1\\\",\" + \" \\\"model\\\": \\\"Phoebe\\\",\"\n + \" \\\"description\\\": \\\"This is a mid-travel trail slayer that is a \"\n + \"fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset \"\n + \"gives plenty of gear range to tackle hills and there\\u2019s room for mudguards \"\n + \"and a rack too. This is the bike for the rider who wants trail manners with \" + \"low fuss ownership.\\\",\"\n + \" \\\"price\\\": 1920,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"carbon\\\", \\\"weight\\\": 13.1},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"silver\\\"]\" + \" },\" + \" {\"\n + \" \\\"id\\\": \\\"bike:2\\\",\" + \" \\\"model\\\": \\\"Quaoar\\\",\"\n + \" \\\"description\\\": \\\"Redesigned for the 2020 model year, this \"\n + \"bike impressed our testers and is the best all-around trail bike we've ever \"\n + \"tested. The Shimano gear system effectively does away with an external cassette, \"\n + \"so is super low maintenance in terms of wear and tear. All in all it's an \"\n + \"impressive package for the price, making it very competitive.\\\",\" + \" \\\"price\\\": 2072,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"aluminium\\\", \\\"weight\\\": 7.9},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"white\\\"]\" + \" },\" + \" {\"\n + \" \\\"id\\\": \\\"bike:3\\\",\" + \" \\\"model\\\": \\\"Weywot\\\",\"\n + \" \\\"description\\\": \\\"This bike gives kids aged six years and older \"\n + \"a durable and uberlight mountain bike for their first experience on tracks and easy \"\n + \"cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes \"\n + \"provide ample stopping ability. If you're after a budget option, this is one of the \"\n + \"best bikes you could get.\\\",\" + \" \\\"price\\\": 3264,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"alloy\\\", \\\"weight\\\": 13.8}\" + \" }\" + \" ],\"\n + \" \\\"commuter_bikes\\\": [\" + \" {\" + \" \\\"id\\\": \\\"bike:4\\\",\"\n + \" \\\"model\\\": \\\"Salacia\\\",\"\n + \" \\\"description\\\": \\\"This bike is a great option for anyone who just \"\n + \"wants a bike to get about on With a slick-shifting Claris gears from Shimano\\u2019s, \"\n + \"this is a bike which doesn\\u2019t break the bank and delivers craved performance. \"\n + \"It\\u2019s for the rider who wants both efficiency and capability.\\\",\"\n + \" \\\"price\\\": 1475,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"aluminium\\\", \\\"weight\\\": 16.6},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"silver\\\"]\" + \" },\" + \" {\"\n + \" \\\"id\\\": \\\"bike:5\\\",\" + \" \\\"model\\\": \\\"Mimas\\\",\"\n + \" \\\"description\\\": \\\"A real joy to ride, this bike got very high scores \"\n + \"in last years Bike of the year report. The carefully crafted 50-34 tooth chainset \"\n + \"and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the \"\n + \"high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step \"\n + \"frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb \"\n + \"throttle. Put it all together and you get a bike that helps redefine what can be \"\n + \"done for this price.\\\",\" + \" \\\"price\\\": 3941,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"alloy\\\", \\\"weight\\\": 11.6}\" + \" }\" + \" ]\"\n + \" }\" + \"}\";\n\n Charset charset = Charset.forName(\"UTF-8\");\n ByteBuffer inventory_json = charset.encode(inventory_json_str);\n\n CompletableFuture<Void> setBikes = asyncCommands\n .jsonSet(\"bikes:inventory\", JsonPath.ROOT_PATH, parser.loadJsonValue(inventory_json))\n .thenAccept(System.out::println) // >>> OK\n .toCompletableFuture();\n setBikes.join();\n\n CompletableFuture<Void> getBikes = asyncCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$.inventory.*\"))\n .thenAccept(System.out::println)\n // >>> [[[{\"id\":\"bike:1\",\"model\":\"Phoebe\",...\n .toCompletableFuture();\n getBikes.join();\n\n CompletableFuture<Void> getMtnBikes = asyncCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$.inventory.mountain_bikes[*].model\")).thenCompose(res19 -> {\n System.out.println(res19); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n return asyncCommands.jsonGet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory[\\\"mountain_bikes\\\"][*].model\"));\n }).thenCompose(res20 -> {\n System.out.println(res20); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n return asyncCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..mountain_bikes[*].model\"));\n })\n .thenAccept(System.out::println)\n // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n .toCompletableFuture();\n getMtnBikes.join();\n\n CompletableFuture<Void> getModels = asyncCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..model\"))\n .thenAccept(System.out::println)\n // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n .toCompletableFuture();\n getModels.join();\n\n CompletableFuture<Void> get2MtnBikes = asyncCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..mountain_bikes[0:2].model\"))\n .thenAccept(System.out::println)\n // >>> [[\"Phoebe\",\"Quaoar\"]]\n .toCompletableFuture();\n get2MtnBikes.join();\n\n CompletableFuture<Void> filter1 = asyncCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\"))\n .thenAccept(System.out::println)\n // >>> [[{\"id\":\"bike:2\",\"model\":\"Quaoar\",\"description\":...\n .toCompletableFuture();\n filter1.join();\n\n CompletableFuture<Void> filter2 = asyncCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..[?(@.specs.material == 'alloy')].model\"))\n .thenAccept(System.out::println)\n // >>> [[\"Weywot\",\"Mimas\"]]\n .toCompletableFuture();\n filter2.join();\n\n CompletableFuture<Void> filter3 = asyncCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..[?(@.specs.material =~ '(?i)al')].model\"))\n .thenAccept(System.out::println)\n // >>> [[\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n .toCompletableFuture();\n filter3.join();\n\n CompletableFuture<Void> filter4 = asyncCommands.jsonSet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.mountain_bikes[0].regex_pat\"), parser.createJsonValue(\"\\\"(?i)al\\\"\"))\n .thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonSet(\"bikes:inventory\", JsonPath.of(\"$.inventory.mountain_bikes[1].regex_pat\"),\n parser.createJsonValue(\"\\\"(?i)al\\\"\"));\n }).thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonSet(\"bikes:inventory\", JsonPath.of(\"$.inventory.mountain_bikes[2].regex_pat\"),\n parser.createJsonValue(\"\\\"(?i)al\\\"\"));\n }).thenCompose(res22 -> {\n System.out.println(res22); // >>> OK\n\n return asyncCommands.jsonGet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\"));\n })\n .thenAccept(System.out::println)\n // >>> [[\"Quaoar\",\"Weywot\"]]\n .toCompletableFuture();\n filter4.join();\n\n CompletableFuture<Void> updateBikes = asyncCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..price\"))\n .thenCompose(r -> {\n System.out.println(r); // >>> [[1920,2072,3264,1475,3941]]\n\n return asyncCommands.jsonNumincrby(\"bikes:inventory\", JsonPath.of(\"$..price\"), -100);\n }).thenCompose(res23 -> {\n System.out.println(res23); // >>> [1820, 1972, 3164, 1375, 3841]\n\n return asyncCommands.jsonNumincrby(\"bikes:inventory\", JsonPath.of(\"$..price\"), 100);\n })\n .thenAccept(System.out::println)\n // >>> [1920, 2072, 3264, 1475, 3941]\n .toCompletableFuture();\n updateBikes.join();\n\n CompletableFuture<Void> updateFilters1 = asyncCommands.jsonSet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.*[?(@.price<2000)].price\"), parser.createJsonValue(\"1500\")).thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..price\"));\n })\n .thenAccept(System.out::println)\n // >>> [[1500,2072,3264,1500,3941]]\n .toCompletableFuture();\n updateFilters1.join();\n\n CompletableFuture<Void> updateFilters2 = asyncCommands.jsonArrappend(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.*[?(@.price<2000)].colors\"), parser.createJsonValue(\"\\\"pink\\\"\")).thenCompose(r -> {\n System.out.println(r); // >>> [3, 3]\n\n return asyncCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..[*].colors\"));\n })\n .thenAccept(System.out::println)\n // >>> [[[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"],[\"black\",\"silver\",\"pink\"]]]\n .toCompletableFuture();\n updateFilters2.join();\n\n } finally {\n redisClient.shutdown();\n }\n }\n\n}\n```\n\nExample:\n```java\nMono<Void> setget = reactiveCommands.jsonSet(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\"Hyperion\\\"\"))\n .doOnNext(res1 -> {\n System.out.println(res1); // OK\n }).flatMap(res1 -> reactiveCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH).collectList()).doOnNext(res2 -> {\n System.out.println(res2); // >>> [[\"Hyperion\"]]\n }).flatMap(res2 -> reactiveCommands.jsonType(\"bike\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [STRING]\n .then();\n```\n\nExample:\n```java\nimport io.lettuce.core.*;\nimport io.lettuce.core.api.reactive.RedisReactiveCommands;\nimport io.lettuce.core.json.JsonPath;\nimport io.lettuce.core.json.JsonParser;\nimport io.lettuce.core.json.JsonArray;\nimport io.lettuce.core.json.JsonObject;\nimport io.lettuce.core.api.StatefulRedisConnection;\nimport io.lettuce.core.json.arguments.JsonRangeArgs;\n\nimport java.nio.ByteBuffer;\nimport java.nio.charset.Charset;\n\nimport reactor.core.publisher.Mono;\n\npublic class JsonExample {\n\n public void run() {\n RedisClient redisClient = RedisClient.create(\"redis://localhost:6379\");\n\n try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {\n RedisReactiveCommands<String, String> reactiveCommands = connection.reactive();\n\n JsonParser parser = reactiveCommands.getJsonParser();\n\n\n Mono<Void> setget = reactiveCommands.jsonSet(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\"Hyperion\\\"\"))\n .doOnNext(res1 -> {\n System.out.println(res1); // OK\n }).flatMap(res1 -> reactiveCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH).collectList()).doOnNext(res2 -> {\n System.out.println(res2); // >>> [[\"Hyperion\"]]\n }).flatMap(res2 -> reactiveCommands.jsonType(\"bike\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [STRING]\n .then();\n\n Mono<Void> str = reactiveCommands.jsonStrlen(\"bike\", JsonPath.ROOT_PATH).collectList().doOnNext(res3 -> {\n System.out.println(res3); // >>> [8]\n }).flatMap(res3 -> reactiveCommands\n .jsonStrappend(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\" (Enduro bikes)\\\"\")).collectList())\n .doOnNext(res4 -> {\n System.out.println(res4); // >>> [23]\n }).flatMap(res4 -> reactiveCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [[\"Hyperion (Enduro bikes)\"]]\n .then();\n\n Mono<Void> num = reactiveCommands.jsonSet(\"crashes\", JsonPath.ROOT_PATH, parser.createJsonValue(\"0\"))\n .doOnNext(res5 -> {\n System.out.println(res5); // >>> OK\n }).flatMap(res5 -> reactiveCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1).collectList())\n .doOnNext(res6 -> {\n System.out.println(res6); // >>> [1]\n }).flatMap(res6 -> reactiveCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1.5).collectList())\n .doOnNext(res7 -> {\n System.out.println(res7); // >>> [2.5]\n }).flatMap(res7 -> reactiveCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, -0.75).collectList())\n .doOnNext(System.out::println) // >>> [1.75]\n .then();\n\n JsonObject crashDetails = parser.createJsonObject();\n crashDetails.put(\"crashes\", parser.createJsonValue(\"0\"));\n\n JsonArray bikeDetails = parser.createJsonArray();\n bikeDetails.add(parser.createJsonValue(\"\\\"Deimos\\\"\"));\n bikeDetails.add(crashDetails);\n bikeDetails.add(null);\n\n Mono<Void> arr = reactiveCommands.jsonSet(\"newbike\", JsonPath.ROOT_PATH, bikeDetails).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH).collectList()).doOnNext(res8 -> {\n System.out.println(res8);\n // >>> [[\"Deimos\",{\"crashes\":0},null]]\n }).flatMap(res8 -> reactiveCommands.jsonGet(\"newbike\", JsonPath.of(\"$[1].crashes\")).collectList())\n .doOnNext(res9 -> {\n System.out.println(res9); // >>> [[0]]\n }).flatMap(res9 -> reactiveCommands.jsonDel(\"newbike\", JsonPath.of(\"$.[-1]\"))).doOnNext(res10 -> {\n System.out.println(res10); // >>> 1\n }).flatMap(res10 -> reactiveCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [[[\\\"Deimos\\\",{\\\"crashes\\\":0}]]]\n .then();\n\n Mono<Void> arr2 = reactiveCommands.jsonSet(\"riders\", JsonPath.ROOT_PATH, parser.createJsonArray()).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 0, parser.createJsonValue(\"\\\"Norem\\\"\"))\n .collectList()).doOnNext(res11 -> {\n System.out.println(res11); // >>> [1]\n }).flatMap(res11 -> reactiveCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(res12 -> {\n System.out.println(res12); // >>> [\"Norem\"]\n })\n .flatMap(\n res12 -> reactiveCommands\n .jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 1, parser.createJsonValue(\"\\\"Prickett\\\"\"),\n parser.createJsonValue(\"\\\"Royce\\\"\"), parser.createJsonValue(\"\\\"Castilla\\\"\"))\n .collectList())\n .doOnNext(res13 -> {\n System.out.println(res13); // >>> [4]\n }).flatMap(res13 -> reactiveCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n .flatMap(res14 -> reactiveCommands\n .jsonArrtrim(\"riders\", JsonPath.ROOT_PATH, new JsonRangeArgs().start(1).stop(1)).collectList())\n .doOnNext(res15 -> {\n System.out.println(res15); // >>> [1]\n }).flatMap(res15 -> reactiveCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(res16 -> {\n System.out.println(res16); // >>> [[[\"Prickett\"]]]\n }).flatMap(res16 -> reactiveCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH, 0).collectList())\n .doOnNext(res17 -> {\n System.out.println(res17); // >>> [\"Prickett\"]\n }).flatMap(res17 -> reactiveCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> null\n .then();\n\n JsonObject bikeObj = parser.createJsonObject().put(\"model\", parser.createJsonValue(\"\\\"Deimos\\\"\"))\n .put(\"brand\", parser.createJsonValue(\"\\\"Ergonom\\\"\")).put(\"price\", parser.createJsonValue(\"\\\"4972\\\"\"));\n\n Mono<Void> obj = reactiveCommands.jsonSet(\"bike:1\", JsonPath.ROOT_PATH, bikeObj).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonObjlen(\"bike:1\", JsonPath.ROOT_PATH).collectList()).doOnNext(res18 -> {\n System.out.println(res18); // >>> [3]\n }).flatMap(res18 -> reactiveCommands.jsonObjkeys(\"bike:1\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [model, brand, price]\n .then();\n\n String inventory_json_str = \"{\" + \" \\\"inventory\\\": {\" + \" \\\"mountain_bikes\\\": [\" + \" {\"\n + \" \\\"id\\\": \\\"bike:1\\\",\" + \" \\\"model\\\": \\\"Phoebe\\\",\"\n + \" \\\"description\\\": \\\"This is a mid-travel trail slayer that is a \"\n + \"fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset \"\n + \"gives plenty of gear range to tackle hills and there\\u2019s room for mudguards \"\n + \"and a rack too. This is the bike for the rider who wants trail manners with \" + \"low fuss ownership.\\\",\"\n + \" \\\"price\\\": 1920,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"carbon\\\", \\\"weight\\\": 13.1},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"silver\\\"]\" + \" },\" + \" {\"\n + \" \\\"id\\\": \\\"bike:2\\\",\" + \" \\\"model\\\": \\\"Quaoar\\\",\"\n + \" \\\"description\\\": \\\"Redesigned for the 2020 model year, this \"\n + \"bike impressed our testers and is the best all-around trail bike we've ever \"\n + \"tested. The Shimano gear system effectively does away with an external cassette, \"\n + \"so is super low maintenance in terms of wear and tear. All in all it's an \"\n + \"impressive package for the price, making it very competitive.\\\",\" + \" \\\"price\\\": 2072,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"aluminium\\\", \\\"weight\\\": 7.9},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"white\\\"]\" + \" },\" + \" {\"\n + \" \\\"id\\\": \\\"bike:3\\\",\" + \" \\\"model\\\": \\\"Weywot\\\",\"\n + \" \\\"description\\\": \\\"This bike gives kids aged six years and older \"\n + \"a durable and uberlight mountain bike for their first experience on tracks and easy \"\n + \"cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes \"\n + \"provide ample stopping ability. If you're after a budget option, this is one of the \"\n + \"best bikes you could get.\\\",\" + \" \\\"price\\\": 3264,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"alloy\\\", \\\"weight\\\": 13.8}\" + \" }\" + \" ],\"\n + \" \\\"commuter_bikes\\\": [\" + \" {\" + \" \\\"id\\\": \\\"bike:4\\\",\"\n + \" \\\"model\\\": \\\"Salacia\\\",\"\n + \" \\\"description\\\": \\\"This bike is a great option for anyone who just \"\n + \"wants a bike to get about on With a slick-shifting Claris gears from Shimano\\u2019s, \"\n + \"this is a bike which doesn\\u2019t break the bank and delivers craved performance. \"\n + \"It\\u2019s for the rider who wants both efficiency and capability.\\\",\"\n + \" \\\"price\\\": 1475,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"aluminium\\\", \\\"weight\\\": 16.6},\"\n + \" \\\"colors\\\": [\\\"black\\\", \\\"silver\\\"]\" + \" },\" + \" {\"\n + \" \\\"id\\\": \\\"bike:5\\\",\" + \" \\\"model\\\": \\\"Mimas\\\",\"\n + \" \\\"description\\\": \\\"A real joy to ride, this bike got very high scores \"\n + \"in last years Bike of the year report. The carefully crafted 50-34 tooth chainset \"\n + \"and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the \"\n + \"high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step \"\n + \"frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb \"\n + \"throttle. Put it all together and you get a bike that helps redefine what can be \"\n + \"done for this price.\\\",\" + \" \\\"price\\\": 3941,\"\n + \" \\\"specs\\\": {\\\"material\\\": \\\"alloy\\\", \\\"weight\\\": 11.6}\" + \" }\" + \" ]\"\n + \" }\" + \"}\";\n\n Charset charset = Charset.forName(\"UTF-8\");\n ByteBuffer inventory_json = charset.encode(inventory_json_str);\n\n Mono<Void> setBikes = reactiveCommands\n .jsonSet(\"bikes:inventory\", JsonPath.ROOT_PATH, parser.loadJsonValue(inventory_json))\n .doOnNext(System.out::println) // >>> OK\n .then();\n\n Mono<Void> getBikes = reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$.inventory.*\")).collectList()\n .doOnNext(System.out::println) // >>> [[[{\"id\":\"bike:1\",\"model\":\"Phoebe\",...\n .then();\n\n Mono<Void> getMtnBikes = reactiveCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$.inventory.mountain_bikes[*].model\")).collectList()\n .doOnNext(res19 -> {\n System.out.println(res19); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n })\n .flatMap(res19 -> reactiveCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$.inventory[\\\"mountain_bikes\\\"][*].model\")).collectList())\n .doOnNext(res20 -> {\n System.out.println(res20); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n })\n .flatMap(res20 -> reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..mountain_bikes[*].model\"))\n .collectList())\n .doOnNext(System.out::println) // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n .then();\n\n Mono<Void> getModels = reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..model\")).collectList()\n .doOnNext(System.out::println) // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n .then();\n\n Mono<Void> get2MtnBikes = reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..mountain_bikes[0:2].model\"))\n .collectList()\n .doOnNext(System.out::println) // >>> [[\"Phoebe\",\"Quaoar\"]]\n .then();\n\n Mono<Void> filter1 = reactiveCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\"))\n .collectList()\n .doOnNext(System.out::println) // >>> [[{\"id\":\"bike:2\",\"model\":\"Quaoar\",\"description\":...\n .then();\n\n Mono<Void> filter2 = reactiveCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..[?(@.specs.material == 'alloy')].model\")).collectList()\n .doOnNext(System.out::println) // >>> [[\"Weywot\",\"Mimas\"]]\n .then();\n\n Mono<Void> filter3 = reactiveCommands\n .jsonGet(\"bikes:inventory\", JsonPath.of(\"$..[?(@.specs.material =~ '(?i)al')].model\")).collectList()\n .doOnNext(System.out::println) // >>> [[\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n .then();\n\n Mono<Void> filter4 = reactiveCommands.jsonSet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.mountain_bikes[0].regex_pat\"), parser.createJsonValue(\"\\\"(?i)al\\\"\"))\n .doOnNext(r -> {\n System.out.println(r); // >>> OK\n })\n .flatMap(r -> reactiveCommands.jsonSet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.mountain_bikes[1].regex_pat\"), parser.createJsonValue(\"\\\"(?i)al\\\"\")))\n .doOnNext(r -> {\n System.out.println(r); // >>> OK\n })\n .flatMap(r -> reactiveCommands.jsonSet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.mountain_bikes[2].regex_pat\"), parser.createJsonValue(\"\\\"(?i)al\\\"\")))\n .doOnNext(res22 -> {\n System.out.println(res22); // >>> OK\n })\n .flatMap(res22 -> reactiveCommands\n .jsonGet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\"))\n .collectList())\n .doOnNext(System.out::println) // >>> [[\"Quaoar\",\"Weywot\"]]\n .then();\n\n Mono<Void> updateBikes = reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..price\")).collectList()\n .doOnNext(r -> {\n System.out.println(r); // >>> [[1920,2072,3264,1475,3941]]\n })\n .flatMap(\n r -> reactiveCommands.jsonNumincrby(\"bikes:inventory\", JsonPath.of(\"$..price\"), -100).collectList())\n .doOnNext(res23 -> {\n System.out.println(res23); // >>> [1820, 1972, 3164, 1375, 3841]\n })\n .flatMap(res23 -> reactiveCommands.jsonNumincrby(\"bikes:inventory\", JsonPath.of(\"$..price\"), 100)\n .collectList())\n .doOnNext(System.out::println) // >>> [1920, 2072, 3264, 1475, 3941]\n .then();\n\n Mono<Void> updateFilters1 = reactiveCommands.jsonSet(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.*[?(@.price<2000)].price\"), parser.createJsonValue(\"1500\")).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..price\")).collectList())\n .doOnNext(System.out::println) // >>> [[1500,2072,3264,1500,3941]]\n .then();\n\n Mono<Void> updateFilters2 = reactiveCommands.jsonArrappend(\"bikes:inventory\",\n JsonPath.of(\"$.inventory.*[?(@.price<2000)].colors\"), parser.createJsonValue(\"\\\"pink\\\"\")).collectList()\n .doOnNext(r -> {\n System.out.println(r); // >>> [3, 3]\n }).flatMap(r -> reactiveCommands.jsonGet(\"bikes:inventory\", JsonPath.of(\"$..[*].colors\")).collectList())\n .doOnNext(System.out::println) // >>>\n // [[[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"],[\"black\",\"silver\",\"pink\"]]]\n .then();\n\n // Wait for all reactive operations to complete\n Mono.when(setget, str, num, arr, arr2, obj, setBikes, getBikes, getMtnBikes, getModels, get2MtnBikes, filter1,\n filter2, filter3, filter4, updateBikes, updateFilters1, updateFilters2).block();\n\n } finally {\n redisClient.shutdown();\n }\n }\n\n}\n```\n\nExample:\n```go\nres1, err := rdb.JSONSet(ctx, \"bike\", \"$\",\n\t\t\"\\\"Hyperion\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res1) // >>> OK\n\n\tres2, err := rdb.JSONGet(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res2) // >>> [\"Hyperion\"]\n\n\tres3, err := rdb.JSONType(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res3) // >>> [[string]]\n```\n\nExample:\n```go\npackage example_commands_test\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/redis/go-redis/v9\"\n)\n\nfunc ExampleClient_setget() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tres1, err := rdb.JSONSet(ctx, \"bike\", \"$\",\n\t\t\"\\\"Hyperion\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res1) // >>> OK\n\n\tres2, err := rdb.JSONGet(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res2) // >>> [\"Hyperion\"]\n\n\tres3, err := rdb.JSONType(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res3) // >>> [[string]]\n\n}\n\nfunc ExampleClient_str() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bike\", \"$\",\n\t\t\"\\\"Hyperion\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres4, err := rdb.JSONStrLen(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(*res4[0]) // >>> 8\n\n\tres5, err := rdb.JSONStrAppend(ctx, \"bike\", \"$\", \"\\\" (Enduro bikes)\\\"\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(*res5[0]) // >>> 23\n\n\tres6, err := rdb.JSONGet(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res6) // >>> [\"Hyperion (Enduro bikes)\"]\n\n}\n\nfunc ExampleClient_num() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tres7, err := rdb.JSONSet(ctx, \"crashes\", \"$\", 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res7) // >>> OK\n\n\tres8, err := rdb.JSONNumIncrBy(ctx, \"crashes\", \"$\", 1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res8) // >>> [1]\n\n\tres9, err := rdb.JSONNumIncrBy(ctx, \"crashes\", \"$\", 1.5).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res9) // >>> [2.5]\n\n\tres10, err := rdb.JSONNumIncrBy(ctx, \"crashes\", \"$\", -0.75).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res10) // >>> [1.75]\n\n}\n\nfunc ExampleClient_arr() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tres11, err := rdb.JSONSet(ctx, \"newbike\", \"$\",\n\t\t[]interface{}{\n\t\t\t\"Deimos\",\n\t\t\tmap[string]interface{}{\"crashes\": 0},\n\t\t\tnil,\n\t\t},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res11) // >>> OK\n\n\tres12, err := rdb.JSONGet(ctx, \"newbike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res12) // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n\tres13, err := rdb.JSONGet(ctx, \"newbike\", \"$[1].crashes\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res13) // >>> [0]\n\n\tres14, err := rdb.JSONDel(ctx, \"newbike\", \"$.[-1]\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res14) // >>> 1\n\n\tres15, err := rdb.JSONGet(ctx, \"newbike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res15) // >>> [[\"Deimos\",{\"crashes\":0}]]\n\n}\n\nfunc ExampleClient_arr2() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tres16, err := rdb.JSONSet(ctx, \"riders\", \"$\", []interface{}{}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res16) // >>> OK\n\n\tres17, err := rdb.JSONArrAppend(ctx, \"riders\", \"$\", \"\\\"Norem\\\"\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res17) // >>> [1]\n\n\tres18, err := rdb.JSONGet(ctx, \"riders\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res18) // >>> [[\"Norem\"]]\n\n\tres19, err := rdb.JSONArrInsert(ctx, \"riders\", \"$\", 1,\n\t\t\"\\\"Prickett\\\"\", \"\\\"Royce\\\"\", \"\\\"Castilla\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res19) // [3]\n\n\tres20, err := rdb.JSONGet(ctx, \"riders\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res20) // >>> [[\"Norem\", \"Prickett\", \"Royce\", \"Castilla\"]]\n\n\trangeStop := 1\n\n\tres21, err := rdb.JSONArrTrimWithArgs(ctx, \"riders\", \"$\",\n\t\t&redis.JSONArrTrimArgs{Start: 1, Stop: &rangeStop},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res21) // >>> [1]\n\n\tres22, err := rdb.JSONGet(ctx, \"riders\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res22) // >>> [[\"Prickett\"]]\n\n\tres23, err := rdb.JSONArrPop(ctx, \"riders\", \"$\", -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res23) // >>> [[\"Prickett\"]]\n\n\tres24, err := rdb.JSONArrPop(ctx, \"riders\", \"$\", -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res24) // []\n\n}\n\nfunc ExampleClient_obj() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tres25, err := rdb.JSONSet(ctx, \"bike:1\", \"$\",\n\t\tmap[string]interface{}{\n\t\t\t\"model\": \"Deimos\",\n\t\t\t\"brand\": \"Ergonom\",\n\t\t\t\"price\": 4972,\n\t\t},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res25) // >>> OK\n\n\tres26, err := rdb.JSONObjLen(ctx, \"bike:1\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(*res26[0]) // >>> 3\n\n\tres27, err := rdb.JSONObjKeys(ctx, \"bike:1\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res27) // >>> [brand model price]\n\n}\n\nvar inventory_json = map[string]interface{}{\n\t\"inventory\": map[string]interface{}{\n\t\t\"mountain_bikes\": []interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\": \"bike:1\",\n\t\t\t\t\"model\": \"Phoebe\",\n\t\t\t\t\"description\": \"This is a mid-travel trail slayer that is a fantastic \" +\n\t\t\t\t\t\"daily driver or one bike quiver. The Shimano Claris 8-speed groupset \" +\n\t\t\t\t\t\"gives plenty of gear range to tackle hills and there\\u2019s room for \" +\n\t\t\t\t\t\"mudguards and a rack too. This is the bike for the rider who wants \" +\n\t\t\t\t\t\"trail manners with low fuss ownership.\",\n\t\t\t\t\"price\": 1920,\n\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"carbon\", \"weight\": 13.1},\n\t\t\t\t\"colors\": []interface{}{\"black\", \"silver\"},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\": \"bike:2\",\n\t\t\t\t\"model\": \"Quaoar\",\n\t\t\t\t\"description\": \"Redesigned for the 2020 model year, this bike \" +\n\t\t\t\t\t\"impressed our testers and is the best all-around trail bike we've \" +\n\t\t\t\t\t\"ever tested. The Shimano gear system effectively does away with an \" +\n\t\t\t\t\t\"external cassette, so is super low maintenance in terms of wear \" +\n\t\t\t\t\t\"and tear. All in all it's an impressive package for the price, \" +\n\t\t\t\t\t\"making it very competitive.\",\n\t\t\t\t\"price\": 2072,\n\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"aluminium\", \"weight\": 7.9},\n\t\t\t\t\"colors\": []interface{}{\"black\", \"white\"},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\": \"bike:3\",\n\t\t\t\t\"model\": \"Weywot\",\n\t\t\t\t\"description\": \"This bike gives kids aged six years and older \" +\n\t\t\t\t\t\"a durable and uberlight mountain bike for their first experience \" +\n\t\t\t\t\t\"on tracks and easy cruising through forests and fields. A set of \" +\n\t\t\t\t\t\"powerful Shimano hydraulic disc brakes provide ample stopping \" +\n\t\t\t\t\t\"ability. If you're after a budget option, this is one of the best \" +\n\t\t\t\t\t\"bikes you could get.\",\n\t\t\t\t\"price\": 3264,\n\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"alloy\", \"weight\": 13.8},\n\t\t\t},\n\t\t},\n\t\t\"commuter_bikes\": []interface{}{\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\": \"bike:4\",\n\t\t\t\t\"model\": \"Salacia\",\n\t\t\t\t\"description\": \"This bike is a great option for anyone who just \" +\n\t\t\t\t\t\"wants a bike to get about on With a slick-shifting Claris gears \" +\n\t\t\t\t\t\"from Shimano\\u2019s, this is a bike which doesn\\u2019t break the \" +\n\t\t\t\t\t\"bank and delivers craved performance. It\\u2019s for the rider \" +\n\t\t\t\t\t\"who wants both efficiency and capability.\",\n\t\t\t\t\"price\": 1475,\n\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"aluminium\", \"weight\": 16.6},\n\t\t\t\t\"colors\": []interface{}{\"black\", \"silver\"},\n\t\t\t},\n\t\t\tmap[string]interface{}{\n\t\t\t\t\"id\": \"bike:5\",\n\t\t\t\t\"model\": \"Mimas\",\n\t\t\t\t\"description\": \"A real joy to ride, this bike got very high \" +\n\t\t\t\t\t\"scores in last years Bike of the year report. The carefully \" +\n\t\t\t\t\t\"crafted 50-34 tooth chainset and 11-32 tooth cassette give an \" +\n\t\t\t\t\t\"easy-on-the-legs bottom gear for climbing, and the high-quality \" +\n\t\t\t\t\t\"Vittoria Zaffiro tires give balance and grip.It includes \" +\n\t\t\t\t\t\"a low-step frame , our memory foam seat, bump-resistant shocks and \" +\n\t\t\t\t\t\"conveniently placed thumb throttle. Put it all together and you \" +\n\t\t\t\t\t\"get a bike that helps redefine what can be done for this price.\",\n\t\t\t\t\"price\": 3941,\n\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"alloy\", \"weight\": 11.6},\n\t\t\t},\n\t\t},\n\t},\n}\n\nfunc ExampleClient_setbikes() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tvar inventory_json = map[string]interface{}{\n\t\t\"inventory\": map[string]interface{}{\n\t\t\t\"mountain_bikes\": []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"id\": \"bike:1\",\n\t\t\t\t\t\"model\": \"Phoebe\",\n\t\t\t\t\t\"description\": \"This is a mid-travel trail slayer that is a fantastic \" +\n\t\t\t\t\t\t\"daily driver or one bike quiver. The Shimano Claris 8-speed groupset \" +\n\t\t\t\t\t\t\"gives plenty of gear range to tackle hills and there\\u2019s room for \" +\n\t\t\t\t\t\t\"mudguards and a rack too. This is the bike for the rider who wants \" +\n\t\t\t\t\t\t\"trail manners with low fuss ownership.\",\n\t\t\t\t\t\"price\": 1920,\n\t\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"carbon\", \"weight\": 13.1},\n\t\t\t\t\t\"colors\": []interface{}{\"black\", \"silver\"},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"id\": \"bike:2\",\n\t\t\t\t\t\"model\": \"Quaoar\",\n\t\t\t\t\t\"description\": \"Redesigned for the 2020 model year, this bike \" +\n\t\t\t\t\t\t\"impressed our testers and is the best all-around trail bike we've \" +\n\t\t\t\t\t\t\"ever tested. The Shimano gear system effectively does away with an \" +\n\t\t\t\t\t\t\"external cassette, so is super low maintenance in terms of wear \" +\n\t\t\t\t\t\t\"and tear. All in all it's an impressive package for the price, \" +\n\t\t\t\t\t\t\"making it very competitive.\",\n\t\t\t\t\t\"price\": 2072,\n\t\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"aluminium\", \"weight\": 7.9},\n\t\t\t\t\t\"colors\": []interface{}{\"black\", \"white\"},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"id\": \"bike:3\",\n\t\t\t\t\t\"model\": \"Weywot\",\n\t\t\t\t\t\"description\": \"This bike gives kids aged six years and older \" +\n\t\t\t\t\t\t\"a durable and uberlight mountain bike for their first experience \" +\n\t\t\t\t\t\t\"on tracks and easy cruising through forests and fields. A set of \" +\n\t\t\t\t\t\t\"powerful Shimano hydraulic disc brakes provide ample stopping \" +\n\t\t\t\t\t\t\"ability. If you're after a budget option, this is one of the best \" +\n\t\t\t\t\t\t\"bikes you could get.\",\n\t\t\t\t\t\"price\": 3264,\n\t\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"alloy\", \"weight\": 13.8},\n\t\t\t\t},\n\t\t\t},\n\t\t\t\"commuter_bikes\": []interface{}{\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"id\": \"bike:4\",\n\t\t\t\t\t\"model\": \"Salacia\",\n\t\t\t\t\t\"description\": \"This bike is a great option for anyone who just \" +\n\t\t\t\t\t\t\"wants a bike to get about on With a slick-shifting Claris gears \" +\n\t\t\t\t\t\t\"from Shimano\\u2019s, this is a bike which doesn\\u2019t break the \" +\n\t\t\t\t\t\t\"bank and delivers craved performance. It\\u2019s for the rider \" +\n\t\t\t\t\t\t\"who wants both efficiency and capability.\",\n\t\t\t\t\t\"price\": 1475,\n\t\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"aluminium\", \"weight\": 16.6},\n\t\t\t\t\t\"colors\": []interface{}{\"black\", \"silver\"},\n\t\t\t\t},\n\t\t\t\tmap[string]interface{}{\n\t\t\t\t\t\"id\": \"bike:5\",\n\t\t\t\t\t\"model\": \"Mimas\",\n\t\t\t\t\t\"description\": \"A real joy to ride, this bike got very high \" +\n\t\t\t\t\t\t\"scores in last years Bike of the year report. The carefully \" +\n\t\t\t\t\t\t\"crafted 50-34 tooth chainset and 11-32 tooth cassette give an \" +\n\t\t\t\t\t\t\"easy-on-the-legs bottom gear for climbing, and the high-quality \" +\n\t\t\t\t\t\t\"Vittoria Zaffiro tires give balance and grip.It includes \" +\n\t\t\t\t\t\t\"a low-step frame , our memory foam seat, bump-resistant shocks and \" +\n\t\t\t\t\t\t\"conveniently placed thumb throttle. Put it all together and you \" +\n\t\t\t\t\t\t\"get a bike that helps redefine what can be done for this price.\",\n\t\t\t\t\t\"price\": 3941,\n\t\t\t\t\t\"specs\": map[string]interface{}{\"material\": \"alloy\", \"weight\": 11.6},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t}\n\n\tres1, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res1) // >>> OK\n\n}\n\nfunc ExampleClient_getbikes() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres2, err := rdb.JSONGetWithArgs(ctx, \"bikes:inventory\",\n\t\t&redis.JSONGetArgs{Indent: \" \", Newline: \"\\n\", Space: \" \"},\n\t\t\"$.inventory.*\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res2)\n\t// >>>\n\t// [\n\t// [\n\t// {\n\t// \"colors\": [\n\t// \"black\",\n\t// \"silver\"\n\t// ...\n\n}\n\nfunc ExampleClient_getmtnbikes() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres3, err := rdb.JSONGet(ctx, \"bikes:inventory\",\n\t\t\"$.inventory.mountain_bikes[*].model\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res3)\n\t// >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n\tres4, err := rdb.JSONGet(ctx,\n\t\t\"bikes:inventory\", \"$.inventory[\\\"mountain_bikes\\\"][*].model\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res4)\n\t// >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n\tres5, err := rdb.JSONGet(ctx,\n\t\t\"bikes:inventory\", \"$..mountain_bikes[*].model\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res5)\n\t// >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n}\n\nfunc ExampleClient_getmodels() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres6, err := rdb.JSONGet(ctx, \"bikes:inventory\", \"$..model\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res6) // >>> [\"Salacia\",\"Mimas\",\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n}\n\nfunc ExampleClient_get2mtnbikes() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres7, err := rdb.JSONGet(ctx, \"bikes:inventory\", \"$..mountain_bikes[0:2].model\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res7) // >>> [\"Phoebe\",\"Quaoar\"]\n\n}\n\nfunc ExampleClient_filter1() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres8, err := rdb.JSONGetWithArgs(ctx, \"bikes:inventory\",\n\t\t&redis.JSONGetArgs{Indent: \" \", Newline: \"\\n\", Space: \" \"},\n\t\t\"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res8)\n\t// >>>\n\t// [\n\t// {\n\t// \"colors\": [\n\t// \"black\",\n\t// \"white\"\n\t// ],\n\t// \"description\": \"Redesigned for the 2020 model year\n\t// ...\n\n}\n\nfunc ExampleClient_filter2() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres9, err := rdb.JSONGet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$..[?(@.specs.material == 'alloy')].model\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res9) // >>> [\"Mimas\",\"Weywot\"]\n\n}\n\nfunc ExampleClient_filter3() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres10, err := rdb.JSONGet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$..[?(@.specs.material =~ '(?i)al')].model\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res10) // >>> [\"Salacia\",\"Mimas\",\"Quaoar\",\"Weywot\"]\n\n}\n\nfunc ExampleClient_filter4() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres11, err := rdb.JSONSet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$.inventory.mountain_bikes[0].regex_pat\",\n\t\t\"\\\"(?i)al\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res11) // >>> OK\n\n\tres12, err := rdb.JSONSet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$.inventory.mountain_bikes[1].regex_pat\",\n\t\t\"\\\"(?i)al\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res12) // >>> OK\n\n\tres13, err := rdb.JSONSet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$.inventory.mountain_bikes[2].regex_pat\",\n\t\t\"\\\"(?i)al\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res13) // >>> OK\n\n\tres14, err := rdb.JSONGet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res14) // >>> [\"Quaoar\",\"Weywot\"]\n\n}\n\nfunc ExampleClient_updatebikes() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres15, err := rdb.JSONGet(ctx, \"bikes:inventory\", \"$..price\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res15) // >>> [1475,3941,1920,2072,3264]\n\n\tres16, err := rdb.JSONNumIncrBy(ctx, \"bikes:inventory\", \"$..price\", -100).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res16) // >>> [1375,3841,1820,1972,3164]\n\n\tres17, err := rdb.JSONNumIncrBy(ctx, \"bikes:inventory\", \"$..price\", 100).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res17) // >>> [1475,3941,1920,2072,3264]\n\n}\n\nfunc ExampleClient_updatefilters1() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres18, err := rdb.JSONSet(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$.inventory.*[?(@.price<2000)].price\",\n\t\t1500,\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res18) // >>> OK\n\n\tres19, err := rdb.JSONGet(ctx, \"bikes:inventory\", \"$..price\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res19) // >>> [1500,3941,1500,2072,3264]\n\n}\n\nfunc ExampleClient_updatefilters2() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t_, err := rdb.JSONSet(ctx, \"bikes:inventory\", \"$\", inventory_json).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tres20, err := rdb.JSONArrAppend(ctx,\n\t\t\"bikes:inventory\",\n\t\t\"$.inventory.*[?(@.price<2000)].colors\",\n\t\t\"\\\"pink\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res20) // >>> [3 3]\n\n\tres21, err := rdb.JSONGet(ctx, \"bikes:inventory\", \"$..[*].colors\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res21)\n\t// >>> [[\"black\",\"silver\",\"pink\"],[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"]]\n\n}\n```\n\nExample:\n```c\nbool res1 = db.JSON().Set(\"bike\", \"$\", \"\\\"Hyperion\\\"\");\n Console.WriteLine(res1); // >>> True\n\n RedisResult res2 = db.JSON().Get(\"bike\", path: \"$\");\n Console.WriteLine(res2); // >>> [\"Hyperion\"]\n\n JsonType[] res3 = db.JSON().Type(\"bike\", \"$\");\n Console.WriteLine(string.Join(\", \", res3)); // >>> STRING\n```\n\nExample:\n```c\nusing NRedisStack;\nusing NRedisStack.RedisStackCommands;\nusing NRedisStack.Tests;\nusing StackExchange.Redis;\n\n\n\npublic class JsonTutorial\n{\n public void Run()\n {\n var muxer = ConnectionMultiplexer.Connect(\"localhost:6379\");\n var db = muxer.GetDatabase();\n\n\n bool res1 = db.JSON().Set(\"bike\", \"$\", \"\\\"Hyperion\\\"\");\n Console.WriteLine(res1); // >>> True\n\n RedisResult res2 = db.JSON().Get(\"bike\", path: \"$\");\n Console.WriteLine(res2); // >>> [\"Hyperion\"]\n\n JsonType[] res3 = db.JSON().Type(\"bike\", \"$\");\n Console.WriteLine(string.Join(\", \", res3)); // >>> STRING\n\n // Tests for 'set_get' step.\n\n\n long?[] res4 = db.JSON().StrLen(\"bike\", \"$\");\n Console.Write(string.Join(\", \", res4)); // >>> 8\n\n long?[] res5 = db.JSON().StrAppend(\"bike\", \" (Enduro bikes)\");\n Console.WriteLine(string.Join(\", \", res5)); // >>> 23\n\n RedisResult res6 = db.JSON().Get(\"bike\", path: \"$\");\n Console.WriteLine(res6); // >>> [\"Hyperion (Enduro bikes)\"]\n\n // Tests for 'str' step.\n\n\n bool res7 = db.JSON().Set(\"crashes\", \"$\", 0);\n Console.WriteLine(res7); // >>> True\n\n double?[] res8 = db.JSON().NumIncrby(\"crashes\", \"$\", 1);\n Console.WriteLine(string.Join(\", \", res8)); // >>> 1\n\n double?[] res9 = db.JSON().NumIncrby(\"crashes\", \"$\", 1.5);\n Console.WriteLine(string.Join(\", \", res9)); // >>> 2.5\n\n double?[] res10 = db.JSON().NumIncrby(\"crashes\", \"$\", -0.75);\n Console.WriteLine(string.Join(\", \", res10)); // >>> 1.75\n\n // Tests for 'num' step.\n\n\n bool res11 = db.JSON().Set(\"newbike\", \"$\", new object?[] { \"Deimos\", new { crashes = 0 }, null });\n Console.WriteLine(res11); // >>> True\n\n RedisResult res12 = db.JSON().Get(\"newbike\", path: \"$\");\n Console.WriteLine(res12); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n RedisResult res13 = db.JSON().Get(\"newbike\", path: \"$[1].crashes\");\n Console.WriteLine(res13); // >>> [0]\n\n long res14 = db.JSON().Del(\"newbike\", \"$.[-1]\");\n Console.WriteLine(res14); // >>> 1\n\n RedisResult res15 = db.JSON().Get(\"newbike\", path: \"$\");\n Console.WriteLine(res15); // >>> [[\"Deimos\",{\"crashes\":0}]]\n\n // Tests for 'arr' step.\n\n\n bool res16 = db.JSON().Set(\"riders\", \"$\", new object[] { });\n Console.WriteLine(res16); // >>> True\n\n long?[] res17 = db.JSON().ArrAppend(\"riders\", \"$\", \"Norem\");\n Console.WriteLine(string.Join(\", \", res17)); // >>> 1\n\n RedisResult res18 = db.JSON().Get(\"riders\", path: \"$\");\n Console.WriteLine(res18); // >>> [[\"Norem\"]]\n\n long?[] res19 = db.JSON().ArrInsert(\"riders\", \"$\", 1, \"Prickett\", \"Royce\", \"Castilla\");\n Console.WriteLine(string.Join(\", \", res19)); // >>> 4\n\n RedisResult res20 = db.JSON().Get(\"riders\", path: \"$\");\n Console.WriteLine(res20); // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n\n long?[] res21 = db.JSON().ArrTrim(\"riders\", \"$\", 1, 1);\n Console.WriteLine(string.Join(\", \", res21)); // 1\n\n RedisResult res22 = db.JSON().Get(\"riders\", path: \"$\");\n Console.WriteLine(res22); // >>> [[\"Prickett\"]]\n\n RedisResult[] res23 = db.JSON().ArrPop(\"riders\", \"$\");\n Console.WriteLine(string.Join(\", \", (object[])res23)); // >>> \"Prickett\"\n\n RedisResult[] res24 = db.JSON().ArrPop(\"riders\", \"$\");\n Console.WriteLine(string.Join(\", \", (object[])res24)); // >>> <Empty string>\n\n // Tests for 'arr2' step.\n\n\n bool res25 = db.JSON().Set(\"bike:1\", \"$\",\n new { model = \"Deimos\", brand = \"Ergonom\", price = 4972 }\n );\n Console.WriteLine(res25); // >>> True\n\n long?[] res26 = db.JSON().ObjLen(\"bike:1\", \"$\");\n Console.WriteLine(string.Join(\", \", res26)); // >>> 3\n\n IEnumerable<HashSet<string>> res27 = db.JSON().ObjKeys(\"bike:1\", \"$\");\n Console.WriteLine(\n string.Join(\", \", res27.Select(b => $\"{string.Join(\", \", b.Select(c => $\"{c}\"))}\"))\n ); // >>> model, brand, price\n\n // Tests for 'obj' step.\n\n\n string inventoryJson = @\"\n{\n \"\"inventory\"\": {\n \"\"mountain_bikes\"\": [\n {\n \"\"id\"\": \"\"bike:1\"\",\n \"\"model\"\": \"\"Phoebe\"\",\n \"\"description\"\": \"\"This is a mid-travel trail slayer that is a fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset gives plenty of gear range to tackle hills and there\\u2019s room for mudguards and a rack too. This is the bike for the rider who wants trail manners with low fuss ownership.\"\",\n \"\"price\"\": 1920,\n \"\"specs\"\": {\"\"material\"\": \"\"carbon\"\", \"\"weight\"\": 13.1},\n \"\"colors\"\": [\"\"black\"\", \"\"silver\"\"]\n },\n {\n \"\"id\"\": \"\"bike:2\"\",\n \"\"model\"\": \"\"Quaoar\"\",\n \"\"description\"\": \"\"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and tear. All in all it's an impressive package for the price, making it very competitive.\"\",\n \"\"price\"\": 2072,\n \"\"specs\"\": {\"\"material\"\": \"\"aluminium\"\", \"\"weight\"\": 7.9},\n \"\"colors\"\": [\"\"black\"\", \"\"white\"\"]\n },\n {\n \"\"id\"\": \"\"bike:3\"\",\n \"\"model\"\": \"\"Weywot\"\",\n \"\"description\"\": \"\"This bike gives kids aged six years and older a durable and uberlight mountain bike for their first experience on tracks and easy cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes provide ample stopping ability. If you're after a budget option, this is one of the best bikes you could get.\"\",\n \"\"price\"\": 3264,\n \"\"specs\"\": {\"\"material\"\": \"\"alloy\"\", \"\"weight\"\": 13.8}\n }\n ],\n \"\"commuter_bikes\"\": [\n {\n \"\"id\"\": \"\"bike:4\"\",\n \"\"model\"\": \"\"Salacia\"\",\n \"\"description\"\": \"\"This bike is a great option for anyone who just wants a bike to get about on With a slick-shifting Claris gears from Shimano\\u2019s, this is a bike which doesn\\u2019t break the bank and delivers craved performance. It\\u2019s for the rider who wants both efficiency and capability.\"\",\n \"\"price\"\": 1475,\n \"\"specs\"\": {\"\"material\"\": \"\"aluminium\"\", \"\"weight\"\": 16.6},\n \"\"colors\"\": [\"\"black\"\", \"\"silver\"\"]\n },\n {\n \"\"id\"\": \"\"bike:5\"\",\n \"\"model\"\": \"\"Mimas\"\",\n \"\"description\"\": \"\"A real joy to ride, this bike got very high scores in last years Bike of the year report. The carefully crafted 50-34 tooth chainset and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb throttle. Put it all together and you get a bike that helps redefine what can be done for this price.\"\",\n \"\"price\"\": 3941,\n \"\"specs\"\": {\"\"material\"\": \"\"alloy\"\", \"\"weight\"\": 11.6}\n }\n ]\n }\n}\";\n\n bool res28 = db.JSON().Set(\"bikes:inventory\", \"$\", inventoryJson);\n Console.WriteLine(res28); // >>> True\n\n // Tests for 'set_bikes' step.\n\n\n RedisResult res29 = db.JSON().Get(\"bikes:inventory\", path: \"$.inventory.*\");\n Console.WriteLine(res29); // >>> {[[{\"id\":\"bike:1\",\"model\":\"Phoebe\", ...\n\n // Tests for 'get_bikes' step.\n\n\n RedisResult res30 = db.JSON().Get(\"bikes:inventory\", path: \"$.inventory.mountain_bikes[*].model\");\n Console.WriteLine(res30); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n RedisResult res31 = db.JSON().Get(\"bikes:inventory\", path: \"$.inventory[\\\"mountain_bikes\\\"][*].model\");\n Console.WriteLine(res31); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n RedisResult res32 = db.JSON().Get(\"bikes:inventory\", path: \"$..mountain_bikes[*].model\");\n Console.WriteLine(res32); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n // Tests for 'get_mtnbikes' step.\n\n\n RedisResult res33 = db.JSON().Get(\"bikes:inventory\", path: \"$..model\");\n Console.WriteLine(res33); // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]\n\n // Tests for 'get_models' step.\n\n\n RedisResult res34 = db.JSON().Get(\"bikes:inventory\", path: \"$..mountain_bikes[0:2].model\");\n Console.WriteLine(res34); // >>> [\"Phoebe\",\"Quaoar\"]\n\n // Tests for 'get2mtnbikes' step.\n\n\n RedisResult res35 = db.JSON().Get(\n \"bikes:inventory\",\n path: \"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\"\n );\n Console.WriteLine(res35);\n // >>> [{\"id\":\"bike:2\",\"model\":\"Quaoar\",\"description\":\"Redesigned for the 2020 model year...\n\n // Tests for 'filter1' step.\n\n\n RedisResult res36 = db.JSON().Get(\n \"bikes:inventory\",\n path: \"$..[?(@.specs.material == 'alloy')].model\"\n );\n Console.WriteLine(res36); // >>> [\"Weywot\",\"Mimas\"]\n\n // Tests for 'filter2' step.\n\n\n RedisResult res37 = db.JSON().Get(\n \"bikes:inventory\",\n path: \"$..[?(@.specs.material =~ '(?i)al')].model\"\n );\n Console.WriteLine(res37); // >>> [\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]\n\n // Tests for 'filter3' step.\n\n\n bool res38 = db.JSON().Set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[0].regex_pat\",\n \"\\\"(?i)al\\\"\"\n );\n Console.WriteLine(res38); // >>> True\n\n bool res39 = db.JSON().Set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[1].regex_pat\",\n \"\\\"(?i)al\\\"\"\n );\n Console.WriteLine(res39); // >>> True\n\n bool res40 = db.JSON().Set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[2].regex_pat\",\n \"\\\"(?i)al\\\"\"\n );\n Console.WriteLine(res40); // >>> True\n\n RedisResult res41 = db.JSON().Get(\n \"bikes:inventory\",\n path: \"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\"\n );\n Console.WriteLine(res41); // >>> [\"Quaoar\",\"Weywot\"]\n\n // Tests for 'filter4' step.\n\n\n RedisResult res42 = db.JSON().Get(\"bikes:inventory\", path: \"$..price\");\n Console.WriteLine(res42); // >>> [1920,2072,3264,1475,3941]\n\n double?[] res43 = db.JSON().NumIncrby(\"bikes:inventory\", \"$..price\", -100);\n Console.WriteLine(string.Join(\", \", res43)); // >>> 1820, 1972, 3164, 1375, 3841\n\n double?[] res44 = db.JSON().NumIncrby(\"bikes:inventory\", \"$..price\", 100);\n Console.WriteLine(string.Join(\", \", res44)); // >>> 1920, 2072, 3264, 1475, 3941\n\n // Tests for 'update_bikes' step.\n\n\n bool res45 = db.JSON().Set(\n \"bikes:inventory\",\n \"$.inventory.*[?(@.price<2000)].price\",\n 1500\n );\n Console.WriteLine(res45); // >>> True\n\n RedisResult res46 = db.JSON().Get(\"bikes:inventory\", path: \"$..price\");\n Console.WriteLine(res46); // >>> [1500,2072,3264,1500,3941]\n\n // Tests for 'update_filters1' step.\n\n\n long?[] res47 = db.JSON().ArrAppend(\n \"bikes:inventory\", \"$.inventory.*[?(@.price<2000)].colors\", \"pink\"\n );\n Console.WriteLine(string.Join(\", \", res47)); // >>> 3, 3\n\n RedisResult res48 = db.JSON().Get(\"bikes:inventory\", path: \"$..[*].colors\");\n Console.WriteLine(res48); // >>> [[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"],[\"black\",\"silver\",\"pink\"]]\n\n // Tests for 'update_filters2' step.\n\n\n }\n}\n```\n\nExample:\n```php\n$res1 = $r->jsonset('bike', '$', '\"Hyperion\"');\n echo $res1 . PHP_EOL;\n // >>> OK\n\n $res2 = $r->jsonget('bike', '', '', '', '$');\n echo $res2 . PHP_EOL;\n // >>> [\"Hyperion\"]\n\n $res3 = $r->jsontype('bike', '$');\n echo json_encode($res3) . PHP_EOL;\n // >>> [\"string\"]\n```\n\nExample:\n```php\n<?php\n\nrequire 'vendor/autoload.php';\n\nuse Predis\\Client as PredisClient;\n\nclass DtJsonTest\n{\n public function testDtJson() {\n $r = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n 'password' => '',\n 'database' => 0,\n ]);\n\n $res1 = $r->jsonset('bike', '$', '\"Hyperion\"');\n echo $res1 . PHP_EOL;\n // >>> OK\n\n $res2 = $r->jsonget('bike', '', '', '', '$');\n echo $res2 . PHP_EOL;\n // >>> [\"Hyperion\"]\n\n $res3 = $r->jsontype('bike', '$');\n echo json_encode($res3) . PHP_EOL;\n // >>> [\"string\"]\n\n $res4 = $r->jsonstrlen('bike', '$');\n echo json_encode($res4) . PHP_EOL;\n // >>> [8]\n\n $res5 = $r->jsonstrappend('bike', '$', '\" (Enduro bikes)\"');\n echo json_encode($res5) . PHP_EOL;\n // >>> [23]\n\n $res6 = $r->jsonget('bike', '', '', '', '$');\n echo $res6 . PHP_EOL;\n // >>> \"Hyperion (Enduro bikes)\"\n\n $res7 = $r->jsonset('crashes', '$', '0');\n echo $res7 . PHP_EOL;\n // >>> OK\n\n $res8 = $r->jsonnumincrby('crashes', '$', 1);\n echo $res8 . PHP_EOL;\n // >>> [1]\n\n $res9 = $r->jsonnumincrby('crashes', '$', 1.5);\n echo $res9 . PHP_EOL;\n // >>> [2.5]\n\n $res10 = $r->jsonnumincrby('crashes', '$', -0.75);\n echo $res10 . PHP_EOL;\n // >>> [1.75]\n\n $newbike = json_encode([\"Deimos\", [\"crashes\" => 0], null], JSON_THROW_ON_ERROR);\n $res11 = $r->jsonset('newbike', '$', $newbike);\n echo $res11 . PHP_EOL;\n // >>> OK\n\n $res12 = $r->jsonget('newbike', '', '', '', '$');\n echo $res12 . PHP_EOL;\n // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n $res13 = $r->jsonget('newbike', '', '', '', '$[1].crashes');\n echo $res13 . PHP_EOL;\n // >>> 0\n\n $res14 = $r->jsondel('newbike', '$.[-1]');\n echo $res14 . PHP_EOL;\n // >>> 1\n\n $res15 = $r->jsonget('newbike', '', '', '', '$');\n echo $res15 . PHP_EOL;\n // >>> [\"Deimos\",{\"crashes\":0}]\n\n $res16 = $r->jsonset('riders', '$', '[]');\n echo $res16 . PHP_EOL;\n // >>> OK\n\n $res17 = $r->jsonarrappend('riders', '$', '\"Norem\"');\n echo json_encode($res17) . PHP_EOL;\n // >>> [1]\n\n $res18 = $r->jsonget('riders', '', '', '', '$');\n echo $res18 . PHP_EOL;\n // >>> [\"Norem\"]\n\n $res19 = $r->jsonarrinsert('riders', '$', 1, '\"Prickett\"', '\"Royce\"', '\"Castilla\"');\n echo json_encode($res19) . PHP_EOL;\n // >>> [4]\n\n $res20 = $r->jsonget('riders', '', '', '', '$');\n echo $res20 . PHP_EOL;\n // >>> [\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]\n\n $res21 = $r->jsonarrtrim('riders', '$', 1, 1);\n echo json_encode($res21) . PHP_EOL;\n // >>> [1]\n\n $res22 = $r->jsonget('riders', '', '', '', '$');\n echo $res22 . PHP_EOL;\n // >>> [\"Prickett\"]\n\n $res23 = $r->jsonarrpop('riders', '$');\n echo json_encode($res23) . PHP_EOL;\n // >>> [\"\\\"Prickett\\\"\"]\n\n $res24 = $r->jsonarrpop('riders', '$');\n echo json_encode($res24) . PHP_EOL;\n // >>> [null]\n\n $bike1 = json_encode([\n 'model' => 'Deimos',\n 'brand' => 'Ergonom',\n 'price' => 4972,\n ], JSON_THROW_ON_ERROR);\n $res25 = $r->jsonset('bike:1', '$', $bike1);\n echo $res25 . PHP_EOL;\n // >>> OK\n\n $res26 = $r->jsonobjlen('bike:1', '$');\n echo json_encode($res26) . PHP_EOL;\n // >>> [3]\n\n $res27 = $r->jsonobjkeys('bike:1', '$');\n echo json_encode($res27) . PHP_EOL;\n // >>> [[\"model\",\"brand\",\"price\"]]\n\n $inventory = [\n 'inventory' => [\n 'mountain_bikes' => [\n [\n 'id' => 'bike:1',\n 'model' => 'Phoebe',\n 'description' => 'This is a mid-travel trail slayer that is a fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset gives plenty of gear range to tackle hills and there’s room for mudguards and a rack too. This is the bike for the rider who wants trail manners with low fuss ownership.',\n 'price' => 1920,\n 'specs' => ['material' => 'carbon', 'weight' => 13.1],\n 'colors' => ['black', 'silver'],\n ],\n [\n 'id' => 'bike:2',\n 'model' => 'Quaoar',\n 'description' => \"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and tear. All in all it's an impressive package for the price, making it very competitive.\",\n 'price' => 2072,\n 'specs' => ['material' => 'aluminium', 'weight' => 7.9],\n 'colors' => ['black', 'white'],\n ],\n [\n 'id' => 'bike:3',\n 'model' => 'Weywot',\n 'description' => 'This bike gives kids aged six years and older a durable and uberlight mountain bike for their first experience on tracks and easy cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes provide ample stopping ability. If you\\'re after a budget option, this is one of the best bikes you could get.',\n 'price' => 3264,\n 'specs' => ['material' => 'alloy', 'weight' => 13.8],\n ],\n ],\n 'commuter_bikes' => [\n [\n 'id' => 'bike:4',\n 'model' => 'Salacia',\n 'description' => 'This bike is a great option for anyone who just wants a bike to get about on With a slick-shifting Claris gears from Shimano’s, this is a bike which doesn’t break the bank and delivers craved performance. It’s for the rider who wants both efficiency and capability.',\n 'price' => 1475,\n 'specs' => ['material' => 'aluminium', 'weight' => 16.6],\n 'colors' => ['black', 'silver'],\n ],\n [\n 'id' => 'bike:5',\n 'model' => 'Mimas',\n 'description' => 'A real joy to ride, this bike got very high scores in last years Bike of the year report. The carefully crafted 50-34 tooth chainset and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb throttle. Put it all together and you get a bike that helps redefine what can be done for this price.',\n 'price' => 3941,\n 'specs' => ['material' => 'alloy', 'weight' => 11.6],\n ],\n ],\n ],\n ];\n $res1b = $r->jsonset('bikes:inventory', '$', json_encode($inventory, JSON_THROW_ON_ERROR));\n echo $res1b . PHP_EOL;\n // >>> OK\n\n $res2b = $r->jsonget('bikes:inventory', '', '', '', '$.inventory.*');\n echo $res2b . PHP_EOL;\n // >>> [{'id': 'bike:1', 'model': 'Phoebe',\n\n $res3b = $r->jsonget('bikes:inventory', '', '', '', '$.inventory.mountain_bikes[*].model');\n echo $res3b . PHP_EOL;\n // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n $res4b = $r->jsonget('bikes:inventory', '', '', '', '$.inventory[\"mountain_bikes\"][*].model');\n echo $res4b . PHP_EOL;\n // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n $res5b = $r->jsonget('bikes:inventory', '', '', '', '$..mountain_bikes[*].model');\n echo $res5b . PHP_EOL;\n // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\"]\n\n $res6b = $r->jsonget('bikes:inventory', '', '', '', '$..model');\n echo $res6b . PHP_EOL;\n // >>> [\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]\n\n $res7b = $r->jsonget('bikes:inventory', '', '', '', '$..mountain_bikes[0:2].model');\n echo $res7b . PHP_EOL;\n // >>> [\"Phoebe\",\"Quaoar\"]\n\n $res8b = $r->jsonget(\n 'bikes:inventory',\n '',\n '',\n '',\n '$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]'\n );\n echo $res8b . PHP_EOL;\n // >>> [{\"id\":\"bike:2\",\"model\":\"Quaoar\",...}]\n\n $res9b = $r->jsonget('bikes:inventory', '', '', '', \"$..[?(@.specs.material == 'alloy')].model\");\n echo $res9b . PHP_EOL;\n // >>> [\"Weywot\",\"Mimas\"]\n\n $res10b = $r->jsonget('bikes:inventory', '', '', '', \"$..[?(@.specs.material =~ '(?i)al')].model\");\n echo $res10b . PHP_EOL;\n // >>> [\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]\n\n $r->jsonset('bikes:inventory', '$.inventory.mountain_bikes[0].regex_pat', '\"(?i)al\"');\n $r->jsonset('bikes:inventory', '$.inventory.mountain_bikes[1].regex_pat', '\"(?i)al\"');\n $r->jsonset('bikes:inventory', '$.inventory.mountain_bikes[2].regex_pat', '\"(?i)al\"');\n\n $res14b = $r->jsonget(\n 'bikes:inventory',\n '',\n '',\n '',\n '$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model'\n );\n echo $res14b . PHP_EOL;\n // >>> [\"Quaoar\",\"Weywot\"]\n\n $res15b = $r->jsonget('bikes:inventory', '', '', '', '$..price');\n echo $res15b . PHP_EOL;\n // >>> [1920,2072,3264,1475,3941]\n\n $res16b = $r->jsonnumincrby('bikes:inventory', '$..price', -100);\n echo json_encode($res16b) . PHP_EOL;\n // >>> [1820,1972,3164,1375,3841]\n\n $res17b = $r->jsonnumincrby('bikes:inventory', '$..price', 100);\n echo json_encode($res17b) . PHP_EOL;\n // >>> [1920,2072,3264,1475,3941]\n\n $res18b = $r->jsonset('bikes:inventory', '$.inventory.*[?(@.price<2000)].price', '1500');\n $res19b = $r->jsonget('bikes:inventory', '', '', '', '$..price');\n echo $res19b . PHP_EOL;\n // >>> [1500,2072,3264,1500,3941]\n\n $res20b = $r->jsonarrappend('bikes:inventory', '$.inventory.*[?(@.price<2000)].colors', '\"pink\"');\n echo json_encode($res20b) . PHP_EOL;\n // >>> [3,3]\n\n $res21b = $r->jsonget('bikes:inventory', '', '', '', '$..[*].colors');\n echo $res21b . PHP_EOL;\n // >>> [[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"],[\"black\",\"silver\",\"pink\"]]\n }\n}\n```\n\nExample:\n```ruby\nres1 = r.json_set('bike', '$', 'Hyperion')\nputs res1 # >>> OK\n\nres2 = r.json_get('bike', '$')\np res2 # >>> [\"Hyperion\"]\n\nres3 = r.json_type('bike', '$')\np res3 # >>> [\"string\"]\n\n# With raw: true, json_set accepts an already-encoded JSON string (skipping\n# serialization) and json_get returns the unparsed JSON string rather than a\n# Ruby object — useful when you store or forward plain JSON.\nres_raw1 = r.json_set('bike', '$', '\"Hyperion\"', raw: true)\nputs res_raw1 # >>> OK\n\nres_raw2 = r.json_get('bike', '$', raw: true)\nputs res_raw2 # >>> [\"Hyperion\"] (a JSON string, not a Ruby array)\n```\n\nExample:\n```ruby\nrequire 'redis'\n\nr = Redis.new\n\n\nres1 = r.json_set('bike', '$', 'Hyperion')\nputs res1 # >>> OK\n\nres2 = r.json_get('bike', '$')\np res2 # >>> [\"Hyperion\"]\n\nres3 = r.json_type('bike', '$')\np res3 # >>> [\"string\"]\n\n# With raw: true, json_set accepts an already-encoded JSON string (skipping\n# serialization) and json_get returns the unparsed JSON string rather than a\n# Ruby object — useful when you store or forward plain JSON.\nres_raw1 = r.json_set('bike', '$', '\"Hyperion\"', raw: true)\nputs res_raw1 # >>> OK\n\nres_raw2 = r.json_get('bike', '$', raw: true)\nputs res_raw2 # >>> [\"Hyperion\"] (a JSON string, not a Ruby array)\n\n\nres4 = r.json_strlen('bike', '$')\np res4 # >>> [8]\n\nres5 = r.json_strappend('bike', '$', ' (Enduro bikes)')\np res5 # >>> [23]\n\nres6 = r.json_get('bike', '$')\np res6 # >>> [\"Hyperion (Enduro bikes)\"]\n\n\nres7 = r.json_set('crashes', '$', 0)\nputs res7 # >>> OK\n\nres8 = r.json_numincrby('crashes', '$', 1)\np res8 # >>> [1]\n\nres9 = r.json_numincrby('crashes', '$', 1.5)\np res9 # >>> [2.5]\n\nres10 = r.json_numincrby('crashes', '$', -0.75)\np res10 # >>> [1.75]\n\n\nres11 = r.json_set('newbike', '$', ['Deimos', { 'crashes' => 0 }, nil])\nputs res11 # >>> OK\n\nres12 = r.json_get('newbike', '$')\np res12 # >>> [[\"Deimos\", {\"crashes\"=>0}, nil]]\n\nres13 = r.json_get('newbike', '$[1].crashes')\np res13 # >>> [0]\n\nres14 = r.json_del('newbike', '$.[-1]')\np res14 # >>> 1\n\nres15 = r.json_get('newbike', '$')\np res15 # >>> [[\"Deimos\", {\"crashes\"=>0}]]\n\n# The same raw: true option returns the array as unparsed JSON text.\nres_raw3 = r.json_get('newbike', '$', raw: true)\nputs res_raw3 # >>> [[\"Deimos\",{\"crashes\":0}]] (a JSON string)\n\n\nres16 = r.json_set('riders', '$', [])\nputs res16 # >>> OK\n\nres17 = r.json_arrappend('riders', '$', 'Norem')\np res17 # >>> [1]\n\nres18 = r.json_get('riders', '$')\np res18 # >>> [[\"Norem\"]]\n\nres19 = r.json_arrinsert('riders', '$', 1, 'Prickett', 'Royce', 'Castilla')\np res19 # >>> [4]\n\nres20 = r.json_get('riders', '$')\np res20 # >>> [[\"Norem\", \"Prickett\", \"Royce\", \"Castilla\"]]\n\nres21 = r.json_arrtrim('riders', '$', 1, 1)\np res21 # >>> [1]\n\nres22 = r.json_get('riders', '$')\np res22 # >>> [[\"Prickett\"]]\n\nres23 = r.json_arrpop('riders', '$')\np res23 # >>> [\"Prickett\"]\n\nres24 = r.json_arrpop('riders', '$')\np res24 # >>> [nil]\n\n# json_arrappend also takes a pre-encoded JSON value with raw: true.\nres_raw4 = r.json_arrappend('riders', '$', '\"Castilla\"', raw: true)\np res_raw4 # >>> [1]\n\n\nres25 = r.json_set('bike:1', '$', { 'model' => 'Deimos', 'brand' => 'Ergonom', 'price' => 4972 })\nputs res25 # >>> OK\n\nres26 = r.json_objlen('bike:1', '$')\np res26 # >>> [3]\n\nres27 = r.json_objkeys('bike:1', '$')\np res27 # >>> [[\"model\", \"brand\", \"price\"]]\n\n# raw: true returns the object as unparsed JSON text.\nres_raw5 = r.json_get('bike:1', '$', raw: true)\nputs res_raw5 # >>> [{\"model\":\"Deimos\",\"brand\":\"Ergonom\",\"price\":4972}] (a JSON string)\n\n\ninventory_json = {\n 'inventory' => {\n 'mountain_bikes' => [\n {\n 'id' => 'bike:1',\n 'model' => 'Phoebe',\n 'description' => 'This is a mid-travel trail slayer that is a fantastic ' \\\n 'daily driver or one bike quiver. The Shimano Claris 8-speed groupset ' \\\n 'gives plenty of gear range to tackle hills and there’s room for ' \\\n 'mudguards and a rack too. This is the bike for the rider who wants ' \\\n 'trail manners with low fuss ownership.',\n 'price' => 1920,\n 'specs' => { 'material' => 'carbon', 'weight' => 13.1 },\n 'colors' => %w[black silver]\n },\n {\n 'id' => 'bike:2',\n 'model' => 'Quaoar',\n 'description' => 'Redesigned for the 2020 model year, this bike ' \\\n \"impressed our testers and is the best all-around trail bike we've \" \\\n 'ever tested. The Shimano gear system effectively does away with an ' \\\n 'external cassette, so is super low maintenance in terms of wear ' \\\n \"and tear. All in all it's an impressive package for the price, \" \\\n 'making it very competitive.',\n 'price' => 2072,\n 'specs' => { 'material' => 'aluminium', 'weight' => 7.9 },\n 'colors' => %w[black white]\n },\n {\n 'id' => 'bike:3',\n 'model' => 'Weywot',\n 'description' => 'This bike gives kids aged six years and older ' \\\n 'a durable and uberlight mountain bike for their first experience ' \\\n 'on tracks and easy cruising through forests and fields. A set of ' \\\n 'powerful Shimano hydraulic disc brakes provide ample stopping ' \\\n \"ability. If you're after a budget option, this is one of the best \" \\\n 'bikes you could get.',\n 'price' => 3264,\n 'specs' => { 'material' => 'alloy', 'weight' => 13.8 }\n }\n ],\n 'commuter_bikes' => [\n {\n 'id' => 'bike:4',\n 'model' => 'Salacia',\n 'description' => 'This bike is a great option for anyone who just ' \\\n 'wants a bike to get about on With a slick-shifting Claris gears ' \\\n 'from Shimano’s, this is a bike which doesn’t break the ' \\\n \"bank and delivers craved performance. It's for the rider \" \\\n 'who wants both efficiency and capability.',\n 'price' => 1475,\n 'specs' => { 'material' => 'aluminium', 'weight' => 16.6 },\n 'colors' => %w[black silver]\n },\n {\n 'id' => 'bike:5',\n 'model' => 'Mimas',\n 'description' => 'A real joy to ride, this bike got very high ' \\\n 'scores in last years Bike of the year report. The carefully ' \\\n 'crafted 50-34 tooth chainset and 11-32 tooth cassette give an ' \\\n 'easy-on-the-legs bottom gear for climbing, and the high-quality ' \\\n 'Vittoria Zaffiro tires give balance and grip.It includes ' \\\n 'a low-step frame , our memory foam seat, bump-resistant shocks and ' \\\n 'conveniently placed thumb throttle. Put it all together and you ' \\\n 'get a bike that helps redefine what can be done for this price.',\n 'price' => 3941,\n 'specs' => { 'material' => 'alloy', 'weight' => 11.6 }\n }\n ]\n }\n}\n\nres1 = r.json_set('bikes:inventory', '$', inventory_json)\nputs res1 # >>> OK\n\nres2 = r.json_get('bikes:inventory', '$.inventory.*')\np res2\n# >>> [[{\"id\"=>\"bike:1\", \"model\"=>\"Phoebe\",\n# >>> \"description\"=>\"This is a mid-travel trail slayer...\n\nres3 = r.json_get('bikes:inventory', '$.inventory.mountain_bikes[*].model')\np res3 # >>> [\"Phoebe\", \"Quaoar\", \"Weywot\"]\n\nres4 = r.json_get('bikes:inventory', '$.inventory[\"mountain_bikes\"][*].model')\np res4 # >>> [\"Phoebe\", \"Quaoar\", \"Weywot\"]\n\nres5 = r.json_get('bikes:inventory', '$..mountain_bikes[*].model')\np res5 # >>> [\"Phoebe\", \"Quaoar\", \"Weywot\"]\n\n\nres6 = r.json_get('bikes:inventory', '$..model')\np res6 # >>> [\"Phoebe\", \"Quaoar\", \"Weywot\", \"Salacia\", \"Mimas\"]\n\n\nres7 = r.json_get('bikes:inventory', '$..mountain_bikes[0:2].model')\np res7 # >>> [\"Phoebe\", \"Quaoar\"]\n\n\nres8 = r.json_get(\n 'bikes:inventory',\n '$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]'\n)\np res8\n# >>> [{\"id\"=>\"bike:2\", \"model\"=>\"Quaoar\",\n# >>> \"description\"=>\"Redesigned for the 2020 model year...\n\n\nres9 = r.json_get('bikes:inventory', \"$..[?(@.specs.material == 'alloy')].model\")\np res9 # >>> [\"Weywot\", \"Mimas\"]\n\n\nres10 = r.json_get('bikes:inventory', \"$..[?(@.specs.material =~ '(?i)al')].model\")\np res10 # >>> [\"Quaoar\", \"Weywot\", \"Salacia\", \"Mimas\"]\n\n\nres11 = r.json_set(\n 'bikes:inventory', '$.inventory.mountain_bikes[0].regex_pat', '(?i)al'\n)\nres12 = r.json_set(\n 'bikes:inventory', '$.inventory.mountain_bikes[1].regex_pat', '(?i)al'\n)\nres13 = r.json_set(\n 'bikes:inventory', '$.inventory.mountain_bikes[2].regex_pat', '(?i)al'\n)\n\nres14 = r.json_get(\n 'bikes:inventory',\n '$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model'\n)\np res14 # >>> [\"Quaoar\", \"Weywot\"]\n\n\nres15 = r.json_get('bikes:inventory', '$..price')\np res15 # >>> [1920, 2072, 3264, 1475, 3941]\n\nres16 = r.json_numincrby('bikes:inventory', '$..price', -100)\np res16 # >>> [1820, 1972, 3164, 1375, 3841]\n\nres17 = r.json_numincrby('bikes:inventory', '$..price', 100)\np res17 # >>> [1920, 2072, 3264, 1475, 3941]\n\n\nres18 = r.json_set('bikes:inventory', '$.inventory.*[?(@.price<2000)].price', 1500)\nres19 = r.json_get('bikes:inventory', '$..price')\np res19 # >>> [1500, 2072, 3264, 1500, 3941]\n\n\nres20 = r.json_arrappend(\n 'bikes:inventory', '$.inventory.*[?(@.price<2000)].colors', 'pink'\n)\np res20 # >>> [3, 3]\n\nres21 = r.json_get('bikes:inventory', '$..[*].colors')\np res21\n# >>> [[\"black\", \"silver\", \"pink\"], [\"black\", \"white\"], [\"black\", \"silver\", \"pink\"]]\n```\n\nExample:\n```rust\nlet res1: bool = r\n .json_set(\"bike\", \"$\", &json!(\"Hyperion\"))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res1); // >>> OK\n\n let res2: String = r.json_get(\"bike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res2}\"); // >>> [\"Hyperion\"]\n\n let res3: Value = r.json_type(\"bike\", \"$\").expect(\"Failed to run JSON.TYPE\");\n print_redis_value(&res3); // >>> [\"string\"]\n```\n\nExample:\n```rust\nmod tests {\n use redis::{cmd, Commands, JsonCommands, Value};\n use serde_json::{json, Number, Value as JsonValue};\n\n fn redis_value_to_json(value: &Value) -> JsonValue {\n match value {\n Value::Nil => JsonValue::Null,\n Value::Int(number) => json!(number),\n Value::BulkString(bytes) => {\n let text = String::from_utf8(bytes.clone()).expect(\"Redis response was not UTF-8\");\n serde_json::from_str(&text).unwrap_or(JsonValue::String(text))\n }\n Value::Array(values) => {\n JsonValue::Array(values.iter().map(redis_value_to_json).collect())\n }\n Value::SimpleString(text) => JsonValue::String(text.clone()),\n Value::Okay => JsonValue::String(\"OK\".to_string()),\n Value::Double(number) => Number::from_f64(*number)\n .map(JsonValue::Number)\n .unwrap_or(JsonValue::Null),\n Value::Boolean(flag) => JsonValue::Bool(*flag),\n _ => JsonValue::String(format!(\"{value:?}\")),\n }\n }\n\n fn render_redis_value(value: &Value) -> String {\n serde_json::to_string(&redis_value_to_json(value)).expect(\"Failed to render Redis value\")\n }\n\n fn print_redis_value(value: &Value) {\n println!(\"{}\", render_redis_value(value));\n }\n\n fn print_set_result(result: bool) {\n println!(\"{}\", if result { \"OK\" } else { \"(nil)\" });\n }\n\n fn inventory_json() -> JsonValue {\n json!({\n \"inventory\": {\n \"mountain_bikes\": [\n {\n \"id\": \"bike:1\",\n \"model\": \"Phoebe\",\n \"description\": \"This is a mid-travel trail slayer that is a fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset gives plenty of gear range to tackle hills and there's room for mudguards and a rack too. This is the bike for the rider who wants trail manners with low fuss ownership.\",\n \"price\": 1920,\n \"specs\": {\"material\": \"carbon\", \"weight\": 13.1},\n \"colors\": [\"black\", \"silver\"]\n },\n {\n \"id\": \"bike:2\",\n \"model\": \"Quaoar\",\n \"description\": \"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and tear. All in all it's an impressive package for the price, making it very competitive.\",\n \"price\": 2072,\n \"specs\": {\"material\": \"aluminium\", \"weight\": 7.9},\n \"colors\": [\"black\", \"white\"]\n },\n {\n \"id\": \"bike:3\",\n \"model\": \"Weywot\",\n \"description\": \"This bike gives kids aged six years and older a durable and uberlight mountain bike for their first experience on tracks and easy cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes provide ample stopping ability. If you're after a budget option, this is one of the best bikes you could get.\",\n \"price\": 3264,\n \"specs\": {\"material\": \"alloy\", \"weight\": 13.8}\n }\n ],\n \"commuter_bikes\": [\n {\n \"id\": \"bike:4\",\n \"model\": \"Salacia\",\n \"description\": \"This bike is a great option for anyone who just wants a bike to get about on With a slick-shifting Claris gears from Shimano's, this is a bike which doesn't break the bank and delivers craved performance. It's for the rider who wants both efficiency and capability.\",\n \"price\": 1475,\n \"specs\": {\"material\": \"aluminium\", \"weight\": 16.6},\n \"colors\": [\"black\", \"silver\"]\n },\n {\n \"id\": \"bike:5\",\n \"model\": \"Mimas\",\n \"description\": \"A real joy to ride, this bike got very high scores in last years Bike of the year report. The carefully crafted 50-34 tooth chainset and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb throttle. Put it all together and you get a bike that helps redefine what can be done for this price.\",\n \"price\": 3941,\n \"specs\": {\"material\": \"alloy\", \"weight\": 11.6}\n }\n ]\n }\n })\n }\n\n fn run() {\n let client =\n redis::Client::open(\"redis://127.0.0.1\").expect(\"Failed to create Redis client\");\n let mut r = client.get_connection().expect(\"Failed to connect to Redis\");\n\n\n let res1: bool = r\n .json_set(\"bike\", \"$\", &json!(\"Hyperion\"))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res1); // >>> OK\n\n let res2: String = r.json_get(\"bike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res2}\"); // >>> [\"Hyperion\"]\n\n let res3: Value = r.json_type(\"bike\", \"$\").expect(\"Failed to run JSON.TYPE\");\n print_redis_value(&res3); // >>> [\"string\"]\n\n\n let res4: Value = r\n .json_str_len(\"bike\", \"$\")\n .expect(\"Failed to run JSON.STRLEN\");\n print_redis_value(&res4); // >>> [8]\n\n let res5: Value = r\n .json_str_append(\"bike\", \"$\", \"\\\" (Enduro bikes)\\\"\")\n .expect(\"Failed to run JSON.STRAPPEND\");\n print_redis_value(&res5); // >>> [23]\n\n let res6: String = r.json_get(\"bike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res6}\"); // >>> [\"Hyperion (Enduro bikes)\"]\n\n\n let res7: bool = r\n .json_set(\"crashes\", \"$\", &json!(0))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res7); // >>> OK\n\n let res8: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res8}\"); // >>> [1]\n\n let res9: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1.5)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res9}\"); // >>> [2.5]\n\n let res10: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(-0.75)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res10}\"); // >>> [1.75]\n\n let res11: String = cmd(\"JSON.NUMMULTBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(24)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMMULTBY\");\n println!(\"{res11}\"); // >>> [42.0]\n\n\n let res12: bool = r\n .json_set(\"newbike\", \"$\", &json!([\"Deimos\", {\"crashes\": 0}, null]))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res12); // >>> OK\n\n let res13: String = r.json_get(\"newbike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res13}\"); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n let res14: String = r\n .json_get(\"newbike\", \"$[1].crashes\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res14}\"); // >>> [0]\n\n let res15: i64 = r\n .json_del(\"newbike\", \"$[-1]\")\n .expect(\"Failed to run JSON.DEL\");\n println!(\"{res15}\"); // >>> 1\n\n let res16: String = r.json_get(\"newbike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res16}\"); // >>> [[\"Deimos\",{\"crashes\":0}]]\n\n\n let res17: bool = r\n .json_set(\"riders\", \"$\", &json!([]))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res17); // >>> OK\n\n let res18: Value = r\n .json_arr_append(\"riders\", \"$\", &json!(\"Norem\"))\n .expect(\"Failed to run JSON.ARRAPPEND\");\n print_redis_value(&res18); // >>> [1]\n\n let res19: String = r.json_get(\"riders\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res19}\"); // >>> [[\"Norem\"]]\n\n let res20: Value = cmd(\"JSON.ARRINSERT\")\n .arg(\"riders\")\n .arg(\"$\")\n .arg(1)\n .arg(\"\\\"Prickett\\\"\")\n .arg(\"\\\"Royce\\\"\")\n .arg(\"\\\"Castilla\\\"\")\n .query(&mut r)\n .expect(\"Failed to run JSON.ARRINSERT\");\n print_redis_value(&res20); // >>> [4]\n\n let res21: String = r.json_get(\"riders\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res21}\"); // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n\n let res22: Value = r\n .json_arr_trim(\"riders\", \"$\", 1, 1)\n .expect(\"Failed to run JSON.ARRTRIM\");\n print_redis_value(&res22); // >>> [1]\n\n let res23: String = r.json_get(\"riders\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res23}\"); // >>> [[\"Prickett\"]]\n\n let res24: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res24); // >>> [\"Prickett\"]\n\n let res25: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res25); // >>> [null]\n\n\n let res26: bool = r\n .json_set(\n \"bike:1\",\n \"$\",\n &json!({\"model\": \"Deimos\", \"brand\": \"Ergonom\", \"price\": 4972}),\n )\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res26); // >>> OK\n\n let res27: Value = r\n .json_obj_len(\"bike:1\", \"$\")\n .expect(\"Failed to run JSON.OBJLEN\");\n print_redis_value(&res27); // >>> [3]\n\n let res28: Value = r\n .json_obj_keys(\"bike:1\", \"$\")\n .expect(\"Failed to run JSON.OBJKEYS\");\n print_redis_value(&res28); // >>> [[\"brand\",\"model\",\"price\"]]\n\n\n let res29: bool = r\n .json_set(\"bikes:inventory\", \"$\", &inventory_json())\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res29); // >>> OK\n\n\n let res30: String = r\n .json_get(\"bikes:inventory\", \"$.inventory.*\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res30}\");\n // >>> [[{\"id\":\"bike:1\",\"model\":\"Phoebe\",\"description\":\"This is a mid-travel trail slayer...\n\n let res31: String = r\n .json_get(\"bikes:inventory\", \"$.inventory.mountain_bikes[*].model\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res31}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n\n let res32: String = r\n .json_get(\n \"bikes:inventory\",\n r#\"$.inventory[\"mountain_bikes\"][*].model\"#,\n )\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res32}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n\n let res33: String = r\n .json_get(\"bikes:inventory\", \"$..mountain_bikes[*].model\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res33}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n\n\n let res34: String = r\n .json_get(\"bikes:inventory\", \"$..model\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res34}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n\n\n let res35: String = r\n .json_get(\"bikes:inventory\", \"$..mountain_bikes[0:2].model\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res35}\"); // >>> [[\"Phoebe\",\"Quaoar\"]]\n\n\n let res36: String = r\n .json_get(\n \"bikes:inventory\",\n \"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\",\n )\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res36}\");\n // >>> [[{\"id\":\"bike:2\",\"model\":\"Quaoar\",\"description\":\"Redesigned for the 2020 model year...\n\n let res37: String = r\n .json_get(\n \"bikes:inventory\",\n \"$..[?(@.specs.material == 'alloy')].model\",\n )\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res37}\"); // >>> [[\"Weywot\",\"Mimas\"]]\n\n\n let res38: String = r\n .json_get(\n \"bikes:inventory\",\n \"$..[?(@.specs.material =~ '(?i)al')].model\",\n )\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res38}\"); // >>> [[\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n\n\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[0].regex_pat\",\n &json!(\"(?i)al\"),\n )\n .expect(\"Failed to run JSON.SET\");\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[1].regex_pat\",\n &json!(\"(?i)al\"),\n )\n .expect(\"Failed to run JSON.SET\");\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[2].regex_pat\",\n &json!(\"(?i)al\"),\n )\n .expect(\"Failed to run JSON.SET\");\n\n let res39: String = r\n .json_get(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\",\n )\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res39}\"); // >>> [[\"Quaoar\",\"Weywot\"]]\n\n\n let res40: String = r\n .json_get(\"bikes:inventory\", \"$..price\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res40}\"); // >>> [1920,2072,3264,1475,3941]\n\n let res41: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"bikes:inventory\")\n .arg(\"$..price\")\n .arg(-100)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res41}\"); // >>> [1820,1972,3164,1375,3841]\n\n let res42: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"bikes:inventory\")\n .arg(\"$..price\")\n .arg(100)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res42}\"); // >>> [1920,2072,3264,1475,3941]\n\n\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.*[?(@.price<2000)].price\",\n &json!(1500),\n )\n .expect(\"Failed to run JSON.SET\");\n\n let res43: String = r\n .json_get(\"bikes:inventory\", \"$..price\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res43}\"); // >>> [1500,2072,3264,1500,3941]\n\n\n let res44: Value = cmd(\"JSON.ARRAPPEND\")\n .arg(\"bikes:inventory\")\n .arg(\"$.inventory.*[?(@.price<2000)].colors\")\n .arg(\"\\\"pink\\\"\")\n .query(&mut r)\n .expect(\"Failed to run JSON.ARRAPPEND\");\n print_redis_value(&res44); // >>> [3,3]\n\n let res45: String = r\n .json_get(\"bikes:inventory\", \"$..[*].colors\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res45}\");\n // >>> [[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"],[\"black\",\"silver\",\"pink\"]]\n\n }\n}\n```\n\nExample:\n```rust\nlet res1: bool = r\n .json_set(\"bike\", \"$\", &json!(\"Hyperion\"))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res1); // >>> OK\n\n let res2: String = r\n .json_get(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res2}\"); // >>> [\"Hyperion\"]\n\n let res3: Value = r\n .json_type(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.TYPE\");\n print_redis_value(&res3); // >>> [\"string\"]\n```\n\nExample:\n```rust\nmod tests {\n use redis::{cmd, AsyncCommands, JsonAsyncCommands, Value};\n use serde_json::{json, Number, Value as JsonValue};\n\n fn redis_value_to_json(value: &Value) -> JsonValue {\n match value {\n Value::Nil => JsonValue::Null,\n Value::Int(number) => json!(number),\n Value::BulkString(bytes) => {\n let text = String::from_utf8(bytes.clone()).expect(\"Redis response was not UTF-8\");\n serde_json::from_str(&text).unwrap_or(JsonValue::String(text))\n }\n Value::Array(values) => {\n JsonValue::Array(values.iter().map(redis_value_to_json).collect())\n }\n Value::SimpleString(text) => JsonValue::String(text.clone()),\n Value::Okay => JsonValue::String(\"OK\".to_string()),\n Value::Double(number) => Number::from_f64(*number)\n .map(JsonValue::Number)\n .unwrap_or(JsonValue::Null),\n Value::Boolean(flag) => JsonValue::Bool(*flag),\n _ => JsonValue::String(format!(\"{value:?}\")),\n }\n }\n\n fn render_redis_value(value: &Value) -> String {\n serde_json::to_string(&redis_value_to_json(value)).expect(\"Failed to render Redis value\")\n }\n\n fn print_redis_value(value: &Value) {\n println!(\"{}\", render_redis_value(value));\n }\n\n fn print_set_result(result: bool) {\n println!(\"{}\", if result { \"OK\" } else { \"(nil)\" });\n }\n\n fn inventory_json() -> JsonValue {\n json!({\n \"inventory\": {\n \"mountain_bikes\": [\n {\n \"id\": \"bike:1\",\n \"model\": \"Phoebe\",\n \"description\": \"This is a mid-travel trail slayer that is a fantastic daily driver or one bike quiver. The Shimano Claris 8-speed groupset gives plenty of gear range to tackle hills and there's room for mudguards and a rack too. This is the bike for the rider who wants trail manners with low fuss ownership.\",\n \"price\": 1920,\n \"specs\": {\"material\": \"carbon\", \"weight\": 13.1},\n \"colors\": [\"black\", \"silver\"]\n },\n {\n \"id\": \"bike:2\",\n \"model\": \"Quaoar\",\n \"description\": \"Redesigned for the 2020 model year, this bike impressed our testers and is the best all-around trail bike we've ever tested. The Shimano gear system effectively does away with an external cassette, so is super low maintenance in terms of wear and tear. All in all it's an impressive package for the price, making it very competitive.\",\n \"price\": 2072,\n \"specs\": {\"material\": \"aluminium\", \"weight\": 7.9},\n \"colors\": [\"black\", \"white\"]\n },\n {\n \"id\": \"bike:3\",\n \"model\": \"Weywot\",\n \"description\": \"This bike gives kids aged six years and older a durable and uberlight mountain bike for their first experience on tracks and easy cruising through forests and fields. A set of powerful Shimano hydraulic disc brakes provide ample stopping ability. If you're after a budget option, this is one of the best bikes you could get.\",\n \"price\": 3264,\n \"specs\": {\"material\": \"alloy\", \"weight\": 13.8}\n }\n ],\n \"commuter_bikes\": [\n {\n \"id\": \"bike:4\",\n \"model\": \"Salacia\",\n \"description\": \"This bike is a great option for anyone who just wants a bike to get about on With a slick-shifting Claris gears from Shimano's, this is a bike which doesn't break the bank and delivers craved performance. It's for the rider who wants both efficiency and capability.\",\n \"price\": 1475,\n \"specs\": {\"material\": \"aluminium\", \"weight\": 16.6},\n \"colors\": [\"black\", \"silver\"]\n },\n {\n \"id\": \"bike:5\",\n \"model\": \"Mimas\",\n \"description\": \"A real joy to ride, this bike got very high scores in last years Bike of the year report. The carefully crafted 50-34 tooth chainset and 11-32 tooth cassette give an easy-on-the-legs bottom gear for climbing, and the high-quality Vittoria Zaffiro tires give balance and grip.It includes a low-step frame , our memory foam seat, bump-resistant shocks and conveniently placed thumb throttle. Put it all together and you get a bike that helps redefine what can be done for this price.\",\n \"price\": 3941,\n \"specs\": {\"material\": \"alloy\", \"weight\": 11.6}\n }\n ]\n }\n })\n }\n\n async fn run() {\n let client =\n redis::Client::open(\"redis://127.0.0.1\").expect(\"Failed to create Redis client\");\n let mut r = client\n .get_multiplexed_async_connection()\n .await\n .expect(\"Failed to connect to Redis\");\n\n\n let res1: bool = r\n .json_set(\"bike\", \"$\", &json!(\"Hyperion\"))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res1); // >>> OK\n\n let res2: String = r\n .json_get(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res2}\"); // >>> [\"Hyperion\"]\n\n let res3: Value = r\n .json_type(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.TYPE\");\n print_redis_value(&res3); // >>> [\"string\"]\n\n\n let res4: Value = r\n .json_str_len(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.STRLEN\");\n print_redis_value(&res4); // >>> [8]\n\n let res5: Value = r\n .json_str_append(\"bike\", \"$\", \"\\\" (Enduro bikes)\\\"\")\n .await\n .expect(\"Failed to run JSON.STRAPPEND\");\n print_redis_value(&res5); // >>> [23]\n\n let res6: String = r\n .json_get(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res6}\"); // >>> [\"Hyperion (Enduro bikes)\"]\n\n\n let res7: bool = r\n .json_set(\"crashes\", \"$\", &json!(0))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res7); // >>> OK\n\n let res8: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res8}\"); // >>> [1]\n\n let res9: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1.5)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res9}\"); // >>> [2.5]\n\n let res10: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(-0.75)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res10}\"); // >>> [1.75]\n\n let res11: String = cmd(\"JSON.NUMMULTBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(24)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMMULTBY\");\n println!(\"{res11}\"); // >>> [42.0]\n\n\n let res12: bool = r\n .json_set(\"newbike\", \"$\", &json!([\"Deimos\", {\"crashes\": 0}, null]))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res12); // >>> OK\n\n let res13: String = r\n .json_get(\"newbike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res13}\"); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n let res14: String = r\n .json_get(\"newbike\", \"$[1].crashes\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res14}\"); // >>> [0]\n\n let res15: i64 = r\n .json_del(\"newbike\", \"$[-1]\")\n .await\n .expect(\"Failed to run JSON.DEL\");\n println!(\"{res15}\"); // >>> 1\n\n let res16: String = r\n .json_get(\"newbike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res16}\"); // >>> [[\"Deimos\",{\"crashes\":0}]]\n\n\n let res17: bool = r\n .json_set(\"riders\", \"$\", &json!([]))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res17); // >>> OK\n\n let res18: Value = r\n .json_arr_append(\"riders\", \"$\", &json!(\"Norem\"))\n .await\n .expect(\"Failed to run JSON.ARRAPPEND\");\n print_redis_value(&res18); // >>> [1]\n\n let res19: String = r\n .json_get(\"riders\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res19}\"); // >>> [[\"Norem\"]]\n\n let res20: Value = cmd(\"JSON.ARRINSERT\")\n .arg(\"riders\")\n .arg(\"$\")\n .arg(1)\n .arg(\"\\\"Prickett\\\"\")\n .arg(\"\\\"Royce\\\"\")\n .arg(\"\\\"Castilla\\\"\")\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.ARRINSERT\");\n print_redis_value(&res20); // >>> [4]\n\n let res21: String = r\n .json_get(\"riders\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res21}\"); // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n\n let res22: Value = r\n .json_arr_trim(\"riders\", \"$\", 1, 1)\n .await\n .expect(\"Failed to run JSON.ARRTRIM\");\n print_redis_value(&res22); // >>> [1]\n\n let res23: String = r\n .json_get(\"riders\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res23}\"); // >>> [[\"Prickett\"]]\n\n let res24: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .await\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res24); // >>> [\"Prickett\"]\n\n let res25: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .await\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res25); // >>> [null]\n\n\n let res26: bool = r\n .json_set(\n \"bike:1\",\n \"$\",\n &json!({\"model\": \"Deimos\", \"brand\": \"Ergonom\", \"price\": 4972}),\n )\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res26); // >>> OK\n\n let res27: Value = r\n .json_obj_len(\"bike:1\", \"$\")\n .await\n .expect(\"Failed to run JSON.OBJLEN\");\n print_redis_value(&res27); // >>> [3]\n\n let res28: Value = r\n .json_obj_keys(\"bike:1\", \"$\")\n .await\n .expect(\"Failed to run JSON.OBJKEYS\");\n print_redis_value(&res28); // >>> [[\"brand\",\"model\",\"price\"]]\n\n\n let res29: bool = r\n .json_set(\"bikes:inventory\", \"$\", &inventory_json())\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res29); // >>> OK\n\n\n let res30: String = r\n .json_get(\"bikes:inventory\", \"$.inventory.*\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res30}\");\n // >>> [[{\"id\":\"bike:1\",\"model\":\"Phoebe\",\"description\":\"This is a mid-travel trail slayer...\n\n let res31: String = r\n .json_get(\"bikes:inventory\", \"$.inventory.mountain_bikes[*].model\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res31}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n\n let res32: String = r\n .json_get(\n \"bikes:inventory\",\n r#\"$.inventory[\"mountain_bikes\"][*].model\"#,\n )\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res32}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n\n let res33: String = r\n .json_get(\"bikes:inventory\", \"$..mountain_bikes[*].model\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res33}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\"]]\n\n\n let res34: String = r\n .json_get(\"bikes:inventory\", \"$..model\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res34}\"); // >>> [[\"Phoebe\",\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n\n\n let res35: String = r\n .json_get(\"bikes:inventory\", \"$..mountain_bikes[0:2].model\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res35}\"); // >>> [[\"Phoebe\",\"Quaoar\"]]\n\n\n let res36: String = r\n .json_get(\n \"bikes:inventory\",\n \"$..mountain_bikes[?(@.price < 3000 && @.specs.weight < 10)]\",\n )\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res36}\");\n // >>> [[{\"id\":\"bike:2\",\"model\":\"Quaoar\",\"description\":\"Redesigned for the 2020 model year...\n\n let res37: String = r\n .json_get(\n \"bikes:inventory\",\n \"$..[?(@.specs.material == 'alloy')].model\",\n )\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res37}\"); // >>> [[\"Weywot\",\"Mimas\"]]\n\n\n let res38: String = r\n .json_get(\n \"bikes:inventory\",\n \"$..[?(@.specs.material =~ '(?i)al')].model\",\n )\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res38}\"); // >>> [[\"Quaoar\",\"Weywot\",\"Salacia\",\"Mimas\"]]\n\n\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[0].regex_pat\",\n &json!(\"(?i)al\"),\n )\n .await\n .expect(\"Failed to run JSON.SET\");\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[1].regex_pat\",\n &json!(\"(?i)al\"),\n )\n .await\n .expect(\"Failed to run JSON.SET\");\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[2].regex_pat\",\n &json!(\"(?i)al\"),\n )\n .await\n .expect(\"Failed to run JSON.SET\");\n\n let res39: String = r\n .json_get(\n \"bikes:inventory\",\n \"$.inventory.mountain_bikes[?(@.specs.material =~ @.regex_pat)].model\",\n )\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res39}\"); // >>> [[\"Quaoar\",\"Weywot\"]]\n\n\n let res40: String = r\n .json_get(\"bikes:inventory\", \"$..price\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res40}\"); // >>> [1920,2072,3264,1475,3941]\n\n let res41: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"bikes:inventory\")\n .arg(\"$..price\")\n .arg(-100)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res41}\"); // >>> [1820,1972,3164,1375,3841]\n\n let res42: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"bikes:inventory\")\n .arg(\"$..price\")\n .arg(100)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res42}\"); // >>> [1920,2072,3264,1475,3941]\n\n\n let _: bool = r\n .json_set(\n \"bikes:inventory\",\n \"$.inventory.*[?(@.price<2000)].price\",\n &json!(1500),\n )\n .await\n .expect(\"Failed to run JSON.SET\");\n\n let res43: String = r\n .json_get(\"bikes:inventory\", \"$..price\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res43}\"); // >>> [1500,2072,3264,1500,3941]\n\n\n let res44: Value = cmd(\"JSON.ARRAPPEND\")\n .arg(\"bikes:inventory\")\n .arg(\"$.inventory.*[?(@.price<2000)].colors\")\n .arg(\"\\\"pink\\\"\")\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.ARRAPPEND\");\n print_redis_value(&res44); // >>> [3,3]\n\n let res45: String = r\n .json_get(\"bikes:inventory\", \"$..[*].colors\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res45}\");\n // >>> [[\"black\",\"silver\",\"pink\"],[\"black\",\"white\"],[\"black\",\"silver\",\"pink\"]]\n\n }\n}\n```\n\nExample:\n```python\nres4 = r.json().strlen(\"bike\", \"$\")\nprint(res4) # >>> [10]\n\nres5 = r.json().strappend(\"bike\", '\" (Enduro bikes)\"')\nprint(res5) # >>> 27\n\nres6 = r.json().get(\"bike\", \"$\")\nprint(res6) # >>> ['\"Hyperion\"\" (Enduro bikes)\"']\n```\n\nExample:\n```node\nconst res4 = await client.json.strLen(\"bike\", { path: \"$\" });\nconsole.log(res4) // [10]\n\nconst res5 = await client.json.strAppend(\"bike\", '\" (Enduro bikes)\"');\nconsole.log(res5) // 27\n\nconst res6 = await client.json.get(\"bike\", { path: \"$\" });\nconsole.log(res6) // ['\"Hyperion\"\" (Enduro bikes)\"']\n```\n\nExample:\n```java\nList<Long> res4 = jedis.jsonStrLen(\"bike\", new Path2(\"$\"));\n System.out.println(res4); // >>> [8]\n\n List<Long> res5 = jedis.jsonStrAppend(\"bike\", new Path2(\"$\"), \" (Enduro bikes)\");\n System.out.println(res5); // >>> [23]\n\n Object res6 = jedis.jsonGet(\"bike\", new Path2(\"$\"));\n System.out.println(res6); // >>> [\"Hyperion (Enduro bikes)\"]\n```\n\nExample:\n```java\nCompletableFuture<Void> str = asyncCommands.jsonStrlen(\"bike\", JsonPath.ROOT_PATH).thenCompose(res3 -> {\n System.out.println(res3); // >>> [8]\n\n return asyncCommands.jsonStrappend(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\" (Enduro bikes)\\\"\"));\n }).thenCompose(res4 -> {\n System.out.println(res4); // >>> [23]\n\n return asyncCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [[\"Hyperion (Enduro bikes)\"]]\n .toCompletableFuture();\n```\n\nExample:\n```java\nMono<Void> str = reactiveCommands.jsonStrlen(\"bike\", JsonPath.ROOT_PATH).collectList().doOnNext(res3 -> {\n System.out.println(res3); // >>> [8]\n }).flatMap(res3 -> reactiveCommands\n .jsonStrappend(\"bike\", JsonPath.ROOT_PATH, parser.createJsonValue(\"\\\" (Enduro bikes)\\\"\")).collectList())\n .doOnNext(res4 -> {\n System.out.println(res4); // >>> [23]\n }).flatMap(res4 -> reactiveCommands.jsonGet(\"bike\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [[\"Hyperion (Enduro bikes)\"]]\n .then();\n```\n\nExample:\n```go\nres4, err := rdb.JSONStrLen(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(*res4[0]) // >>> 8\n\n\tres5, err := rdb.JSONStrAppend(ctx, \"bike\", \"$\", \"\\\" (Enduro bikes)\\\"\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(*res5[0]) // >>> 23\n\n\tres6, err := rdb.JSONGet(ctx, \"bike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res6) // >>> [\"Hyperion (Enduro bikes)\"]\n```\n\nExample:\n```c\nlong?[] res4 = db.JSON().StrLen(\"bike\", \"$\");\n Console.Write(string.Join(\", \", res4)); // >>> 8\n\n long?[] res5 = db.JSON().StrAppend(\"bike\", \" (Enduro bikes)\");\n Console.WriteLine(string.Join(\", \", res5)); // >>> 23\n\n RedisResult res6 = db.JSON().Get(\"bike\", path: \"$\");\n Console.WriteLine(res6); // >>> [\"Hyperion (Enduro bikes)\"]\n```\n\nExample:\n```php\n$res4 = $r->jsonstrlen('bike', '$');\n echo json_encode($res4) . PHP_EOL;\n // >>> [8]\n\n $res5 = $r->jsonstrappend('bike', '$', '\" (Enduro bikes)\"');\n echo json_encode($res5) . PHP_EOL;\n // >>> [23]\n\n $res6 = $r->jsonget('bike', '', '', '', '$');\n echo $res6 . PHP_EOL;\n // >>> \"Hyperion (Enduro bikes)\"\n```\n\nExample:\n```ruby\nres4 = r.json_strlen('bike', '$')\np res4 # >>> [8]\n\nres5 = r.json_strappend('bike', '$', ' (Enduro bikes)')\np res5 # >>> [23]\n\nres6 = r.json_get('bike', '$')\np res6 # >>> [\"Hyperion (Enduro bikes)\"]\n```\n\nExample:\n```rust\nlet res4: Value = r\n .json_str_len(\"bike\", \"$\")\n .expect(\"Failed to run JSON.STRLEN\");\n print_redis_value(&res4); // >>> [8]\n\n let res5: Value = r\n .json_str_append(\"bike\", \"$\", \"\\\" (Enduro bikes)\\\"\")\n .expect(\"Failed to run JSON.STRAPPEND\");\n print_redis_value(&res5); // >>> [23]\n\n let res6: String = r.json_get(\"bike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res6}\"); // >>> [\"Hyperion (Enduro bikes)\"]\n```\n\nExample:\n```rust\nlet res4: Value = r\n .json_str_len(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.STRLEN\");\n print_redis_value(&res4); // >>> [8]\n\n let res5: Value = r\n .json_str_append(\"bike\", \"$\", \"\\\" (Enduro bikes)\\\"\")\n .await\n .expect(\"Failed to run JSON.STRAPPEND\");\n print_redis_value(&res5); // >>> [23]\n\n let res6: String = r\n .json_get(\"bike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res6}\"); // >>> [\"Hyperion (Enduro bikes)\"]\n```\n\nExample:\n```python\nres7 = r.json().set(\"crashes\", \"$\", 0)\nprint(res7) # >>> True\n\nres8 = r.json().numincrby(\"crashes\", \"$\", 1)\nprint(res8) # >>> [1]\n\nres9 = r.json().numincrby(\"crashes\", \"$\", 1.5)\nprint(res9) # >>> [2.5]\n\nres10 = r.json().numincrby(\"crashes\", \"$\", -0.75)\nprint(res10) # >>> [1.75]\n```\n\nExample:\n```node\nconst res7 = await client.json.set(\"crashes\", \"$\", 0);\nconsole.log(res7) // OK\n\nconst res8 = await client.json.numIncrBy(\"crashes\", \"$\", 1);\nconsole.log(res8) // [1]\n\nconst res9 = await client.json.numIncrBy(\"crashes\", \"$\", 1.5);\nconsole.log(res9) // [2.5]\n\nconst res10 = await client.json.numIncrBy(\"crashes\", \"$\", -0.75);\nconsole.log(res10) // [1.75]\n```\n\nExample:\n```java\nString res7 = jedis.jsonSet(\"crashes\", new Path2(\"$\"), 0);\n System.out.println(res7); // >>> OK\n\n Object res8 = jedis.jsonNumIncrBy(\"crashes\", new Path2(\"$\"), 1);\n System.out.println(res8); // >>> [1]\n\n Object res9 = jedis.jsonNumIncrBy(\"crashes\", new Path2(\"$\"), 1.5);\n System.out.println(res9); // >>> [2.5]\n\n Object res10 = jedis.jsonNumIncrBy(\"crashes\", new Path2(\"$\"), -0.75);\n System.out.println(res10); // >>> [1.75]\n```\n\nExample:\n```java\nCompletableFuture<Void> num = asyncCommands.jsonSet(\"crashes\", JsonPath.ROOT_PATH, parser.createJsonValue(\"0\"))\n .thenCompose(res5 -> {\n System.out.println(res5); // >>> OK\n\n return asyncCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1);\n }).thenCompose(res6 -> {\n System.out.println(res6); // >>> [1]\n\n return asyncCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1.5);\n }).thenCompose(res7 -> {\n System.out.println(res7); // >>> [2.5]\n\n return asyncCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, -0.75);\n })\n .thenAccept(System.out::println) // >>> [1.75]\n .toCompletableFuture();\n```\n\nExample:\n```java\nMono<Void> num = reactiveCommands.jsonSet(\"crashes\", JsonPath.ROOT_PATH, parser.createJsonValue(\"0\"))\n .doOnNext(res5 -> {\n System.out.println(res5); // >>> OK\n }).flatMap(res5 -> reactiveCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1).collectList())\n .doOnNext(res6 -> {\n System.out.println(res6); // >>> [1]\n }).flatMap(res6 -> reactiveCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, 1.5).collectList())\n .doOnNext(res7 -> {\n System.out.println(res7); // >>> [2.5]\n }).flatMap(res7 -> reactiveCommands.jsonNumincrby(\"crashes\", JsonPath.ROOT_PATH, -0.75).collectList())\n .doOnNext(System.out::println) // >>> [1.75]\n .then();\n```\n\nExample:\n```go\nres7, err := rdb.JSONSet(ctx, \"crashes\", \"$\", 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res7) // >>> OK\n\n\tres8, err := rdb.JSONNumIncrBy(ctx, \"crashes\", \"$\", 1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res8) // >>> [1]\n\n\tres9, err := rdb.JSONNumIncrBy(ctx, \"crashes\", \"$\", 1.5).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res9) // >>> [2.5]\n\n\tres10, err := rdb.JSONNumIncrBy(ctx, \"crashes\", \"$\", -0.75).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res10) // >>> [1.75]\n```\n\nExample:\n```c\nbool res7 = db.JSON().Set(\"crashes\", \"$\", 0);\n Console.WriteLine(res7); // >>> True\n\n double?[] res8 = db.JSON().NumIncrby(\"crashes\", \"$\", 1);\n Console.WriteLine(string.Join(\", \", res8)); // >>> 1\n\n double?[] res9 = db.JSON().NumIncrby(\"crashes\", \"$\", 1.5);\n Console.WriteLine(string.Join(\", \", res9)); // >>> 2.5\n\n double?[] res10 = db.JSON().NumIncrby(\"crashes\", \"$\", -0.75);\n Console.WriteLine(string.Join(\", \", res10)); // >>> 1.75\n```\n\nExample:\n```php\n$res7 = $r->jsonset('crashes', '$', '0');\n echo $res7 . PHP_EOL;\n // >>> OK\n\n $res8 = $r->jsonnumincrby('crashes', '$', 1);\n echo $res8 . PHP_EOL;\n // >>> [1]\n\n $res9 = $r->jsonnumincrby('crashes', '$', 1.5);\n echo $res9 . PHP_EOL;\n // >>> [2.5]\n\n $res10 = $r->jsonnumincrby('crashes', '$', -0.75);\n echo $res10 . PHP_EOL;\n // >>> [1.75]\n```\n\nExample:\n```ruby\nres7 = r.json_set('crashes', '$', 0)\nputs res7 # >>> OK\n\nres8 = r.json_numincrby('crashes', '$', 1)\np res8 # >>> [1]\n\nres9 = r.json_numincrby('crashes', '$', 1.5)\np res9 # >>> [2.5]\n\nres10 = r.json_numincrby('crashes', '$', -0.75)\np res10 # >>> [1.75]\n```\n\nExample:\n```rust\nlet res7: bool = r\n .json_set(\"crashes\", \"$\", &json!(0))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res7); // >>> OK\n\n let res8: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res8}\"); // >>> [1]\n\n let res9: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1.5)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res9}\"); // >>> [2.5]\n\n let res10: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(-0.75)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res10}\"); // >>> [1.75]\n\n let res11: String = cmd(\"JSON.NUMMULTBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(24)\n .query(&mut r)\n .expect(\"Failed to run JSON.NUMMULTBY\");\n println!(\"{res11}\"); // >>> [42.0]\n```\n\nExample:\n```rust\nlet res7: bool = r\n .json_set(\"crashes\", \"$\", &json!(0))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res7); // >>> OK\n\n let res8: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res8}\"); // >>> [1]\n\n let res9: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(1.5)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res9}\"); // >>> [2.5]\n\n let res10: String = cmd(\"JSON.NUMINCRBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(-0.75)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMINCRBY\");\n println!(\"{res10}\"); // >>> [1.75]\n\n let res11: String = cmd(\"JSON.NUMMULTBY\")\n .arg(\"crashes\")\n .arg(\"$\")\n .arg(24)\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.NUMMULTBY\");\n println!(\"{res11}\"); // >>> [42.0]\n```\n\nExample:\n```python\nres11 = r.json().set(\"newbike\", \"$\", [\"Deimos\", {\"crashes\": 0}, None])\nprint(res11) # >>> True\n\nres12 = r.json().get(\"newbike\", \"$\")\nprint(res12) # >>> ['[\"Deimos\", { \"crashes\": 0 }, null]']\n\nres13 = r.json().get(\"newbike\", \"$[1].crashes\")\nprint(res13) # >>> [0]\n\nres14 = r.json().delete(\"newbike\", \"$.[-1]\")\nprint(res14) # >>> [1]\n\nres15 = r.json().get(\"newbike\", \"$\")\nprint(res15) # >>> [['Deimos', {'crashes': 0}]]\n```\n\nExample:\n```node\nconst res11 = await client.json.set(\"newbike\", \"$\", [\"Deimos\", {\"crashes\": 0 }, null]);\nconsole.log(res11); // OK\n\nconst res12 = await client.json.get(\"newbike\", { path: \"$\" });\nconsole.log(res12); // [[ 'Deimos', { crashes: 0 }, null ]]\n\nconst res13 = await client.json.get(\"newbike\", { path: \"$[1].crashes\" });\nconsole.log(res13); // [0]\n\nconst res14 = await client.json.del(\"newbike\", { path: \"$.[-1]\"} );\nconsole.log(res14); // 1\n\nconst res15 = await client.json.get(\"newbike\", { path: \"$\" });\nconsole.log(res15); // [[ 'Deimos', { crashes: 0 } ]]\n```\n\nExample:\n```java\nString res11 = jedis.jsonSet(\"newbike\", new Path2(\"$\"),\n new JSONArray()\n .put(\"Deimos\")\n .put(new JSONObject().put(\"crashes\", 0))\n .put((Object) null)\n );\n System.out.println(res11); // >>> OK\n \n Object res12 = jedis.jsonGet(\"newbike\", new Path2(\"$\"));\n System.out.println(res12); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n Object res13 = jedis.jsonGet(\"newbike\", new Path2(\"$[1].crashes\"));\n System.out.println(res13); // >>> [0]\n\n long res14 = jedis.jsonDel(\"newbike\", new Path2(\"$.[-1]\"));\n System.out.println(res14); // >>> 1\n\n Object res15 = jedis.jsonGet(\"newbike\", new Path2(\"$\"));\n System.out.println(res15); // >>> [[\"Deimos\",{\"crashes\":0}]]\n```\n\nExample:\n```java\nJsonObject crashDetails = parser.createJsonObject();\n crashDetails.put(\"crashes\", parser.createJsonValue(\"0\"));\n\n JsonArray bikeDetails = parser.createJsonArray();\n bikeDetails.add(parser.createJsonValue(\"\\\"Deimos\\\"\"));\n bikeDetails.add(crashDetails);\n bikeDetails.add(null);\n\n CompletableFuture<Void> arr = asyncCommands.jsonSet(\"newbike\", JsonPath.ROOT_PATH, bikeDetails).thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH);\n }).thenCompose(res8 -> {\n System.out.println(res8);\n // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n return asyncCommands.jsonGet(\"newbike\", JsonPath.of(\"$[1].crashes\"));\n }).thenCompose(res9 -> {\n System.out.println(res9); // >>> [[0]]\n\n return asyncCommands.jsonDel(\"newbike\", JsonPath.of(\"$.[-1]\"));\n }).thenCompose(res10 -> {\n System.out.println(res10); // >>> 1\n\n return asyncCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [[[\\\"Deimos\\\",{\\\"crashes\\\":0}]]]\n .toCompletableFuture();\n```\n\nExample:\n```java\nJsonObject crashDetails = parser.createJsonObject();\n crashDetails.put(\"crashes\", parser.createJsonValue(\"0\"));\n\n JsonArray bikeDetails = parser.createJsonArray();\n bikeDetails.add(parser.createJsonValue(\"\\\"Deimos\\\"\"));\n bikeDetails.add(crashDetails);\n bikeDetails.add(null);\n\n Mono<Void> arr = reactiveCommands.jsonSet(\"newbike\", JsonPath.ROOT_PATH, bikeDetails).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH).collectList()).doOnNext(res8 -> {\n System.out.println(res8);\n // >>> [[\"Deimos\",{\"crashes\":0},null]]\n }).flatMap(res8 -> reactiveCommands.jsonGet(\"newbike\", JsonPath.of(\"$[1].crashes\")).collectList())\n .doOnNext(res9 -> {\n System.out.println(res9); // >>> [[0]]\n }).flatMap(res9 -> reactiveCommands.jsonDel(\"newbike\", JsonPath.of(\"$.[-1]\"))).doOnNext(res10 -> {\n System.out.println(res10); // >>> 1\n }).flatMap(res10 -> reactiveCommands.jsonGet(\"newbike\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [[[\\\"Deimos\\\",{\\\"crashes\\\":0}]]]\n .then();\n```\n\nExample:\n```go\nres11, err := rdb.JSONSet(ctx, \"newbike\", \"$\",\n\t\t[]interface{}{\n\t\t\t\"Deimos\",\n\t\t\tmap[string]interface{}{\"crashes\": 0},\n\t\t\tnil,\n\t\t},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res11) // >>> OK\n\n\tres12, err := rdb.JSONGet(ctx, \"newbike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res12) // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n\tres13, err := rdb.JSONGet(ctx, \"newbike\", \"$[1].crashes\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res13) // >>> [0]\n\n\tres14, err := rdb.JSONDel(ctx, \"newbike\", \"$.[-1]\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res14) // >>> 1\n\n\tres15, err := rdb.JSONGet(ctx, \"newbike\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res15) // >>> [[\"Deimos\",{\"crashes\":0}]]\n```\n\nExample:\n```c\nbool res11 = db.JSON().Set(\"newbike\", \"$\", new object?[] { \"Deimos\", new { crashes = 0 }, null });\n Console.WriteLine(res11); // >>> True\n\n RedisResult res12 = db.JSON().Get(\"newbike\", path: \"$\");\n Console.WriteLine(res12); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n RedisResult res13 = db.JSON().Get(\"newbike\", path: \"$[1].crashes\");\n Console.WriteLine(res13); // >>> [0]\n\n long res14 = db.JSON().Del(\"newbike\", \"$.[-1]\");\n Console.WriteLine(res14); // >>> 1\n\n RedisResult res15 = db.JSON().Get(\"newbike\", path: \"$\");\n Console.WriteLine(res15); // >>> [[\"Deimos\",{\"crashes\":0}]]\n```\n\nExample:\n```php\n$newbike = json_encode([\"Deimos\", [\"crashes\" => 0], null], JSON_THROW_ON_ERROR);\n $res11 = $r->jsonset('newbike', '$', $newbike);\n echo $res11 . PHP_EOL;\n // >>> OK\n\n $res12 = $r->jsonget('newbike', '', '', '', '$');\n echo $res12 . PHP_EOL;\n // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n $res13 = $r->jsonget('newbike', '', '', '', '$[1].crashes');\n echo $res13 . PHP_EOL;\n // >>> 0\n\n $res14 = $r->jsondel('newbike', '$.[-1]');\n echo $res14 . PHP_EOL;\n // >>> 1\n\n $res15 = $r->jsonget('newbike', '', '', '', '$');\n echo $res15 . PHP_EOL;\n // >>> [\"Deimos\",{\"crashes\":0}]\n```\n\nExample:\n```ruby\nres11 = r.json_set('newbike', '$', ['Deimos', { 'crashes' => 0 }, nil])\nputs res11 # >>> OK\n\nres12 = r.json_get('newbike', '$')\np res12 # >>> [[\"Deimos\", {\"crashes\"=>0}, nil]]\n\nres13 = r.json_get('newbike', '$[1].crashes')\np res13 # >>> [0]\n\nres14 = r.json_del('newbike', '$.[-1]')\np res14 # >>> 1\n\nres15 = r.json_get('newbike', '$')\np res15 # >>> [[\"Deimos\", {\"crashes\"=>0}]]\n\n# The same raw: true option returns the array as unparsed JSON text.\nres_raw3 = r.json_get('newbike', '$', raw: true)\nputs res_raw3 # >>> [[\"Deimos\",{\"crashes\":0}]] (a JSON string)\n```\n\nExample:\n```rust\nlet res12: bool = r\n .json_set(\"newbike\", \"$\", &json!([\"Deimos\", {\"crashes\": 0}, null]))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res12); // >>> OK\n\n let res13: String = r.json_get(\"newbike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res13}\"); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n let res14: String = r\n .json_get(\"newbike\", \"$[1].crashes\")\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res14}\"); // >>> [0]\n\n let res15: i64 = r\n .json_del(\"newbike\", \"$[-1]\")\n .expect(\"Failed to run JSON.DEL\");\n println!(\"{res15}\"); // >>> 1\n\n let res16: String = r.json_get(\"newbike\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res16}\"); // >>> [[\"Deimos\",{\"crashes\":0}]]\n```\n\nExample:\n```rust\nlet res12: bool = r\n .json_set(\"newbike\", \"$\", &json!([\"Deimos\", {\"crashes\": 0}, null]))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res12); // >>> OK\n\n let res13: String = r\n .json_get(\"newbike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res13}\"); // >>> [[\"Deimos\",{\"crashes\":0},null]]\n\n let res14: String = r\n .json_get(\"newbike\", \"$[1].crashes\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res14}\"); // >>> [0]\n\n let res15: i64 = r\n .json_del(\"newbike\", \"$[-1]\")\n .await\n .expect(\"Failed to run JSON.DEL\");\n println!(\"{res15}\"); // >>> 1\n\n let res16: String = r\n .json_get(\"newbike\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res16}\"); // >>> [[\"Deimos\",{\"crashes\":0}]]\n```\n\nExample:\n```text\n> JSON.SET fp_array $ '[[1,2,3,4e3],[5,6.0,7,8]]' FPHA FP16\nOK\n> JSON.GET fp_array $\n\"[[[1.0,2.0,3.0,4000.0],[5.0,6.0,7.0,8.0]]]\"\n```\n\nExample:\n```python\nres16 = r.json().set(\"riders\", \"$\", [])\nprint(res16) # >>> True\n\nres17 = r.json().arrappend(\"riders\", \"$\", \"Norem\")\nprint(res17) # >>> [1]\n\nres18 = r.json().get(\"riders\", \"$\")\nprint(res18) # >>> [['Norem']]\n\nres19 = r.json().arrinsert(\"riders\", \"$\", 1, \"Prickett\", \"Royce\", \"Castilla\")\nprint(res19) # >>> [4]\n\nres20 = r.json().get(\"riders\", \"$\")\nprint(res20) # >>> [['Norem', 'Prickett', 'Royce', 'Castilla']]\n\nres21 = r.json().arrtrim(\"riders\", \"$\", 1, 1)\nprint(res21) # >>> [1]\n\nres22 = r.json().get(\"riders\", \"$\")\nprint(res22) # >>> [['Prickett']]\n\nres23 = r.json().arrpop(\"riders\", \"$\")\nprint(res23) # >>> ['\"Prickett\"']\n\nres24 = r.json().arrpop(\"riders\", \"$\")\nprint(res24) # >>> [None]\n```\n\nExample:\n```node\nconst res16 = await client.json.set(\"riders\", \"$\", []);\nconsole.log(res16); // OK\n\nconst res17 = await client.json.arrAppend(\"riders\", \"$\", \"Norem\");\nconsole.log(res17); // [1]\n\nconst res18 = await client.json.get(\"riders\", { path: \"$\" });\nconsole.log(res18); // [[ 'Norem' ]]\n\nconst res19 = await client.json.arrInsert(\"riders\", \"$\", 1, \"Prickett\", \"Royse\", \"Castilla\");\nconsole.log(res19); // [4]\n\nconst res20 = await client.json.get(\"riders\", { path: \"$\" });\nconsole.log(res20); // [[ 'Norem', 'Prickett', 'Royse', 'Castilla' ]]\n\nconst res21 = await client.json.arrTrim(\"riders\", \"$\", 1, 1);\nconsole.log(res21); // [1]\n\nconst res22 = await client.json.get(\"riders\", { path: \"$\" });\nconsole.log(res22); // [[ 'Prickett' ]]\n\nconst res23 = await client.json.arrPop(\"riders\", { path: \"$\" });\nconsole.log(res23); // [ 'Prickett' ]\n\nconst res24 = await client.json.arrPop(\"riders\", { path: \"$\" });\nconsole.log(res24); // [null]\n```\n\nExample:\n```java\nString res16 = jedis.jsonSet(\"riders\", new Path2(\"$\"), new JSONArray());\n System.out.println(res16); // >>> OK\n\n List<Long> res17 = jedis.jsonArrAppendWithEscape(\"riders\", new Path2(\"$\"), \"Norem\");\n System.out.println(res17); // >>> [1]\n\n Object res18 = jedis.jsonGet(\"riders\", new Path2(\"$\"));\n System.out.println(res18); // >>> [[\"Norem\"]]\n\n List<Long> res19 = jedis.jsonArrInsertWithEscape(\n \"riders\", new Path2(\"$\"), 1, \"Prickett\", \"Royce\", \"Castilla\"\n );\n System.out.println(res19); // >>> [4]\n\n Object res20 = jedis.jsonGet(\"riders\", new Path2(\"$\"));\n System.out.println(res20);\n // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n \n List<Long> res21 = jedis.jsonArrTrim(\"riders\", new Path2(\"$\"), 1, 1);\n System.out.println(res21); // >>> [1]\n\n Object res22 = jedis.jsonGet(\"riders\", new Path2(\"$\"));\n System.out.println(res22); // >>> [[\"Prickett\"]]\n\n Object res23 = jedis.jsonArrPop(\"riders\", new Path2(\"$\"));\n System.out.println(res23); // >>> [Prickett]\n\n Object res24 = jedis.jsonArrPop(\"riders\", new Path2(\"$\"));\n System.out.println(res24); // >>> [null]\n```\n\nExample:\n```java\nCompletableFuture<Void> arr2 = asyncCommands.jsonSet(\"riders\", JsonPath.ROOT_PATH, parser.createJsonArray())\n .thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 0,\n parser.createJsonValue(\"\\\"Norem\\\"\"));\n }).thenCompose(res11 -> {\n System.out.println(res11); // >>> [1]\n\n return asyncCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH);\n })\n\n .thenCompose(res12 -> {\n System.out.println(res12); // >>> [\"Norem\"]\n\n return asyncCommands.jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 1,\n parser.createJsonValue(\"\\\"Prickett\\\"\"), parser.createJsonValue(\"\\\"Royce\\\"\"),\n parser.createJsonValue(\"\\\"Castilla\\\"\"));\n }).thenCompose(res13 -> {\n System.out.println(res13); // >>> [4]\n\n return asyncCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH);\n }).thenCompose(res14 -> {\n System.out.println(res14); // >>> [\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]\n //\n return asyncCommands.jsonArrtrim(\"riders\", JsonPath.ROOT_PATH, new JsonRangeArgs().start(1).stop(1));\n }).thenCompose(res15 -> {\n System.out.println(res15); // >>> [1]\n\n return asyncCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH);\n }).thenCompose(res16 -> {\n System.out.println(res16); // >>> [[[\"Prickett\"]]]\n return asyncCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH, 0);\n }).thenCompose(res17 -> {\n System.out.println(res17); // >>> [\"Prickett\"]\n return asyncCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> null\n .toCompletableFuture();\n```\n\nExample:\n```java\nMono<Void> arr2 = reactiveCommands.jsonSet(\"riders\", JsonPath.ROOT_PATH, parser.createJsonArray()).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 0, parser.createJsonValue(\"\\\"Norem\\\"\"))\n .collectList()).doOnNext(res11 -> {\n System.out.println(res11); // >>> [1]\n }).flatMap(res11 -> reactiveCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(res12 -> {\n System.out.println(res12); // >>> [\"Norem\"]\n })\n .flatMap(\n res12 -> reactiveCommands\n .jsonArrinsert(\"riders\", JsonPath.ROOT_PATH, 1, parser.createJsonValue(\"\\\"Prickett\\\"\"),\n parser.createJsonValue(\"\\\"Royce\\\"\"), parser.createJsonValue(\"\\\"Castilla\\\"\"))\n .collectList())\n .doOnNext(res13 -> {\n System.out.println(res13); // >>> [4]\n }).flatMap(res13 -> reactiveCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n .flatMap(res14 -> reactiveCommands\n .jsonArrtrim(\"riders\", JsonPath.ROOT_PATH, new JsonRangeArgs().start(1).stop(1)).collectList())\n .doOnNext(res15 -> {\n System.out.println(res15); // >>> [1]\n }).flatMap(res15 -> reactiveCommands.jsonGet(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(res16 -> {\n System.out.println(res16); // >>> [[[\"Prickett\"]]]\n }).flatMap(res16 -> reactiveCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH, 0).collectList())\n .doOnNext(res17 -> {\n System.out.println(res17); // >>> [\"Prickett\"]\n }).flatMap(res17 -> reactiveCommands.jsonArrpop(\"riders\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> null\n .then();\n```\n\nExample:\n```go\nres16, err := rdb.JSONSet(ctx, \"riders\", \"$\", []interface{}{}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res16) // >>> OK\n\n\tres17, err := rdb.JSONArrAppend(ctx, \"riders\", \"$\", \"\\\"Norem\\\"\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res17) // >>> [1]\n\n\tres18, err := rdb.JSONGet(ctx, \"riders\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res18) // >>> [[\"Norem\"]]\n\n\tres19, err := rdb.JSONArrInsert(ctx, \"riders\", \"$\", 1,\n\t\t\"\\\"Prickett\\\"\", \"\\\"Royce\\\"\", \"\\\"Castilla\\\"\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res19) // [3]\n\n\tres20, err := rdb.JSONGet(ctx, \"riders\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res20) // >>> [[\"Norem\", \"Prickett\", \"Royce\", \"Castilla\"]]\n\n\trangeStop := 1\n\n\tres21, err := rdb.JSONArrTrimWithArgs(ctx, \"riders\", \"$\",\n\t\t&redis.JSONArrTrimArgs{Start: 1, Stop: &rangeStop},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res21) // >>> [1]\n\n\tres22, err := rdb.JSONGet(ctx, \"riders\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res22) // >>> [[\"Prickett\"]]\n\n\tres23, err := rdb.JSONArrPop(ctx, \"riders\", \"$\", -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res23) // >>> [[\"Prickett\"]]\n\n\tres24, err := rdb.JSONArrPop(ctx, \"riders\", \"$\", -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res24) // []\n```\n\nExample:\n```c\nbool res16 = db.JSON().Set(\"riders\", \"$\", new object[] { });\n Console.WriteLine(res16); // >>> True\n\n long?[] res17 = db.JSON().ArrAppend(\"riders\", \"$\", \"Norem\");\n Console.WriteLine(string.Join(\", \", res17)); // >>> 1\n\n RedisResult res18 = db.JSON().Get(\"riders\", path: \"$\");\n Console.WriteLine(res18); // >>> [[\"Norem\"]]\n\n long?[] res19 = db.JSON().ArrInsert(\"riders\", \"$\", 1, \"Prickett\", \"Royce\", \"Castilla\");\n Console.WriteLine(string.Join(\", \", res19)); // >>> 4\n\n RedisResult res20 = db.JSON().Get(\"riders\", path: \"$\");\n Console.WriteLine(res20); // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n\n long?[] res21 = db.JSON().ArrTrim(\"riders\", \"$\", 1, 1);\n Console.WriteLine(string.Join(\", \", res21)); // 1\n\n RedisResult res22 = db.JSON().Get(\"riders\", path: \"$\");\n Console.WriteLine(res22); // >>> [[\"Prickett\"]]\n\n RedisResult[] res23 = db.JSON().ArrPop(\"riders\", \"$\");\n Console.WriteLine(string.Join(\", \", (object[])res23)); // >>> \"Prickett\"\n\n RedisResult[] res24 = db.JSON().ArrPop(\"riders\", \"$\");\n Console.WriteLine(string.Join(\", \", (object[])res24)); // >>> <Empty string>\n```\n\nExample:\n```php\n$res16 = $r->jsonset('riders', '$', '[]');\n echo $res16 . PHP_EOL;\n // >>> OK\n\n $res17 = $r->jsonarrappend('riders', '$', '\"Norem\"');\n echo json_encode($res17) . PHP_EOL;\n // >>> [1]\n\n $res18 = $r->jsonget('riders', '', '', '', '$');\n echo $res18 . PHP_EOL;\n // >>> [\"Norem\"]\n\n $res19 = $r->jsonarrinsert('riders', '$', 1, '\"Prickett\"', '\"Royce\"', '\"Castilla\"');\n echo json_encode($res19) . PHP_EOL;\n // >>> [4]\n\n $res20 = $r->jsonget('riders', '', '', '', '$');\n echo $res20 . PHP_EOL;\n // >>> [\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]\n\n $res21 = $r->jsonarrtrim('riders', '$', 1, 1);\n echo json_encode($res21) . PHP_EOL;\n // >>> [1]\n\n $res22 = $r->jsonget('riders', '', '', '', '$');\n echo $res22 . PHP_EOL;\n // >>> [\"Prickett\"]\n\n $res23 = $r->jsonarrpop('riders', '$');\n echo json_encode($res23) . PHP_EOL;\n // >>> [\"\\\"Prickett\\\"\"]\n\n $res24 = $r->jsonarrpop('riders', '$');\n echo json_encode($res24) . PHP_EOL;\n // >>> [null]\n```\n\nExample:\n```ruby\nres16 = r.json_set('riders', '$', [])\nputs res16 # >>> OK\n\nres17 = r.json_arrappend('riders', '$', 'Norem')\np res17 # >>> [1]\n\nres18 = r.json_get('riders', '$')\np res18 # >>> [[\"Norem\"]]\n\nres19 = r.json_arrinsert('riders', '$', 1, 'Prickett', 'Royce', 'Castilla')\np res19 # >>> [4]\n\nres20 = r.json_get('riders', '$')\np res20 # >>> [[\"Norem\", \"Prickett\", \"Royce\", \"Castilla\"]]\n\nres21 = r.json_arrtrim('riders', '$', 1, 1)\np res21 # >>> [1]\n\nres22 = r.json_get('riders', '$')\np res22 # >>> [[\"Prickett\"]]\n\nres23 = r.json_arrpop('riders', '$')\np res23 # >>> [\"Prickett\"]\n\nres24 = r.json_arrpop('riders', '$')\np res24 # >>> [nil]\n\n# json_arrappend also takes a pre-encoded JSON value with raw: true.\nres_raw4 = r.json_arrappend('riders', '$', '\"Castilla\"', raw: true)\np res_raw4 # >>> [1]\n```\n\nExample:\n```rust\nlet res17: bool = r\n .json_set(\"riders\", \"$\", &json!([]))\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res17); // >>> OK\n\n let res18: Value = r\n .json_arr_append(\"riders\", \"$\", &json!(\"Norem\"))\n .expect(\"Failed to run JSON.ARRAPPEND\");\n print_redis_value(&res18); // >>> [1]\n\n let res19: String = r.json_get(\"riders\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res19}\"); // >>> [[\"Norem\"]]\n\n let res20: Value = cmd(\"JSON.ARRINSERT\")\n .arg(\"riders\")\n .arg(\"$\")\n .arg(1)\n .arg(\"\\\"Prickett\\\"\")\n .arg(\"\\\"Royce\\\"\")\n .arg(\"\\\"Castilla\\\"\")\n .query(&mut r)\n .expect(\"Failed to run JSON.ARRINSERT\");\n print_redis_value(&res20); // >>> [4]\n\n let res21: String = r.json_get(\"riders\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res21}\"); // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n\n let res22: Value = r\n .json_arr_trim(\"riders\", \"$\", 1, 1)\n .expect(\"Failed to run JSON.ARRTRIM\");\n print_redis_value(&res22); // >>> [1]\n\n let res23: String = r.json_get(\"riders\", \"$\").expect(\"Failed to run JSON.GET\");\n println!(\"{res23}\"); // >>> [[\"Prickett\"]]\n\n let res24: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res24); // >>> [\"Prickett\"]\n\n let res25: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res25); // >>> [null]\n```\n\nExample:\n```rust\nlet res17: bool = r\n .json_set(\"riders\", \"$\", &json!([]))\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res17); // >>> OK\n\n let res18: Value = r\n .json_arr_append(\"riders\", \"$\", &json!(\"Norem\"))\n .await\n .expect(\"Failed to run JSON.ARRAPPEND\");\n print_redis_value(&res18); // >>> [1]\n\n let res19: String = r\n .json_get(\"riders\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res19}\"); // >>> [[\"Norem\"]]\n\n let res20: Value = cmd(\"JSON.ARRINSERT\")\n .arg(\"riders\")\n .arg(\"$\")\n .arg(1)\n .arg(\"\\\"Prickett\\\"\")\n .arg(\"\\\"Royce\\\"\")\n .arg(\"\\\"Castilla\\\"\")\n .query_async(&mut r)\n .await\n .expect(\"Failed to run JSON.ARRINSERT\");\n print_redis_value(&res20); // >>> [4]\n\n let res21: String = r\n .json_get(\"riders\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res21}\"); // >>> [[\"Norem\",\"Prickett\",\"Royce\",\"Castilla\"]]\n\n let res22: Value = r\n .json_arr_trim(\"riders\", \"$\", 1, 1)\n .await\n .expect(\"Failed to run JSON.ARRTRIM\");\n print_redis_value(&res22); // >>> [1]\n\n let res23: String = r\n .json_get(\"riders\", \"$\")\n .await\n .expect(\"Failed to run JSON.GET\");\n println!(\"{res23}\"); // >>> [[\"Prickett\"]]\n\n let res24: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .await\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res24); // >>> [\"Prickett\"]\n\n let res25: Value = r\n .json_arr_pop(\"riders\", \"$\", -1)\n .await\n .expect(\"Failed to run JSON.ARRPOP\");\n print_redis_value(&res25); // >>> [null]\n```\n\nExample:\n```python\nres25 = r.json().set(\n \"bike:1\", \"$\", {\"model\": \"Deimos\", \"brand\": \"Ergonom\", \"price\": 4972}\n)\nprint(res25) # >>> True\n\nres26 = r.json().objlen(\"bike:1\", \"$\")\nprint(res26) # >>> [3]\n\nres27 = r.json().objkeys(\"bike:1\", \"$\")\nprint(res27) # >>> [['model', 'brand', 'price']]\n```\n\nExample:\n```node\nconst res25 = await client.json.set(\n \"bike:1\", \"$\", {\n \"model\": \"Deimos\",\n \"brand\": \"Ergonom\",\n \"price\": 4972\n }\n);\nconsole.log(res25); // OK\n\nconst res26 = await client.json.objLen(\"bike:1\", { path: \"$\" });\nconsole.log(res26); // [3]\n\nconst res27 = await client.json.objKeys(\"bike:1\", { path: \"$\" });\nconsole.log(res27); // [['model', 'brand', 'price']]\n```\n\nExample:\n```java\nString res25 = jedis.jsonSet(\"bike:1\", new Path2(\"$\"),\n new JSONObject()\n .put(\"model\", \"Deimos\")\n .put(\"brand\", \"Ergonom\")\n .put(\"price\", 4972)\n );\n System.out.println(res25); // >>> OK\n\n List<Long> res26 = jedis.jsonObjLen(\"bike:1\", new Path2(\"$\"));\n System.out.println(res26); // >>> [3]\n\n List<List<String>> res27 = jedis.jsonObjKeys(\"bike:1\", new Path2(\"$\"));\n System.out.println(res27); // >>> [[price, model, brand]]\n```\n\nExample:\n```java\nJsonObject bikeObj = parser.createJsonObject().put(\"model\", parser.createJsonValue(\"\\\"Deimos\\\"\"))\n .put(\"brand\", parser.createJsonValue(\"\\\"Ergonom\\\"\")).put(\"price\", parser.createJsonValue(\"\\\"4972\\\"\"));\n\n CompletableFuture<Void> obj = asyncCommands.jsonSet(\"bike:1\", JsonPath.ROOT_PATH, bikeObj).thenCompose(r -> {\n System.out.println(r); // >>> OK\n\n return asyncCommands.jsonObjlen(\"bike:1\", JsonPath.ROOT_PATH);\n }).thenCompose(res18 -> {\n System.out.println(res18); // >>> [3]\n\n return asyncCommands.jsonObjkeys(\"bike:1\", JsonPath.ROOT_PATH);\n })\n .thenAccept(System.out::println)\n // >>> [model, brand, price]\n .toCompletableFuture();\n```\n\nExample:\n```java\nJsonObject bikeObj = parser.createJsonObject().put(\"model\", parser.createJsonValue(\"\\\"Deimos\\\"\"))\n .put(\"brand\", parser.createJsonValue(\"\\\"Ergonom\\\"\")).put(\"price\", parser.createJsonValue(\"\\\"4972\\\"\"));\n\n Mono<Void> obj = reactiveCommands.jsonSet(\"bike:1\", JsonPath.ROOT_PATH, bikeObj).doOnNext(r -> {\n System.out.println(r); // >>> OK\n }).flatMap(r -> reactiveCommands.jsonObjlen(\"bike:1\", JsonPath.ROOT_PATH).collectList()).doOnNext(res18 -> {\n System.out.println(res18); // >>> [3]\n }).flatMap(res18 -> reactiveCommands.jsonObjkeys(\"bike:1\", JsonPath.ROOT_PATH).collectList())\n .doOnNext(System.out::println) // >>> [model, brand, price]\n .then();\n```\n\nExample:\n```go\nres25, err := rdb.JSONSet(ctx, \"bike:1\", \"$\",\n\t\tmap[string]interface{}{\n\t\t\t\"model\": \"Deimos\",\n\t\t\t\"brand\": \"Ergonom\",\n\t\t\t\"price\": 4972,\n\t\t},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res25) // >>> OK\n\n\tres26, err := rdb.JSONObjLen(ctx, \"bike:1\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(*res26[0]) // >>> 3\n\n\tres27, err := rdb.JSONObjKeys(ctx, \"bike:1\", \"$\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(res27) // >>> [brand model price]\n```\n\nExample:\n```c\nbool res25 = db.JSON().Set(\"bike:1\", \"$\",\n new { model = \"Deimos\", brand = \"Ergonom\", price = 4972 }\n );\n Console.WriteLine(res25); // >>> True\n\n long?[] res26 = db.JSON().ObjLen(\"bike:1\", \"$\");\n Console.WriteLine(string.Join(\", \", res26)); // >>> 3\n\n IEnumerable<HashSet<string>> res27 = db.JSON().ObjKeys(\"bike:1\", \"$\");\n Console.WriteLine(\n string.Join(\", \", res27.Select(b => $\"{string.Join(\", \", b.Select(c => $\"{c}\"))}\"))\n ); // >>> model, brand, price\n```\n\nExample:\n```php\n$bike1 = json_encode([\n 'model' => 'Deimos',\n 'brand' => 'Ergonom',\n 'price' => 4972,\n ], JSON_THROW_ON_ERROR);\n $res25 = $r->jsonset('bike:1', '$', $bike1);\n echo $res25 . PHP_EOL;\n // >>> OK\n\n $res26 = $r->jsonobjlen('bike:1', '$');\n echo json_encode($res26) . PHP_EOL;\n // >>> [3]\n\n $res27 = $r->jsonobjkeys('bike:1', '$');\n echo json_encode($res27) . PHP_EOL;\n // >>> [[\"model\",\"brand\",\"price\"]]\n```\n\nExample:\n```ruby\nres25 = r.json_set('bike:1', '$', { 'model' => 'Deimos', 'brand' => 'Ergonom', 'price' => 4972 })\nputs res25 # >>> OK\n\nres26 = r.json_objlen('bike:1', '$')\np res26 # >>> [3]\n\nres27 = r.json_objkeys('bike:1', '$')\np res27 # >>> [[\"model\", \"brand\", \"price\"]]\n\n# raw: true returns the object as unparsed JSON text.\nres_raw5 = r.json_get('bike:1', '$', raw: true)\nputs res_raw5 # >>> [{\"model\":\"Deimos\",\"brand\":\"Ergonom\",\"price\":4972}] (a JSON string)\n```\n\nExample:\n```rust\nlet res26: bool = r\n .json_set(\n \"bike:1\",\n \"$\",\n &json!({\"model\": \"Deimos\", \"brand\": \"Ergonom\", \"price\": 4972}),\n )\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res26); // >>> OK\n\n let res27: Value = r\n .json_obj_len(\"bike:1\", \"$\")\n .expect(\"Failed to run JSON.OBJLEN\");\n print_redis_value(&res27); // >>> [3]\n\n let res28: Value = r\n .json_obj_keys(\"bike:1\", \"$\")\n .expect(\"Failed to run JSON.OBJKEYS\");\n print_redis_value(&res28); // >>> [[\"brand\",\"model\",\"price\"]]\n```\n\nExample:\n```rust\nlet res26: bool = r\n .json_set(\n \"bike:1\",\n \"$\",\n &json!({\"model\": \"Deimos\", \"brand\": \"Ergonom\", \"price\": 4972}),\n )\n .await\n .expect(\"Failed to run JSON.SET\");\n print_set_result(res26); // >>> OK\n\n let res27: Value = r\n .json_obj_len(\"bike:1\", \"$\")\n .await\n .expect(\"Failed to run JSON.OBJLEN\");\n print_redis_value(&res27); // >>> [3]\n\n let res28: Value = r\n .json_obj_keys(\"bike:1\", \"$\")\n .await\n .expect(\"Failed to run JSON.OBJKEYS\");\n print_redis_value(&res28); // >>> [[\"brand\",\"model\",\"price\"]]\n```\n\nExample:\n```bash\n$ redis-cli --raw\n> JSON.GET obj INDENT \"\\t\" NEWLINE \"\\n\" SPACE \" \" $\n[\n\t{\n\t\t\"name\": \"Leonard Cohen\",\n\t\t\"lastSeen\": 1478476800,\n\t\t\"loggedOut\": true\n\t}\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.521Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":79,"totalLines":5752,"estimatedTokens":53860}}497{"id":"doc-create_a_redis_software_database_docs-7eba791c","source":"documentation","title":"Create a Redis Software database | Docs","url":"https://redis.io/docs/latest/operate/rs/databases/create/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Create a database with Redis Software.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Create a Redis Software database\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nPOST https://<host>:<port>/v1/bdbs\n{\n \"name\": \"test-database\",\n \"type\": \"redis\",\n \"memory_size\": 1073741824,\n // Additional fields\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.531Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":16,"estimatedTokens":142}}498{"id":"doc-semantic_caching_with_langcache_on_redis_cloud_d-4147b06a","source":"documentation","title":"Semantic caching with LangCache on Redis Cloud | Docs","url":"https://redis.io/docs/latest/operate/iris/langcache/","text":"{\"categories\":[\"docs\",\"operate\",\"iris\"],\"description\":\"Store LLM responses for AI applications in Redis Cloud.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Semantic caching with LangCache on Redis Cloud\",\"tableOfContents\":{\"sections\":[{\"id\":\"llm-cost-reduction-with-langcache\",\"title\":\"LLM cost reduction with LangCache\"},{\"id\":\"get-started-with-langcache-on-redis-cloud\",\"title\":\"Get started with LangCache on Redis Cloud\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```bash\nEst. monthly savings with LangCache = \n (Monthly output token costs) × (Cache hit rate)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.532Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":11,"estimatedTokens":184}}499{"id":"doc-redis_arrays_docs-919eeb8d","source":"documentation","title":"Redis arrays | Docs","url":"https://redis.io/docs/latest/develop/data-types/arrays/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"kubernetes\",\"clients\"],\"description\":\"Introduction to Redis arrays\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis arrays\",\"tableOfContents\":{\"sections\":[{\"id\":\"basic-usage\",\"title\":\"Basic usage\"},{\"id\":\"array-length-vs-element-count\",\"title\":\"Array length vs. element count\"},{\"id\":\"reading-ranges\",\"title\":\"Reading ranges\"},{\"id\":\"sequential-insertion\",\"title\":\"Sequential insertion\"},{\"id\":\"ring-buffer-mode\",\"title\":\"Ring buffer mode\"},{\"id\":\"aggregate-operations\",\"title\":\"Aggregate operations\"},{\"id\":\"searching-elements\",\"title\":\"Searching elements\"},{\"id\":\"deleting-elements\",\"title\":\"Deleting elements\"},{\"id\":\"introspection\",\"title\":\"Introspection\"},{\"id\":\"configuration\",\"title\":\"Configuration\"},{\"id\":\"performance\",\"title\":\"Performance\"},{\"id\":\"alternatives\",\"title\":\"Alternatives\"},{\"id\":\"limits\",\"title\":\"Limits\"}]},\"codeExamples\":[{\"codetabsId\":\"arrays_tutorial-steparset_arget\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARSET\"},{\"acl_categories\":[\"@read\",\"@array\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"ARGET\"}],\"description\":\"Write contiguous values with ARSET and read a single index with ARGET; an unset index returns nil\",\"difficulty\":\"beginner\",\"id\":\"arset_arget\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparset_arget\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparset_arget\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparset_arget\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparset_arget\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparset_arget\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparset_arget\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparset_arget\"}]},{\"codetabsId\":\"arrays_tutorial-steparmset_armget\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARMSET\"},{\"acl_categories\":[\"@read\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARMGET\"}],\"description\":\"Write to arbitrary, non-contiguous indexes with ARMSET and read several indexes in one round trip with ARMGET\",\"difficulty\":\"beginner\",\"id\":\"armset_armget\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparmset_armget\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparmset_armget\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparmset_armget\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparmset_armget\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparmset_armget\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparmset_armget\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparmset_armget\"}]},{\"codetabsId\":\"arrays_tutorial-steplen_count\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARSET\"},{\"acl_categories\":[\"@read\",\"@array\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"ARLEN\"},{\"acl_categories\":[\"@read\",\"@array\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"ARCOUNT\"}],\"description\":\"Compare the logical length (ARLEN) with the number of non-empty elements (ARCOUNT) for a sparse array\",\"difficulty\":\"beginner\",\"id\":\"len_count\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steplen_count\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steplen_count\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steplen_count\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steplen_count\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steplen_count\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steplen_count\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steplen_count\"}]},{\"codetabsId\":\"arrays_tutorial-stepargetrange\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARMSET\"},{\"acl_categories\":[\"@read\",\"@array\",\"@slow\"],\"complexity\":\"O(N)\",\"name\":\"ARGETRANGE\"}],\"description\":\"Read every position in a range with ARGETRANGE, including empty slots returned as nil\",\"difficulty\":\"beginner\",\"id\":\"argetrange\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-stepargetrange\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-stepargetrange\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-stepargetrange\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-stepargetrange\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-stepargetrange\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-stepargetrange\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-stepargetrange\"}]},{\"buildsUpon\":[\"argetrange\"],\"codetabsId\":\"arrays_tutorial-steparscan\",\"commands\":[{\"acl_categories\":[\"@read\",\"@array\",\"@slow\"],\"complexity\":\"O(P)\",\"name\":\"ARSCAN\"}],\"description\":\"Iterate only the elements that exist with ARSCAN, retrieving each index alongside its value\",\"difficulty\":\"beginner\",\"id\":\"arscan\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparscan\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparscan\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparscan\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparscan\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparscan\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparscan\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparscan\"}]},{\"codetabsId\":\"arrays_tutorial-steparinsert\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARINSERT\"},{\"acl_categories\":[\"@read\",\"@array\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"ARNEXT\"},{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"ARSEEK\"}],\"description\":\"Append values with ARINSERT using an auto-advancing cursor, inspect it with ARNEXT, and reposition it with ARSEEK\",\"difficulty\":\"beginner\",\"id\":\"arinsert\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparinsert\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparinsert\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparinsert\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparinsert\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparinsert\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparinsert\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparinsert\"}]},{\"codetabsId\":\"arrays_tutorial-steparring\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@slow\"],\"complexity\":\"O(M)\",\"name\":\"ARRING\"},{\"acl_categories\":[\"@read\",\"@array\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"ARGET\"}],\"description\":\"Use ARRING to maintain a fixed-size circular buffer that wraps and overwrites the oldest entry once full\",\"difficulty\":\"beginner\",\"id\":\"arring\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparring\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparring\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparring\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparring\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparring\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparring\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparring\"}]},{\"buildsUpon\":[\"arring\"],\"codetabsId\":\"arrays_tutorial-steparlastitems\",\"commands\":[{\"acl_categories\":[\"@read\",\"@array\",\"@slow\"],\"complexity\":\"O(N)\",\"name\":\"ARLASTITEMS\"}],\"description\":\"Retrieve the N most recently inserted elements with ARLASTITEMS, optionally reversing the order with REV\",\"difficulty\":\"beginner\",\"id\":\"arlastitems\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparlastitems\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparlastitems\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparlastitems\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparlastitems\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparlastitems\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparlastitems\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparlastitems\"}]},{\"codetabsId\":\"arrays_tutorial-steparop\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARMSET\"},{\"acl_categories\":[\"@read\",\"@array\",\"@slow\"],\"complexity\":\"O(P)\",\"name\":\"AROP\"}],\"description\":\"Run a single-pass aggregate over a contiguous range with AROP, such as SUM, MAX, or a MATCH count\",\"difficulty\":\"beginner\",\"id\":\"arop\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-steparop\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-steparop\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-steparop\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-steparop\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-steparop\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-steparop\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-steparop\"}]},{\"codetabsId\":\"arrays_tutorial-stepargrep\",\"commands\":[{\"acl_categories\":[\"@keyspace\",\"@write\",\"@slow\"],\"complexity\":\"O(N)\",\"name\":\"DEL\"},{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARMSET\"},{\"acl_categories\":[\"@read\",\"@array\",\"@slow\"],\"complexity\":\"O(P * C)\",\"name\":\"ARGREP\"}],\"description\":\"Find elements matching textual predicates (EXACT, MATCH, GLOB, RE) with ARGREP, combined with AND or OR\",\"difficulty\":\"beginner\",\"id\":\"argrep\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-stepargrep\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-stepargrep\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-stepargrep\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-stepargrep\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-stepargrep\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-stepargrep\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-stepargrep\"}]},{\"buildsUpon\":[\"arop\"],\"codetabsId\":\"arrays_tutorial-stepardel\",\"commands\":[{\"acl_categories\":[\"@write\",\"@array\",\"@fast\"],\"complexity\":\"O(N)\",\"name\":\"ARDEL\"},{\"acl_categories\":[\"@write\",\"@array\",\"@slow\"],\"name\":\"ARDELRANGE\"}],\"description\":\"Delete elements by index with ARDEL or remove a whole index range with ARDELRANGE\",\"difficulty\":\"beginner\",\"id\":\"ardel\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_arrays_tutorial-stepardel\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_arrays_tutorial-stepardel\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_arrays_tutorial-stepardel\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_arrays_tutorial-stepardel\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_arrays_tutorial-stepardel\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_arrays_tutorial-stepardel\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_arrays_tutorial-stepardel\"}]}]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```python\nres1 = r.arset(\"events:1\", 0, \"login\", \"click\", \"purchase\")\nprint(res1)\n# >>> 3\n\nres2 = r.arget(\"events:1\", 0)\nprint(res2)\n# >>> login\n\nres3 = r.arget(\"events:1\", 999)\nprint(res3)\n# >>> None\n```\n\nExample:\n```python\nimport redis\nfrom redis.commands.core import (\n ArrayAggregateOperations,\n ArrayPredicateType,\n ArrayPredicateCombinator,\n)\n\nr = redis.Redis(decode_responses=True)\n\n\nres1 = r.arset(\"events:1\", 0, \"login\", \"click\", \"purchase\")\nprint(res1)\n# >>> 3\n\nres2 = r.arget(\"events:1\", 0)\nprint(res2)\n# >>> login\n\nres3 = r.arget(\"events:1\", 999)\nprint(res3)\n# >>> None\n\n\n\nres4 = r.armset(\"metrics\", {0: \"10\", 5: \"20\", 100: \"30\"})\nprint(res4)\n# >>> 3\n\nres5 = r.armget(\"metrics\", 0, 5, 100, 999)\nprint(res5)\n# >>> ['10', '20', '30', None]\n\n\n\nres6 = r.arset(\"sparse\", 0, \"a\")\nprint(res6)\n# >>> 1\n\nres7 = r.arset(\"sparse\", 1000000, \"b\")\nprint(res7)\n# >>> 1\n\nres8 = r.arlen(\"sparse\")\nprint(res8)\n# >>> 1000001\n\nres9 = r.arcount(\"sparse\")\nprint(res9)\n# >>> 2\n\n\n\nres10 = r.armset(\"seq\", {0: \"a\", 1: \"b\", 3: \"d\"})\nprint(res10)\n# >>> 3\n\nres11 = r.argetrange(\"seq\", 0, 3)\nprint(res11)\n# >>> ['a', 'b', None, 'd']\n\n\n\nres12 = r.armset(\"seq\", {0: \"a\", 1: \"b\", 3: \"d\"})\nprint(res12)\n# >>> 3\n\nres13 = r.arscan(\"seq\", 0, 3)\nfor index, value in res13:\n print(f\"{index} -> {value}\")\n# >>> 0 -> a\n# >>> 1 -> b\n# >>> 3 -> d\n\n\n\nres14 = r.arinsert(\"log\", \"event1\")\nprint(res14)\n# >>> 0\n\nres15 = r.arinsert(\"log\", \"event2\")\nprint(res15)\n# >>> 1\n\nres16 = r.arnext(\"log\")\nprint(res16)\n# >>> 2\n\nres17 = r.arseek(\"log\", 10)\nprint(res17)\n# >>> 1\n\nres18 = r.arinsert(\"log\", \"event3\")\nprint(res18)\n# >>> 10\n\n\n\nres19 = r.arring(\"readings\", 3, \"v0\")\nprint(res19)\n# >>> 0\n\nres20 = r.arring(\"readings\", 3, \"v1\")\nprint(res20)\n# >>> 1\n\nres21 = r.arring(\"readings\", 3, \"v2\")\nprint(res21)\n# >>> 2\n\nres22 = r.arring(\"readings\", 3, \"v3\")\nprint(res22)\n# >>> 0\n\nres23 = r.arget(\"readings\", 0)\nprint(res23)\n# >>> v3\n\n\n\nr.arring(\"readings\", 3, \"v0\")\nr.arring(\"readings\", 3, \"v1\")\nr.arring(\"readings\", 3, \"v2\")\nr.arring(\"readings\", 3, \"v3\")\n\nres24 = r.arlastitems(\"readings\", 3)\nprint(res24)\n# >>> ['v1', 'v2', 'v3']\n\nres25 = r.arlastitems(\"readings\", 3, rev=True)\nprint(res25)\n# >>> ['v3', 'v2', 'v1']\n\n\n\nres26 = r.armset(\"scores\", {0: \"10\", 1: \"20\", 2: \"30\"})\nprint(res26)\n# >>> 3\n\nres27 = r.arop(\"scores\", 0, 2, ArrayAggregateOperations.SUM)\nprint(res27)\n# >>> 60\n\nres28 = r.arop(\"scores\", 0, 2, ArrayAggregateOperations.MAX)\nprint(res28)\n# >>> 30\n\nres29 = r.arop(\"scores\", 0, 2, ArrayAggregateOperations.MATCH, value=\"10\")\nprint(res29)\n# >>> 1\n\n\n\nres30 = r.armset(\n \"log\",\n {\n 0: \"boot: ok\",\n 1: \"warn: disk\",\n 2: \"ERROR: cpu\",\n 3: \"info: ready\",\n 4: \"error: net\",\n },\n)\nprint(res30)\n# >>> 5\n\nres31 = r.argrep(\n \"log\",\n 0,\n 4,\n [(ArrayPredicateType.MATCH, \"error\")],\n nocase=True,\n)\nprint(res31)\n# >>> [2, 4]\n\nres32 = r.argrep(\n \"log\",\n 0,\n 4,\n [\n (ArrayPredicateType.GLOB, \"warn:*\"),\n (ArrayPredicateType.GLOB, \"error:*\"),\n ],\n combinator=ArrayPredicateCombinator.OR,\n withvalues=True,\n)\nprint(res32)\n# >>> [[1, 'warn: disk'], [4, 'error: net']]\n\n\n\nres33 = r.armset(\"scores\", {0: \"10\", 1: \"20\", 2: \"30\"})\nprint(res33)\n# >>> 3\n\nres34 = r.ardel(\"scores\", 1)\nprint(res34)\n# >>> 1\n\nres35 = r.ardelrange(\"scores\", (0, 2))\nprint(res35)\n# >>> 2\n```\n\nExample:\n```node\nconst setResult = await client.arSet('events:1', 0, ['login', 'click', 'purchase']);\nconsole.log(setResult); // >>> 3\n\nconst getResult = await client.arGet('events:1', 0);\nconsole.log(getResult); // >>> login\n\nconst missingResult = await client.arGet('events:1', 999);\nconsole.log(missingResult); // >>> null\n```\n\nExample:\n```node\nimport assert from 'node:assert';\nimport { createClient } from 'redis';\n\nconst client = createClient();\nawait client.connect().catch(console.error);\n\n\nconst setResult = await client.arSet('events:1', 0, ['login', 'click', 'purchase']);\nconsole.log(setResult); // >>> 3\n\nconst getResult = await client.arGet('events:1', 0);\nconsole.log(getResult); // >>> login\n\nconst missingResult = await client.arGet('events:1', 999);\nconsole.log(missingResult); // >>> null\n\n\n\nconst mSetResult = await client.arMSet('metrics', { 0: '10', 5: '20', 100: '30' });\nconsole.log(mSetResult); // >>> 3\n\nconst mGetResult = await client.arMGet('metrics', [0, 5, 100, 999]);\nconsole.log(mGetResult); // >>> [ '10', '20', '30', null ]\n\n\n\nconst setA = await client.arSet('sparse', 0, 'a');\nconsole.log(setA); // >>> 1\n\nconst setB = await client.arSet('sparse', 1000000, 'b');\nconsole.log(setB); // >>> 1\n\nconst lenResult = await client.arLen('sparse');\nconsole.log(lenResult); // >>> 1000001\n\nconst countResult = await client.arCount('sparse');\nconsole.log(countResult); // >>> 2\n\n\n\nconst rangeSetResult = await client.arMSet('seq', { 0: 'a', 1: 'b', 3: 'd' });\nconsole.log(rangeSetResult); // >>> 3\n\nconst rangeResult = await client.arGetRange('seq', 0, 3);\nconsole.log(rangeResult); // >>> [ 'a', 'b', null, 'd' ]\n\n\n\nconst scanSetResult = await client.arMSet('seq', { 0: 'a', 1: 'b', 3: 'd' });\nconsole.log(scanSetResult); // >>> 3\n\nconst scanResult = await client.arScan('seq', 0, 3);\nfor (const { index, value } of scanResult) {\n console.log(`${index} -> ${value}`);\n}\n// >>> 0 -> a\n// >>> 1 -> b\n// >>> 3 -> d\n\n\n\nconst insert1 = await client.arInsert('log', 'event1');\nconsole.log(insert1); // >>> 0\n\nconst insert2 = await client.arInsert('log', 'event2');\nconsole.log(insert2); // >>> 1\n\nconst nextResult = await client.arNext('log');\nconsole.log(nextResult); // >>> 2\n\nconst seekResult = await client.arSeek('log', 10);\nconsole.log(seekResult); // >>> 1\n\nconst insert3 = await client.arInsert('log', 'event3');\nconsole.log(insert3); // >>> 10\n\n\n\nconst ring0 = await client.arRing('readings', 3, 'v0');\nconsole.log(ring0); // >>> 0\n\nconst ring1 = await client.arRing('readings', 3, 'v1');\nconsole.log(ring1); // >>> 1\n\nconst ring2 = await client.arRing('readings', 3, 'v2');\nconsole.log(ring2); // >>> 2\n\nconst ring3 = await client.arRing('readings', 3, 'v3');\nconsole.log(ring3); // >>> 0\n\nconst ringGet = await client.arGet('readings', 0);\nconsole.log(ringGet); // >>> v3\n\n\n\nawait client.arRing('readings', 3, 'v0');\nawait client.arRing('readings', 3, 'v1');\nawait client.arRing('readings', 3, 'v2');\nawait client.arRing('readings', 3, 'v3');\n\nconst lastItems = await client.arLastItems('readings', 3);\nconsole.log(lastItems); // >>> [ 'v1', 'v2', 'v3' ]\n\nconst lastItemsRev = await client.arLastItems('readings', 3, { REV: true });\nconsole.log(lastItemsRev); // >>> [ 'v3', 'v2', 'v1' ]\n\n\n\nconst opSetResult = await client.arMSet('scores', { 0: '10', 1: '20', 2: '30' });\nconsole.log(opSetResult); // >>> 3\n\nconst sumResult = await client.arOp('scores', 0, 2, 'SUM');\nconsole.log(sumResult); // >>> 60\n\nconst maxResult = await client.arOp('scores', 0, 2, 'MAX');\nconsole.log(maxResult); // >>> 30\n\nconst matchResult = await client.arOp('scores', 0, 2, 'MATCH', '10');\nconsole.log(matchResult); // >>> 1\n\n\n\nconst grepSetResult = await client.arMSet('log', {\n 0: 'boot: ok',\n 1: 'warn: disk',\n 2: 'ERROR: cpu',\n 3: 'info: ready',\n 4: 'error: net'\n});\nconsole.log(grepSetResult); // >>> 5\n\nconst grepResult = await client.arGrep(\n 'log',\n 0,\n 4,\n [['MATCH', 'error']],\n { NOCASE: true }\n);\nconsole.log(grepResult); // >>> [ 2, 4 ]\n\nconst grepWithValues = await client.arGrepWithValues(\n 'log',\n 0,\n 4,\n [['GLOB', 'warn:*'], ['GLOB', 'error:*']],\n { COMBINATOR: 'OR' }\n);\nfor (const { index, value } of grepWithValues) {\n console.log(`${index} -> ${value}`);\n}\n// >>> 1 -> warn: disk\n// >>> 4 -> error: net\n\n\n\nconst delSetResult = await client.arMSet('scores', { 0: '10', 1: '20', 2: '30' });\nconsole.log(delSetResult); // >>> 3\n\nconst delResult = await client.arDel('scores', 1);\nconsole.log(delResult); // >>> 1\n\nconst delRangeResult = await client.arDelRange('scores', [[0, 2]]);\nconsole.log(delRangeResult); // >>> 2\n\n\nawait client.close();\n```\n\nExample:\n```java\nCompletableFuture<Void> arsetArgetExample = asyncCommands\n .arset(\"events:1\", 0, \"login\", \"click\", \"purchase\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.arget(\"events:1\", 0);\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> login\n return asyncCommands.arget(\"events:1\", 999);\n })\n .thenAccept(res3 -> {\n System.out.println(res3);\n // >>> null\n })\n .toCompletableFuture();\n\n arsetArgetExample.join();\n```\n\nExample:\n```java\npackage io.redis.examples.async;\n\nimport io.lettuce.core.RedisClient;\nimport io.lettuce.core.api.StatefulRedisConnection;\nimport io.lettuce.core.api.async.RedisAsyncCommands;\nimport io.lettuce.core.array.ArAggregateType;\nimport io.lettuce.core.array.ArGrepArgs;\nimport io.lettuce.core.array.IndexedValue;\n\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.Map;\nimport java.util.concurrent.CompletableFuture;\n\n\npublic class ArraysExample {\n\n public void run() {\n RedisClient redisClient = RedisClient.create(\"redis://localhost:6379\");\n\n try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {\n RedisAsyncCommands<String, String> asyncCommands = connection.async();\n\n CompletableFuture<Void> arsetArgetExample = asyncCommands\n .arset(\"events:1\", 0, \"login\", \"click\", \"purchase\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.arget(\"events:1\", 0);\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> login\n return asyncCommands.arget(\"events:1\", 999);\n })\n .thenAccept(res3 -> {\n System.out.println(res3);\n // >>> null\n })\n .toCompletableFuture();\n\n arsetArgetExample.join();\n\n Map<Long, String> metricsValues = new HashMap<>();\n metricsValues.put(0L, \"10\");\n metricsValues.put(5L, \"20\");\n metricsValues.put(100L, \"30\");\n\n CompletableFuture<Void> armsetArmgetExample = asyncCommands\n .armset(\"metrics\", metricsValues)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.armget(\"metrics\", 0, 5, 100, 999);\n })\n .thenAccept(res2 -> {\n System.out.println(res2);\n // >>> [10, 20, 30, null]\n })\n .toCompletableFuture();\n\n armsetArmgetExample.join();\n\n CompletableFuture<Void> lenCountExample = asyncCommands\n .arset(\"sparse\", 0, \"a\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 1\n return asyncCommands.arset(\"sparse\", 1000000, \"b\");\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.arlen(\"sparse\");\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 1000001\n return asyncCommands.arcount(\"sparse\");\n })\n .thenAccept(res4 -> {\n System.out.println(res4);\n // >>> 2\n })\n .toCompletableFuture();\n\n lenCountExample.join();\n\n Map<Long, String> seqRangeValues = new HashMap<>();\n seqRangeValues.put(0L, \"a\");\n seqRangeValues.put(1L, \"b\");\n seqRangeValues.put(3L, \"d\");\n\n CompletableFuture<Void> argetrangeExample = asyncCommands\n .armset(\"seq\", seqRangeValues)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.argetrange(\"seq\", 0, 3);\n })\n .thenAccept(res2 -> {\n System.out.println(res2);\n // >>> [a, b, null, d]\n })\n .toCompletableFuture();\n\n argetrangeExample.join();\n\n Map<Long, String> seqScanValues = new HashMap<>();\n seqScanValues.put(0L, \"a\");\n seqScanValues.put(1L, \"b\");\n seqScanValues.put(3L, \"d\");\n\n CompletableFuture<Void> arscanExample = asyncCommands\n .armset(\"seq\", seqScanValues)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.arscan(\"seq\", 0, 3);\n })\n .thenAccept(res2 -> {\n for (IndexedValue<String> pair : res2) {\n System.out.println(pair.getIndex() + \" -> \" + pair.getValue());\n }\n // >>> 0 -> a\n // >>> 1 -> b\n // >>> 3 -> d\n })\n .toCompletableFuture();\n\n arscanExample.join();\n\n CompletableFuture<Void> arinsertExample = asyncCommands\n .arinsert(\"log\", \"event1\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 0\n return asyncCommands.arinsert(\"log\", \"event2\");\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.arnext(\"log\");\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 2\n return asyncCommands.arseek(\"log\", 10);\n })\n .thenCompose(res4 -> {\n System.out.println(res4);\n // >>> 1\n return asyncCommands.arinsert(\"log\", \"event3\");\n })\n .thenAccept(res5 -> {\n System.out.println(res5);\n // >>> 10\n })\n .toCompletableFuture();\n\n arinsertExample.join();\n\n CompletableFuture<Void> arringExample = asyncCommands\n .arring(\"readings\", 3, \"v0\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 0\n return asyncCommands.arring(\"readings\", 3, \"v1\");\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.arring(\"readings\", 3, \"v2\");\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 2\n return asyncCommands.arring(\"readings\", 3, \"v3\");\n })\n .thenCompose(res4 -> {\n System.out.println(res4);\n // >>> 0\n return asyncCommands.arget(\"readings\", 0);\n })\n .thenAccept(res5 -> {\n System.out.println(res5);\n // >>> v3\n })\n .toCompletableFuture();\n\n arringExample.join();\n\n CompletableFuture<Void> arlastitemsExample = asyncCommands\n .arring(\"readings\", 3, \"v0\")\n .thenCompose(res1 -> asyncCommands.arring(\"readings\", 3, \"v1\"))\n .thenCompose(res2 -> asyncCommands.arring(\"readings\", 3, \"v2\"))\n .thenCompose(res3 -> asyncCommands.arring(\"readings\", 3, \"v3\"))\n .thenCompose(res4 -> asyncCommands.arlastitems(\"readings\", 3))\n .thenCompose(res5 -> {\n System.out.println(res5);\n // >>> [v1, v2, v3]\n return asyncCommands.arlastitems(\"readings\", 3, true);\n })\n .thenAccept(res6 -> {\n System.out.println(res6);\n // >>> [v3, v2, v1]\n })\n .toCompletableFuture();\n\n arlastitemsExample.join();\n\n Map<Long, String> aropScores = new HashMap<>();\n aropScores.put(0L, \"10\");\n aropScores.put(1L, \"20\");\n aropScores.put(2L, \"30\");\n\n CompletableFuture<Void> aropExample = asyncCommands\n .armset(\"scores\", aropScores)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.SUM);\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 60\n return asyncCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.MAX);\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 30\n return asyncCommands.aropCount(\"scores\", 0, 2, \"10\");\n })\n .thenAccept(res4 -> {\n System.out.println(res4);\n // >>> 1\n })\n .toCompletableFuture();\n\n aropExample.join();\n\n Map<Long, String> argrepLog = new HashMap<>();\n argrepLog.put(0L, \"boot: ok\");\n argrepLog.put(1L, \"warn: disk\");\n argrepLog.put(2L, \"ERROR: cpu\");\n argrepLog.put(3L, \"info: ready\");\n argrepLog.put(4L, \"error: net\");\n\n CompletableFuture<Void> argrepExample = asyncCommands\n .armset(\"log\", argrepLog)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 5\n return asyncCommands.argrep(\"log\",\n ArGrepArgs.range(0, 4).match(\"error\").nocase());\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> [2, 4]\n return asyncCommands.argrepWithValues(\"log\",\n ArGrepArgs.range(0, 4).glob(\"warn:*\").glob(\"error:*\"));\n })\n .thenAccept(res3 -> {\n for (IndexedValue<String> pair : res3) {\n System.out.println(pair.getIndex() + \" -> \" + pair.getValue());\n }\n // >>> 1 -> warn: disk\n // >>> 4 -> error: net\n })\n .toCompletableFuture();\n\n argrepExample.join();\n\n Map<Long, String> ardelScores = new HashMap<>();\n ardelScores.put(0L, \"10\");\n ardelScores.put(1L, \"20\");\n ardelScores.put(2L, \"30\");\n\n CompletableFuture<Void> ardelExample = asyncCommands\n .armset(\"scores\", ardelScores)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.ardel(\"scores\", 1);\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.ardelrange(\"scores\", 0, 2);\n })\n .thenAccept(res3 -> {\n System.out.println(res3);\n // >>> 2\n })\n .toCompletableFuture();\n\n ardelExample.join();\n\n } finally {\n redisClient.shutdown();\n }\n }\n}\n```\n\nExample:\n```java\nMono<Long> arsetArget1 = reactiveCommands.arset(\"events:1\", 0, \"login\", \"click\", \"purchase\")\n .doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n arsetArget1.block();\n\n Mono<String> arsetArget2 = reactiveCommands.arget(\"events:1\", 0).doOnNext(result -> {\n System.out.println(result); // >>> login\n });\n\n arsetArget2.block();\n\n Mono<Optional<String>> arsetArget3 = reactiveCommands.arget(\"events:1\", 999)\n .map(Optional::of)\n .defaultIfEmpty(Optional.empty())\n .doOnNext(result -> {\n System.out.println(result.orElse(null)); // >>> null\n });\n\n arsetArget3.block();\n```\n\nExample:\n```java\npackage io.redis.examples.reactive;\n\nimport io.lettuce.core.*;\nimport io.lettuce.core.api.reactive.RedisReactiveCommands;\nimport io.lettuce.core.api.StatefulRedisConnection;\nimport io.lettuce.core.array.ArAggregateType;\nimport io.lettuce.core.array.ArGrepArgs;\nimport io.lettuce.core.array.IndexedValue;\n\nimport reactor.core.publisher.Flux;\nimport reactor.core.publisher.Mono;\n\nimport java.util.*;\nimport java.util.stream.Collectors;\n\npublic class ArraysExample {\n\n public void run() {\n RedisClient redisClient = RedisClient.create(\"redis://localhost:6379\");\n\n try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {\n RedisReactiveCommands<String, String> reactiveCommands = connection.reactive();\n\n Mono<Long> arsetArget1 = reactiveCommands.arset(\"events:1\", 0, \"login\", \"click\", \"purchase\")\n .doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n arsetArget1.block();\n\n Mono<String> arsetArget2 = reactiveCommands.arget(\"events:1\", 0).doOnNext(result -> {\n System.out.println(result); // >>> login\n });\n\n arsetArget2.block();\n\n Mono<Optional<String>> arsetArget3 = reactiveCommands.arget(\"events:1\", 999)\n .map(Optional::of)\n .defaultIfEmpty(Optional.empty())\n .doOnNext(result -> {\n System.out.println(result.orElse(null)); // >>> null\n });\n\n arsetArget3.block();\n\n Map<Long, String> armsetParams = new HashMap<>();\n armsetParams.put(0L, \"10\");\n armsetParams.put(5L, \"20\");\n armsetParams.put(100L, \"30\");\n\n Mono<Long> armsetArmget1 = reactiveCommands.armset(\"metrics\", armsetParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n armsetArmget1.block();\n\n Mono<List<String>> armsetArmget2 = reactiveCommands.armget(\"metrics\", 0, 5, 100, 999)\n .collectList()\n .map(values -> values.stream()\n .map(value -> value.getValueOrElse(null))\n .collect(Collectors.toList()))\n .doOnNext(result -> {\n System.out.println(result); // >>> [10, 20, 30, null]\n });\n\n armsetArmget2.block();\n\n Mono<Long> lenCount1 = reactiveCommands.arset(\"sparse\", 0, \"a\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n lenCount1.block();\n\n Mono<Long> lenCount2 = reactiveCommands.arset(\"sparse\", 1000000, \"b\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n lenCount2.block();\n\n Mono<Long> lenCount3 = reactiveCommands.arlen(\"sparse\").doOnNext(result -> {\n System.out.println(result); // >>> 1000001\n });\n\n lenCount3.block();\n\n Mono<Long> lenCount4 = reactiveCommands.arcount(\"sparse\").doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n lenCount4.block();\n\n Map<Long, String> argetrangeParams = new HashMap<>();\n argetrangeParams.put(0L, \"a\");\n argetrangeParams.put(1L, \"b\");\n argetrangeParams.put(3L, \"d\");\n\n Mono<Long> argetrange1 = reactiveCommands.armset(\"seq\", argetrangeParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n argetrange1.block();\n\n Mono<List<String>> argetrange2 = reactiveCommands.argetrange(\"seq\", 0, 3)\n .collectList()\n .map(values -> values.stream()\n .map(value -> value.getValueOrElse(null))\n .collect(Collectors.toList()))\n .doOnNext(result -> {\n System.out.println(result); // >>> [a, b, null, d]\n });\n\n argetrange2.block();\n\n Map<Long, String> arscanParams = new HashMap<>();\n arscanParams.put(0L, \"a\");\n arscanParams.put(1L, \"b\");\n arscanParams.put(3L, \"d\");\n\n Mono<Long> arscan1 = reactiveCommands.armset(\"seq\", arscanParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n arscan1.block();\n\n Mono<List<IndexedValue<String>>> arscan2 = reactiveCommands.arscan(\"seq\", 0, 3)\n .doOnNext(entry -> {\n System.out.println(entry.getIndex() + \" -> \" + entry.getValue());\n // >>> 0 -> a\n // >>> 1 -> b\n // >>> 3 -> d\n })\n .collectList()\n ;\n\n arscan2.block();\n\n Mono<Long> arinsert1 = reactiveCommands.arinsert(\"log\", \"event1\").doOnNext(result -> {\n System.out.println(result); // >>> 0\n });\n\n arinsert1.block();\n\n Mono<Long> arinsert2 = reactiveCommands.arinsert(\"log\", \"event2\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arinsert2.block();\n\n Mono<Long> arinsert3 = reactiveCommands.arnext(\"log\").doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n arinsert3.block();\n\n Mono<Long> arinsert4 = reactiveCommands.arseek(\"log\", 10).doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arinsert4.block();\n\n Mono<Long> arinsert5 = reactiveCommands.arinsert(\"log\", \"event3\").doOnNext(result -> {\n System.out.println(result); // >>> 10\n });\n\n arinsert5.block();\n\n Mono<Long> arring1 = reactiveCommands.arring(\"readings\", 3, \"v0\").doOnNext(result -> {\n System.out.println(result); // >>> 0\n });\n\n arring1.block();\n\n Mono<Long> arring2 = reactiveCommands.arring(\"readings\", 3, \"v1\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arring2.block();\n\n Mono<Long> arring3 = reactiveCommands.arring(\"readings\", 3, \"v2\").doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n arring3.block();\n\n Mono<Long> arring4 = reactiveCommands.arring(\"readings\", 3, \"v3\").doOnNext(result -> {\n System.out.println(result); // >>> 0\n });\n\n arring4.block();\n\n Mono<String> arring5 = reactiveCommands.arget(\"readings\", 0).doOnNext(result -> {\n System.out.println(result); // >>> v3\n });\n\n arring5.block();\n\n // Set up the ring: insert v0, v1, v2, v3 into a size-3 ring.\n reactiveCommands.arring(\"readings\", 3, \"v0\").block();\n reactiveCommands.arring(\"readings\", 3, \"v1\").block();\n reactiveCommands.arring(\"readings\", 3, \"v2\").block();\n reactiveCommands.arring(\"readings\", 3, \"v3\").block();\n\n Mono<List<String>> arlastitems1 = reactiveCommands.arlastitems(\"readings\", 3).collectList()\n .doOnNext(result -> {\n System.out.println(result); // >>> [v1, v2, v3]\n });\n\n arlastitems1.block();\n\n Mono<List<String>> arlastitems2 = reactiveCommands.arlastitems(\"readings\", 3, true).collectList()\n .doOnNext(result -> {\n System.out.println(result); // >>> [v3, v2, v1]\n });\n\n arlastitems2.block();\n\n Map<Long, String> aropParams = new HashMap<>();\n aropParams.put(0L, \"10\");\n aropParams.put(1L, \"20\");\n aropParams.put(2L, \"30\");\n\n Mono<Long> arop1 = reactiveCommands.armset(\"scores\", aropParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n arop1.block();\n\n Mono<String> arop2 = reactiveCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.SUM)\n .doOnNext(result -> {\n System.out.println(result); // >>> 60\n });\n\n arop2.block();\n\n Mono<String> arop3 = reactiveCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.MAX)\n .doOnNext(result -> {\n System.out.println(result); // >>> 30\n });\n\n arop3.block();\n\n Mono<Long> arop4 = reactiveCommands.aropCount(\"scores\", 0, 2, \"10\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arop4.block();\n\n Map<Long, String> argrepParams = new HashMap<>();\n argrepParams.put(0L, \"boot: ok\");\n argrepParams.put(1L, \"warn: disk\");\n argrepParams.put(2L, \"ERROR: cpu\");\n argrepParams.put(3L, \"info: ready\");\n argrepParams.put(4L, \"error: net\");\n\n Mono<Long> argrep1 = reactiveCommands.armset(\"log\", argrepParams).doOnNext(result -> {\n System.out.println(result); // >>> 5\n });\n\n argrep1.block();\n\n Mono<List<Long>> argrep2 = reactiveCommands.argrep(\"log\", ArGrepArgs.range(0, 4).match(\"error\").nocase())\n .collectList()\n .doOnNext(result -> {\n System.out.println(result); // >>> [2, 4]\n });\n\n argrep2.block();\n\n Mono<List<IndexedValue<String>>> argrep3 = reactiveCommands\n .argrepWithValues(\"log\", ArGrepArgs.range(0, 4).glob(\"warn:*\").glob(\"error:*\"))\n .doOnNext(entry -> {\n System.out.println(entry.getIndex() + \" -> \" + entry.getValue());\n // >>> 1 -> warn: disk\n // >>> 4 -> error: net\n })\n .collectList()\n ;\n\n argrep3.block();\n\n Map<Long, String> ardelParams = new HashMap<>();\n ardelParams.put(0L, \"10\");\n ardelParams.put(1L, \"20\");\n ardelParams.put(2L, \"30\");\n\n Mono<Long> ardel1 = reactiveCommands.armset(\"scores\", ardelParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n ardel1.block();\n\n Mono<Long> ardel2 = reactiveCommands.ardel(\"scores\", 1).doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n ardel2.block();\n\n Mono<Long> ardel3 = reactiveCommands.ardelrange(\"scores\", 0, 2).doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n ardel3.block();\n } finally {\n redisClient.shutdown();\n }\n }\n\n}\n```\n\nExample:\n```go\nsetRes, err := rdb.ARSet(ctx, \"events:1\", 0, \"login\", \"click\", \"purchase\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(setRes) // >>> 3\n\n\tgetRes, err := rdb.ARGet(ctx, \"events:1\", 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(getRes) // >>> login\n\n\tmissing, err := rdb.ARGet(ctx, \"events:1\", 999).Result()\n\n\tif err == redis.Nil {\n\t\tfmt.Println(\"<nil>\") // >>> <nil>\n\t} else if err != nil {\n\t\tpanic(err)\n\t} else {\n\t\tfmt.Println(missing)\n\t}\n```\n\nExample:\n```go\npackage example_commands_test\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/redis/go-redis/v9\"\n)\n\n\nfunc ExampleClient_arrays_arset_arget() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tsetRes, err := rdb.ARSet(ctx, \"events:1\", 0, \"login\", \"click\", \"purchase\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(setRes) // >>> 3\n\n\tgetRes, err := rdb.ARGet(ctx, \"events:1\", 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(getRes) // >>> login\n\n\tmissing, err := rdb.ARGet(ctx, \"events:1\", 999).Result()\n\n\tif err == redis.Nil {\n\t\tfmt.Println(\"<nil>\") // >>> <nil>\n\t} else if err != nil {\n\t\tpanic(err)\n\t} else {\n\t\tfmt.Println(missing)\n\t}\n\n}\n\nfunc ExampleClient_arrays_armset_armget() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tmsetRes, err := rdb.ARMSet(ctx, \"metrics\",\n\t\tredis.AREntry{Index: 0, Value: \"10\"},\n\t\tredis.AREntry{Index: 5, Value: \"20\"},\n\t\tredis.AREntry{Index: 100, Value: \"30\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tmgetRes, err := rdb.ARMGet(ctx, \"metrics\", 0, 5, 100, 999).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(mgetRes) // >>> [10 20 30 <nil>]\n\n}\n\nfunc ExampleClient_arrays_len_count() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tset1, err := rdb.ARSet(ctx, \"sparse\", 0, \"a\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(set1) // >>> 1\n\n\tset2, err := rdb.ARSet(ctx, \"sparse\", 1000000, \"b\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(set2) // >>> 1\n\n\tlenRes, err := rdb.ARLen(ctx, \"sparse\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lenRes) // >>> 1000001\n\n\tcountRes, err := rdb.ARCount(ctx, \"sparse\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(countRes) // >>> 2\n\n}\n\nfunc ExampleClient_arrays_argetrange() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tmsetRes, err := rdb.ARMSet(ctx, \"seq\",\n\t\tredis.AREntry{Index: 0, Value: \"a\"},\n\t\tredis.AREntry{Index: 1, Value: \"b\"},\n\t\tredis.AREntry{Index: 3, Value: \"d\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\trangeRes, err := rdb.ARGetRange(ctx, \"seq\", 0, 3).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rangeRes) // >>> [a b <nil> d]\n\n}\n\nfunc ExampleClient_arrays_arscan() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tmsetRes, err := rdb.ARMSet(ctx, \"seq\",\n\t\tredis.AREntry{Index: 0, Value: \"a\"},\n\t\tredis.AREntry{Index: 1, Value: \"b\"},\n\t\tredis.AREntry{Index: 3, Value: \"d\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tscanRes, err := rdb.ARScan(ctx, \"seq\", 0, 3, nil).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor _, entry := range scanRes {\n\t\tfmt.Printf(\"%d -> %s\\n\", entry.Index, entry.Value)\n\t}\n\t// >>> 0 -> a\n\t// >>> 1 -> b\n\t// >>> 3 -> d\n\n}\n\nfunc ExampleClient_arrays_arinsert() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tins1, err := rdb.ARInsert(ctx, \"log\", \"event1\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ins1) // >>> 0\n\n\tins2, err := rdb.ARInsert(ctx, \"log\", \"event2\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ins2) // >>> 1\n\n\tnextRes, err := rdb.ARNext(ctx, \"log\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(nextRes) // >>> 2\n\n\tseekRes, err := rdb.ARSeek(ctx, \"log\", 10).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(seekRes) // >>> 1\n\n\tins3, err := rdb.ARInsert(ctx, \"log\", \"event3\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ins3) // >>> 10\n\n}\n\nfunc ExampleClient_arrays_arring() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tring0, err := rdb.ARRing(ctx, \"readings\", 3, \"v0\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring0) // >>> 0\n\n\tring1, err := rdb.ARRing(ctx, \"readings\", 3, \"v1\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring1) // >>> 1\n\n\tring2, err := rdb.ARRing(ctx, \"readings\", 3, \"v2\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring2) // >>> 2\n\n\tring3, err := rdb.ARRing(ctx, \"readings\", 3, \"v3\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring3) // >>> 0\n\n\tgetRes, err := rdb.ARGet(ctx, \"readings\", 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(getRes) // >>> v3\n\n}\n\nfunc ExampleClient_arrays_arlastitems() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\t// Set up the ring: insert v0, v1, v2, v3 into a size-3 ring.\n\tfor _, v := range []string{\"v0\", \"v1\", \"v2\", \"v3\"} {\n\t\tif err := rdb.ARRing(ctx, \"readings\", 3, v).Err(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tlastRes, err := rdb.ARLastItems(ctx, \"readings\", 3, false).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lastRes) // >>> [v1 v2 v3]\n\n\tlastRevRes, err := rdb.ARLastItems(ctx, \"readings\", 3, true).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lastRevRes) // >>> [v3 v2 v1]\n\n}\n\nfunc ExampleClient_arrays_arop() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tmsetRes, err := rdb.ARMSet(ctx, \"scores\",\n\t\tredis.AREntry{Index: 0, Value: \"10\"},\n\t\tredis.AREntry{Index: 1, Value: \"20\"},\n\t\tredis.AREntry{Index: 2, Value: \"30\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tsumRes, err := rdb.AROpSum(ctx, \"scores\", 0, 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(sumRes) // >>> 60\n\n\tmaxRes, err := rdb.AROpMax(ctx, \"scores\", 0, 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(maxRes) // >>> 30\n\n\tmatchRes, err := rdb.AROpMatch(ctx, \"scores\", 0, 2, \"10\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(matchRes) // >>> 1\n\n}\n\nfunc ExampleClient_arrays_argrep() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tmsetRes, err := rdb.ARMSet(ctx, \"log\",\n\t\tredis.AREntry{Index: 0, Value: \"boot: ok\"},\n\t\tredis.AREntry{Index: 1, Value: \"warn: disk\"},\n\t\tredis.AREntry{Index: 2, Value: \"ERROR: cpu\"},\n\t\tredis.AREntry{Index: 3, Value: \"info: ready\"},\n\t\tredis.AREntry{Index: 4, Value: \"error: net\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 5\n\n\t// Case-insensitive match for \"error\".\n\tgrepRes, err := rdb.ARGrep(ctx, \"log\", \"0\", \"4\", &redis.ARGrepArgs{\n\t\tPredicates: []redis.ARGrepPredicate{\n\t\t\t{Type: redis.ARGrepMatch, Value: \"error\"},\n\t\t},\n\t\tNoCase: true,\n\t}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(grepRes) // >>> [2 4]\n\n\t// Two GLOB predicates combined with the default OR, returning values too.\n\tgrepValsRes, err := rdb.ARGrepWithValues(ctx, \"log\", \"0\", \"4\", &redis.ARGrepArgs{\n\t\tPredicates: []redis.ARGrepPredicate{\n\t\t\t{Type: redis.ARGrepGlob, Value: \"warn:*\"},\n\t\t\t{Type: redis.ARGrepGlob, Value: \"error:*\"},\n\t\t},\n\t}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor _, entry := range grepValsRes {\n\t\tfmt.Printf(\"%d -> %s\\n\", entry.Index, entry.Value)\n\t}\n\t// >>> 1 -> warn: disk\n\t// >>> 4 -> error: net\n\n}\n\nfunc ExampleClient_arrays_ardel() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tmsetRes, err := rdb.ARMSet(ctx, \"scores\",\n\t\tredis.AREntry{Index: 0, Value: \"10\"},\n\t\tredis.AREntry{Index: 1, Value: \"20\"},\n\t\tredis.AREntry{Index: 2, Value: \"30\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tdelRes, err := rdb.ARDel(ctx, \"scores\", 1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(delRes) // >>> 1\n\n\tdelRangeRes, err := rdb.ARDelRange(ctx, \"scores\", redis.ARRange{Start: 0, End: 2}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(delRangeRes) // >>> 2\n\n}\n```\n\nExample:\n```php\n$res1 = $redis->arset('events:1', 0, ['login', 'click', 'purchase']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->arget('events:1', 0);\n echo $res2 . PHP_EOL; // >>> login\n\n $res3 = $redis->arget('events:1', 999);\n echo var_export($res3, true) . PHP_EOL; // >>> NULL\n```\n\nExample:\n```php\n<?php\nuse Predis\\Client as PredisClient;\n\nclass DtArraysTest\n{\n public function testArsetArget(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->arset('events:1', 0, ['login', 'click', 'purchase']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->arget('events:1', 0);\n echo $res2 . PHP_EOL; // >>> login\n\n $res3 = $redis->arget('events:1', 999);\n echo var_export($res3, true) . PHP_EOL; // >>> NULL\n\n }\n\n public function testArmsetArmget(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->armset('metrics', [0 => '10', 5 => '20', 100 => '30']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->armget('metrics', [0, 5, 100, 999]);\n echo json_encode($res2) . PHP_EOL; // >>> [\"10\",\"20\",\"30\",null]\n\n }\n\n public function testLenCount(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->arset('sparse', 0, 'a');\n echo $res1 . PHP_EOL; // >>> 1\n\n $res2 = $redis->arset('sparse', 1000000, 'b');\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->arlen('sparse');\n echo $res3 . PHP_EOL; // >>> 1000001\n\n $res4 = $redis->arcount('sparse');\n echo $res4 . PHP_EOL; // >>> 2\n\n }\n\n public function testArgetrange(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->armset('seq', [0 => 'a', 1 => 'b', 3 => 'd']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->argetrange('seq', 0, 3);\n echo json_encode($res2) . PHP_EOL; // >>> [\"a\",\"b\",null,\"d\"]\n\n }\n\n public function testArscan(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->armset('seq', [0 => 'a', 1 => 'b', 3 => 'd']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->arscan('seq', 0, 3);\n foreach ($res2 as $pair) {\n echo $pair[0] . ' -> ' . $pair[1] . PHP_EOL;\n }\n // >>> 0 -> a\n // >>> 1 -> b\n // >>> 3 -> d\n\n }\n\n public function testArinsert(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->arinsert('log', 'event1');\n echo $res1 . PHP_EOL; // >>> 0\n\n $res2 = $redis->arinsert('log', 'event2');\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->arnext('log');\n echo $res3 . PHP_EOL; // >>> 2\n\n $res4 = $redis->arseek('log', 10);\n echo $res4 . PHP_EOL; // >>> 1\n\n $res5 = $redis->arinsert('log', 'event3');\n echo $res5 . PHP_EOL; // >>> 10\n\n }\n\n public function testArring(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->arring('readings', 3, 'v0');\n echo $res1 . PHP_EOL; // >>> 0\n\n $res2 = $redis->arring('readings', 3, 'v1');\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->arring('readings', 3, 'v2');\n echo $res3 . PHP_EOL; // >>> 2\n\n $res4 = $redis->arring('readings', 3, 'v3');\n echo $res4 . PHP_EOL; // >>> 0\n\n $res5 = $redis->arget('readings', 0);\n echo $res5 . PHP_EOL; // >>> v3\n\n }\n\n public function testArlastitems(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $redis->arring('readings', 3, 'v0');\n $redis->arring('readings', 3, 'v1');\n $redis->arring('readings', 3, 'v2');\n $redis->arring('readings', 3, 'v3');\n\n $res1 = $redis->arlastitems('readings', 3);\n echo json_encode($res1) . PHP_EOL; // >>> [\"v1\",\"v2\",\"v3\"]\n\n $res2 = $redis->arlastitems('readings', 3, true);\n echo json_encode($res2) . PHP_EOL; // >>> [\"v3\",\"v2\",\"v1\"]\n\n }\n\n public function testArop(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->armset('scores', [0 => '10', 1 => '20', 2 => '30']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->arop('scores', 0, 2, 'SUM');\n echo $res2 . PHP_EOL; // >>> 60\n\n $res3 = $redis->arop('scores', 0, 2, 'MAX');\n echo $res3 . PHP_EOL; // >>> 30\n\n $res4 = $redis->arop('scores', 0, 2, 'MATCH', '10');\n echo $res4 . PHP_EOL; // >>> 1\n\n }\n\n public function testArgrep(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->armset('log', [\n 0 => 'boot: ok',\n 1 => 'warn: disk',\n 2 => 'ERROR: cpu',\n 3 => 'info: ready',\n 4 => 'error: net',\n ]);\n echo $res1 . PHP_EOL; // >>> 5\n\n // Predicates are [type, value] pairs. Positional argument order is:\n // (key, start, end, predicates, combinator, limit, withValues, noCase)\n $res2 = $redis->argrep('log', 0, 4, [['MATCH', 'error']], null, null, false, true);\n echo json_encode($res2) . PHP_EOL; // >>> [2,4]\n\n $res3 = $redis->argrep(\n 'log',\n 0,\n 4,\n [['GLOB', 'warn:*'], ['GLOB', 'error:*']],\n 'OR',\n null,\n true\n );\n foreach ($res3 as $pair) {\n echo $pair[0] . ' -> ' . $pair[1] . PHP_EOL;\n }\n // >>> 1 -> warn: disk\n // >>> 4 -> error: net\n\n }\n\n public function testArdel(): void\n {\n $redis = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n ]);\n\n $res1 = $redis->armset('scores', [0 => '10', 1 => '20', 2 => '30']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->ardel('scores', 1);\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->ardelrange('scores', 0, 2);\n echo $res3 . PHP_EOL; // >>> 2\n\n }\n}\n```\n\nExample:\n```python\nres4 = r.armset(\"metrics\", {0: \"10\", 5: \"20\", 100: \"30\"})\nprint(res4)\n# >>> 3\n\nres5 = r.armget(\"metrics\", 0, 5, 100, 999)\nprint(res5)\n# >>> ['10', '20', '30', None]\n```\n\nExample:\n```node\nconst mSetResult = await client.arMSet('metrics', { 0: '10', 5: '20', 100: '30' });\nconsole.log(mSetResult); // >>> 3\n\nconst mGetResult = await client.arMGet('metrics', [0, 5, 100, 999]);\nconsole.log(mGetResult); // >>> [ '10', '20', '30', null ]\n```\n\nExample:\n```java\nMap<Long, String> metricsValues = new HashMap<>();\n metricsValues.put(0L, \"10\");\n metricsValues.put(5L, \"20\");\n metricsValues.put(100L, \"30\");\n\n CompletableFuture<Void> armsetArmgetExample = asyncCommands\n .armset(\"metrics\", metricsValues)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.armget(\"metrics\", 0, 5, 100, 999);\n })\n .thenAccept(res2 -> {\n System.out.println(res2);\n // >>> [10, 20, 30, null]\n })\n .toCompletableFuture();\n\n armsetArmgetExample.join();\n```\n\nExample:\n```java\nMap<Long, String> armsetParams = new HashMap<>();\n armsetParams.put(0L, \"10\");\n armsetParams.put(5L, \"20\");\n armsetParams.put(100L, \"30\");\n\n Mono<Long> armsetArmget1 = reactiveCommands.armset(\"metrics\", armsetParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n armsetArmget1.block();\n\n Mono<List<String>> armsetArmget2 = reactiveCommands.armget(\"metrics\", 0, 5, 100, 999)\n .collectList()\n .map(values -> values.stream()\n .map(value -> value.getValueOrElse(null))\n .collect(Collectors.toList()))\n .doOnNext(result -> {\n System.out.println(result); // >>> [10, 20, 30, null]\n });\n\n armsetArmget2.block();\n```\n\nExample:\n```go\nmsetRes, err := rdb.ARMSet(ctx, \"metrics\",\n\t\tredis.AREntry{Index: 0, Value: \"10\"},\n\t\tredis.AREntry{Index: 5, Value: \"20\"},\n\t\tredis.AREntry{Index: 100, Value: \"30\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tmgetRes, err := rdb.ARMGet(ctx, \"metrics\", 0, 5, 100, 999).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(mgetRes) // >>> [10 20 30 <nil>]\n```\n\nExample:\n```php\n$res1 = $redis->armset('metrics', [0 => '10', 5 => '20', 100 => '30']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->armget('metrics', [0, 5, 100, 999]);\n echo json_encode($res2) . PHP_EOL; // >>> [\"10\",\"20\",\"30\",null]\n```\n\nExample:\n```python\nres6 = r.arset(\"sparse\", 0, \"a\")\nprint(res6)\n# >>> 1\n\nres7 = r.arset(\"sparse\", 1000000, \"b\")\nprint(res7)\n# >>> 1\n\nres8 = r.arlen(\"sparse\")\nprint(res8)\n# >>> 1000001\n\nres9 = r.arcount(\"sparse\")\nprint(res9)\n# >>> 2\n```\n\nExample:\n```node\nconst setA = await client.arSet('sparse', 0, 'a');\nconsole.log(setA); // >>> 1\n\nconst setB = await client.arSet('sparse', 1000000, 'b');\nconsole.log(setB); // >>> 1\n\nconst lenResult = await client.arLen('sparse');\nconsole.log(lenResult); // >>> 1000001\n\nconst countResult = await client.arCount('sparse');\nconsole.log(countResult); // >>> 2\n```\n\nExample:\n```java\nCompletableFuture<Void> lenCountExample = asyncCommands\n .arset(\"sparse\", 0, \"a\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 1\n return asyncCommands.arset(\"sparse\", 1000000, \"b\");\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.arlen(\"sparse\");\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 1000001\n return asyncCommands.arcount(\"sparse\");\n })\n .thenAccept(res4 -> {\n System.out.println(res4);\n // >>> 2\n })\n .toCompletableFuture();\n\n lenCountExample.join();\n```\n\nExample:\n```java\nMono<Long> lenCount1 = reactiveCommands.arset(\"sparse\", 0, \"a\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n lenCount1.block();\n\n Mono<Long> lenCount2 = reactiveCommands.arset(\"sparse\", 1000000, \"b\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n lenCount2.block();\n\n Mono<Long> lenCount3 = reactiveCommands.arlen(\"sparse\").doOnNext(result -> {\n System.out.println(result); // >>> 1000001\n });\n\n lenCount3.block();\n\n Mono<Long> lenCount4 = reactiveCommands.arcount(\"sparse\").doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n lenCount4.block();\n```\n\nExample:\n```go\nset1, err := rdb.ARSet(ctx, \"sparse\", 0, \"a\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(set1) // >>> 1\n\n\tset2, err := rdb.ARSet(ctx, \"sparse\", 1000000, \"b\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(set2) // >>> 1\n\n\tlenRes, err := rdb.ARLen(ctx, \"sparse\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lenRes) // >>> 1000001\n\n\tcountRes, err := rdb.ARCount(ctx, \"sparse\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(countRes) // >>> 2\n```\n\nExample:\n```php\n$res1 = $redis->arset('sparse', 0, 'a');\n echo $res1 . PHP_EOL; // >>> 1\n\n $res2 = $redis->arset('sparse', 1000000, 'b');\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->arlen('sparse');\n echo $res3 . PHP_EOL; // >>> 1000001\n\n $res4 = $redis->arcount('sparse');\n echo $res4 . PHP_EOL; // >>> 2\n```\n\nExample:\n```python\nres10 = r.armset(\"seq\", {0: \"a\", 1: \"b\", 3: \"d\"})\nprint(res10)\n# >>> 3\n\nres11 = r.argetrange(\"seq\", 0, 3)\nprint(res11)\n# >>> ['a', 'b', None, 'd']\n```\n\nExample:\n```node\nconst rangeSetResult = await client.arMSet('seq', { 0: 'a', 1: 'b', 3: 'd' });\nconsole.log(rangeSetResult); // >>> 3\n\nconst rangeResult = await client.arGetRange('seq', 0, 3);\nconsole.log(rangeResult); // >>> [ 'a', 'b', null, 'd' ]\n```\n\nExample:\n```java\nMap<Long, String> seqRangeValues = new HashMap<>();\n seqRangeValues.put(0L, \"a\");\n seqRangeValues.put(1L, \"b\");\n seqRangeValues.put(3L, \"d\");\n\n CompletableFuture<Void> argetrangeExample = asyncCommands\n .armset(\"seq\", seqRangeValues)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.argetrange(\"seq\", 0, 3);\n })\n .thenAccept(res2 -> {\n System.out.println(res2);\n // >>> [a, b, null, d]\n })\n .toCompletableFuture();\n\n argetrangeExample.join();\n```\n\nExample:\n```java\nMap<Long, String> argetrangeParams = new HashMap<>();\n argetrangeParams.put(0L, \"a\");\n argetrangeParams.put(1L, \"b\");\n argetrangeParams.put(3L, \"d\");\n\n Mono<Long> argetrange1 = reactiveCommands.armset(\"seq\", argetrangeParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n argetrange1.block();\n\n Mono<List<String>> argetrange2 = reactiveCommands.argetrange(\"seq\", 0, 3)\n .collectList()\n .map(values -> values.stream()\n .map(value -> value.getValueOrElse(null))\n .collect(Collectors.toList()))\n .doOnNext(result -> {\n System.out.println(result); // >>> [a, b, null, d]\n });\n\n argetrange2.block();\n```\n\nExample:\n```go\nmsetRes, err := rdb.ARMSet(ctx, \"seq\",\n\t\tredis.AREntry{Index: 0, Value: \"a\"},\n\t\tredis.AREntry{Index: 1, Value: \"b\"},\n\t\tredis.AREntry{Index: 3, Value: \"d\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\trangeRes, err := rdb.ARGetRange(ctx, \"seq\", 0, 3).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rangeRes) // >>> [a b <nil> d]\n```\n\nExample:\n```php\n$res1 = $redis->armset('seq', [0 => 'a', 1 => 'b', 3 => 'd']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->argetrange('seq', 0, 3);\n echo json_encode($res2) . PHP_EOL; // >>> [\"a\",\"b\",null,\"d\"]\n```\n\nExample:\n```python\nres12 = r.armset(\"seq\", {0: \"a\", 1: \"b\", 3: \"d\"})\nprint(res12)\n# >>> 3\n\nres13 = r.arscan(\"seq\", 0, 3)\nfor index, value in res13:\n print(f\"{index} -> {value}\")\n# >>> 0 -> a\n# >>> 1 -> b\n# >>> 3 -> d\n```\n\nExample:\n```node\nconst scanSetResult = await client.arMSet('seq', { 0: 'a', 1: 'b', 3: 'd' });\nconsole.log(scanSetResult); // >>> 3\n\nconst scanResult = await client.arScan('seq', 0, 3);\nfor (const { index, value } of scanResult) {\n console.log(`${index} -> ${value}`);\n}\n// >>> 0 -> a\n// >>> 1 -> b\n// >>> 3 -> d\n```\n\nExample:\n```java\nMap<Long, String> seqScanValues = new HashMap<>();\n seqScanValues.put(0L, \"a\");\n seqScanValues.put(1L, \"b\");\n seqScanValues.put(3L, \"d\");\n\n CompletableFuture<Void> arscanExample = asyncCommands\n .armset(\"seq\", seqScanValues)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.arscan(\"seq\", 0, 3);\n })\n .thenAccept(res2 -> {\n for (IndexedValue<String> pair : res2) {\n System.out.println(pair.getIndex() + \" -> \" + pair.getValue());\n }\n // >>> 0 -> a\n // >>> 1 -> b\n // >>> 3 -> d\n })\n .toCompletableFuture();\n\n arscanExample.join();\n```\n\nExample:\n```java\nMap<Long, String> arscanParams = new HashMap<>();\n arscanParams.put(0L, \"a\");\n arscanParams.put(1L, \"b\");\n arscanParams.put(3L, \"d\");\n\n Mono<Long> arscan1 = reactiveCommands.armset(\"seq\", arscanParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n arscan1.block();\n\n Mono<List<IndexedValue<String>>> arscan2 = reactiveCommands.arscan(\"seq\", 0, 3)\n .doOnNext(entry -> {\n System.out.println(entry.getIndex() + \" -> \" + entry.getValue());\n // >>> 0 -> a\n // >>> 1 -> b\n // >>> 3 -> d\n })\n .collectList()\n ;\n\n arscan2.block();\n```\n\nExample:\n```go\nmsetRes, err := rdb.ARMSet(ctx, \"seq\",\n\t\tredis.AREntry{Index: 0, Value: \"a\"},\n\t\tredis.AREntry{Index: 1, Value: \"b\"},\n\t\tredis.AREntry{Index: 3, Value: \"d\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tscanRes, err := rdb.ARScan(ctx, \"seq\", 0, 3, nil).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor _, entry := range scanRes {\n\t\tfmt.Printf(\"%d -> %s\\n\", entry.Index, entry.Value)\n\t}\n\t// >>> 0 -> a\n\t// >>> 1 -> b\n\t// >>> 3 -> d\n```\n\nExample:\n```php\n$res1 = $redis->armset('seq', [0 => 'a', 1 => 'b', 3 => 'd']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->arscan('seq', 0, 3);\n foreach ($res2 as $pair) {\n echo $pair[0] . ' -> ' . $pair[1] . PHP_EOL;\n }\n // >>> 0 -> a\n // >>> 1 -> b\n // >>> 3 -> d\n```\n\nExample:\n```python\nres14 = r.arinsert(\"log\", \"event1\")\nprint(res14)\n# >>> 0\n\nres15 = r.arinsert(\"log\", \"event2\")\nprint(res15)\n# >>> 1\n\nres16 = r.arnext(\"log\")\nprint(res16)\n# >>> 2\n\nres17 = r.arseek(\"log\", 10)\nprint(res17)\n# >>> 1\n\nres18 = r.arinsert(\"log\", \"event3\")\nprint(res18)\n# >>> 10\n```\n\nExample:\n```node\nconst insert1 = await client.arInsert('log', 'event1');\nconsole.log(insert1); // >>> 0\n\nconst insert2 = await client.arInsert('log', 'event2');\nconsole.log(insert2); // >>> 1\n\nconst nextResult = await client.arNext('log');\nconsole.log(nextResult); // >>> 2\n\nconst seekResult = await client.arSeek('log', 10);\nconsole.log(seekResult); // >>> 1\n\nconst insert3 = await client.arInsert('log', 'event3');\nconsole.log(insert3); // >>> 10\n```\n\nExample:\n```java\nCompletableFuture<Void> arinsertExample = asyncCommands\n .arinsert(\"log\", \"event1\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 0\n return asyncCommands.arinsert(\"log\", \"event2\");\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.arnext(\"log\");\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 2\n return asyncCommands.arseek(\"log\", 10);\n })\n .thenCompose(res4 -> {\n System.out.println(res4);\n // >>> 1\n return asyncCommands.arinsert(\"log\", \"event3\");\n })\n .thenAccept(res5 -> {\n System.out.println(res5);\n // >>> 10\n })\n .toCompletableFuture();\n\n arinsertExample.join();\n```\n\nExample:\n```java\nMono<Long> arinsert1 = reactiveCommands.arinsert(\"log\", \"event1\").doOnNext(result -> {\n System.out.println(result); // >>> 0\n });\n\n arinsert1.block();\n\n Mono<Long> arinsert2 = reactiveCommands.arinsert(\"log\", \"event2\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arinsert2.block();\n\n Mono<Long> arinsert3 = reactiveCommands.arnext(\"log\").doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n arinsert3.block();\n\n Mono<Long> arinsert4 = reactiveCommands.arseek(\"log\", 10).doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arinsert4.block();\n\n Mono<Long> arinsert5 = reactiveCommands.arinsert(\"log\", \"event3\").doOnNext(result -> {\n System.out.println(result); // >>> 10\n });\n\n arinsert5.block();\n```\n\nExample:\n```go\nins1, err := rdb.ARInsert(ctx, \"log\", \"event1\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ins1) // >>> 0\n\n\tins2, err := rdb.ARInsert(ctx, \"log\", \"event2\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ins2) // >>> 1\n\n\tnextRes, err := rdb.ARNext(ctx, \"log\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(nextRes) // >>> 2\n\n\tseekRes, err := rdb.ARSeek(ctx, \"log\", 10).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(seekRes) // >>> 1\n\n\tins3, err := rdb.ARInsert(ctx, \"log\", \"event3\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ins3) // >>> 10\n```\n\nExample:\n```php\n$res1 = $redis->arinsert('log', 'event1');\n echo $res1 . PHP_EOL; // >>> 0\n\n $res2 = $redis->arinsert('log', 'event2');\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->arnext('log');\n echo $res3 . PHP_EOL; // >>> 2\n\n $res4 = $redis->arseek('log', 10);\n echo $res4 . PHP_EOL; // >>> 1\n\n $res5 = $redis->arinsert('log', 'event3');\n echo $res5 . PHP_EOL; // >>> 10\n```\n\nExample:\n```python\nres19 = r.arring(\"readings\", 3, \"v0\")\nprint(res19)\n# >>> 0\n\nres20 = r.arring(\"readings\", 3, \"v1\")\nprint(res20)\n# >>> 1\n\nres21 = r.arring(\"readings\", 3, \"v2\")\nprint(res21)\n# >>> 2\n\nres22 = r.arring(\"readings\", 3, \"v3\")\nprint(res22)\n# >>> 0\n\nres23 = r.arget(\"readings\", 0)\nprint(res23)\n# >>> v3\n```\n\nExample:\n```node\nconst ring0 = await client.arRing('readings', 3, 'v0');\nconsole.log(ring0); // >>> 0\n\nconst ring1 = await client.arRing('readings', 3, 'v1');\nconsole.log(ring1); // >>> 1\n\nconst ring2 = await client.arRing('readings', 3, 'v2');\nconsole.log(ring2); // >>> 2\n\nconst ring3 = await client.arRing('readings', 3, 'v3');\nconsole.log(ring3); // >>> 0\n\nconst ringGet = await client.arGet('readings', 0);\nconsole.log(ringGet); // >>> v3\n```\n\nExample:\n```java\nCompletableFuture<Void> arringExample = asyncCommands\n .arring(\"readings\", 3, \"v0\")\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 0\n return asyncCommands.arring(\"readings\", 3, \"v1\");\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.arring(\"readings\", 3, \"v2\");\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 2\n return asyncCommands.arring(\"readings\", 3, \"v3\");\n })\n .thenCompose(res4 -> {\n System.out.println(res4);\n // >>> 0\n return asyncCommands.arget(\"readings\", 0);\n })\n .thenAccept(res5 -> {\n System.out.println(res5);\n // >>> v3\n })\n .toCompletableFuture();\n\n arringExample.join();\n```\n\nExample:\n```java\nMono<Long> arring1 = reactiveCommands.arring(\"readings\", 3, \"v0\").doOnNext(result -> {\n System.out.println(result); // >>> 0\n });\n\n arring1.block();\n\n Mono<Long> arring2 = reactiveCommands.arring(\"readings\", 3, \"v1\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arring2.block();\n\n Mono<Long> arring3 = reactiveCommands.arring(\"readings\", 3, \"v2\").doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n arring3.block();\n\n Mono<Long> arring4 = reactiveCommands.arring(\"readings\", 3, \"v3\").doOnNext(result -> {\n System.out.println(result); // >>> 0\n });\n\n arring4.block();\n\n Mono<String> arring5 = reactiveCommands.arget(\"readings\", 0).doOnNext(result -> {\n System.out.println(result); // >>> v3\n });\n\n arring5.block();\n```\n\nExample:\n```go\nring0, err := rdb.ARRing(ctx, \"readings\", 3, \"v0\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring0) // >>> 0\n\n\tring1, err := rdb.ARRing(ctx, \"readings\", 3, \"v1\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring1) // >>> 1\n\n\tring2, err := rdb.ARRing(ctx, \"readings\", 3, \"v2\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring2) // >>> 2\n\n\tring3, err := rdb.ARRing(ctx, \"readings\", 3, \"v3\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(ring3) // >>> 0\n\n\tgetRes, err := rdb.ARGet(ctx, \"readings\", 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(getRes) // >>> v3\n```\n\nExample:\n```php\n$res1 = $redis->arring('readings', 3, 'v0');\n echo $res1 . PHP_EOL; // >>> 0\n\n $res2 = $redis->arring('readings', 3, 'v1');\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->arring('readings', 3, 'v2');\n echo $res3 . PHP_EOL; // >>> 2\n\n $res4 = $redis->arring('readings', 3, 'v3');\n echo $res4 . PHP_EOL; // >>> 0\n\n $res5 = $redis->arget('readings', 0);\n echo $res5 . PHP_EOL; // >>> v3\n```\n\nExample:\n```python\nr.arring(\"readings\", 3, \"v0\")\nr.arring(\"readings\", 3, \"v1\")\nr.arring(\"readings\", 3, \"v2\")\nr.arring(\"readings\", 3, \"v3\")\n\nres24 = r.arlastitems(\"readings\", 3)\nprint(res24)\n# >>> ['v1', 'v2', 'v3']\n\nres25 = r.arlastitems(\"readings\", 3, rev=True)\nprint(res25)\n# >>> ['v3', 'v2', 'v1']\n```\n\nExample:\n```node\nawait client.arRing('readings', 3, 'v0');\nawait client.arRing('readings', 3, 'v1');\nawait client.arRing('readings', 3, 'v2');\nawait client.arRing('readings', 3, 'v3');\n\nconst lastItems = await client.arLastItems('readings', 3);\nconsole.log(lastItems); // >>> [ 'v1', 'v2', 'v3' ]\n\nconst lastItemsRev = await client.arLastItems('readings', 3, { REV: true });\nconsole.log(lastItemsRev); // >>> [ 'v3', 'v2', 'v1' ]\n```\n\nExample:\n```java\nCompletableFuture<Void> arlastitemsExample = asyncCommands\n .arring(\"readings\", 3, \"v0\")\n .thenCompose(res1 -> asyncCommands.arring(\"readings\", 3, \"v1\"))\n .thenCompose(res2 -> asyncCommands.arring(\"readings\", 3, \"v2\"))\n .thenCompose(res3 -> asyncCommands.arring(\"readings\", 3, \"v3\"))\n .thenCompose(res4 -> asyncCommands.arlastitems(\"readings\", 3))\n .thenCompose(res5 -> {\n System.out.println(res5);\n // >>> [v1, v2, v3]\n return asyncCommands.arlastitems(\"readings\", 3, true);\n })\n .thenAccept(res6 -> {\n System.out.println(res6);\n // >>> [v3, v2, v1]\n })\n .toCompletableFuture();\n\n arlastitemsExample.join();\n```\n\nExample:\n```java\n// Set up the ring: insert v0, v1, v2, v3 into a size-3 ring.\n reactiveCommands.arring(\"readings\", 3, \"v0\").block();\n reactiveCommands.arring(\"readings\", 3, \"v1\").block();\n reactiveCommands.arring(\"readings\", 3, \"v2\").block();\n reactiveCommands.arring(\"readings\", 3, \"v3\").block();\n\n Mono<List<String>> arlastitems1 = reactiveCommands.arlastitems(\"readings\", 3).collectList()\n .doOnNext(result -> {\n System.out.println(result); // >>> [v1, v2, v3]\n });\n\n arlastitems1.block();\n\n Mono<List<String>> arlastitems2 = reactiveCommands.arlastitems(\"readings\", 3, true).collectList()\n .doOnNext(result -> {\n System.out.println(result); // >>> [v3, v2, v1]\n });\n\n arlastitems2.block();\n```\n\nExample:\n```go\n// Set up the ring: insert v0, v1, v2, v3 into a size-3 ring.\n\tfor _, v := range []string{\"v0\", \"v1\", \"v2\", \"v3\"} {\n\t\tif err := rdb.ARRing(ctx, \"readings\", 3, v).Err(); err != nil {\n\t\t\tpanic(err)\n\t\t}\n\t}\n\n\tlastRes, err := rdb.ARLastItems(ctx, \"readings\", 3, false).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lastRes) // >>> [v1 v2 v3]\n\n\tlastRevRes, err := rdb.ARLastItems(ctx, \"readings\", 3, true).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lastRevRes) // >>> [v3 v2 v1]\n```\n\nExample:\n```php\n$redis->arring('readings', 3, 'v0');\n $redis->arring('readings', 3, 'v1');\n $redis->arring('readings', 3, 'v2');\n $redis->arring('readings', 3, 'v3');\n\n $res1 = $redis->arlastitems('readings', 3);\n echo json_encode($res1) . PHP_EOL; // >>> [\"v1\",\"v2\",\"v3\"]\n\n $res2 = $redis->arlastitems('readings', 3, true);\n echo json_encode($res2) . PHP_EOL; // >>> [\"v3\",\"v2\",\"v1\"]\n```\n\nExample:\n```python\nres26 = r.armset(\"scores\", {0: \"10\", 1: \"20\", 2: \"30\"})\nprint(res26)\n# >>> 3\n\nres27 = r.arop(\"scores\", 0, 2, ArrayAggregateOperations.SUM)\nprint(res27)\n# >>> 60\n\nres28 = r.arop(\"scores\", 0, 2, ArrayAggregateOperations.MAX)\nprint(res28)\n# >>> 30\n\nres29 = r.arop(\"scores\", 0, 2, ArrayAggregateOperations.MATCH, value=\"10\")\nprint(res29)\n# >>> 1\n```\n\nExample:\n```node\nconst opSetResult = await client.arMSet('scores', { 0: '10', 1: '20', 2: '30' });\nconsole.log(opSetResult); // >>> 3\n\nconst sumResult = await client.arOp('scores', 0, 2, 'SUM');\nconsole.log(sumResult); // >>> 60\n\nconst maxResult = await client.arOp('scores', 0, 2, 'MAX');\nconsole.log(maxResult); // >>> 30\n\nconst matchResult = await client.arOp('scores', 0, 2, 'MATCH', '10');\nconsole.log(matchResult); // >>> 1\n```\n\nExample:\n```java\nMap<Long, String> aropScores = new HashMap<>();\n aropScores.put(0L, \"10\");\n aropScores.put(1L, \"20\");\n aropScores.put(2L, \"30\");\n\n CompletableFuture<Void> aropExample = asyncCommands\n .armset(\"scores\", aropScores)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.SUM);\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 60\n return asyncCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.MAX);\n })\n .thenCompose(res3 -> {\n System.out.println(res3);\n // >>> 30\n return asyncCommands.aropCount(\"scores\", 0, 2, \"10\");\n })\n .thenAccept(res4 -> {\n System.out.println(res4);\n // >>> 1\n })\n .toCompletableFuture();\n\n aropExample.join();\n```\n\nExample:\n```java\nMap<Long, String> aropParams = new HashMap<>();\n aropParams.put(0L, \"10\");\n aropParams.put(1L, \"20\");\n aropParams.put(2L, \"30\");\n\n Mono<Long> arop1 = reactiveCommands.armset(\"scores\", aropParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n arop1.block();\n\n Mono<String> arop2 = reactiveCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.SUM)\n .doOnNext(result -> {\n System.out.println(result); // >>> 60\n });\n\n arop2.block();\n\n Mono<String> arop3 = reactiveCommands.aropAggregate(\"scores\", 0, 2, ArAggregateType.MAX)\n .doOnNext(result -> {\n System.out.println(result); // >>> 30\n });\n\n arop3.block();\n\n Mono<Long> arop4 = reactiveCommands.aropCount(\"scores\", 0, 2, \"10\").doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n arop4.block();\n```\n\nExample:\n```go\nmsetRes, err := rdb.ARMSet(ctx, \"scores\",\n\t\tredis.AREntry{Index: 0, Value: \"10\"},\n\t\tredis.AREntry{Index: 1, Value: \"20\"},\n\t\tredis.AREntry{Index: 2, Value: \"30\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tsumRes, err := rdb.AROpSum(ctx, \"scores\", 0, 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(sumRes) // >>> 60\n\n\tmaxRes, err := rdb.AROpMax(ctx, \"scores\", 0, 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(maxRes) // >>> 30\n\n\tmatchRes, err := rdb.AROpMatch(ctx, \"scores\", 0, 2, \"10\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(matchRes) // >>> 1\n```\n\nExample:\n```php\n$res1 = $redis->armset('scores', [0 => '10', 1 => '20', 2 => '30']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->arop('scores', 0, 2, 'SUM');\n echo $res2 . PHP_EOL; // >>> 60\n\n $res3 = $redis->arop('scores', 0, 2, 'MAX');\n echo $res3 . PHP_EOL; // >>> 30\n\n $res4 = $redis->arop('scores', 0, 2, 'MATCH', '10');\n echo $res4 . PHP_EOL; // >>> 1\n```\n\nExample:\n```python\nres30 = r.armset(\n \"log\",\n {\n 0: \"boot: ok\",\n 1: \"warn: disk\",\n 2: \"ERROR: cpu\",\n 3: \"info: ready\",\n 4: \"error: net\",\n },\n)\nprint(res30)\n# >>> 5\n\nres31 = r.argrep(\n \"log\",\n 0,\n 4,\n [(ArrayPredicateType.MATCH, \"error\")],\n nocase=True,\n)\nprint(res31)\n# >>> [2, 4]\n\nres32 = r.argrep(\n \"log\",\n 0,\n 4,\n [\n (ArrayPredicateType.GLOB, \"warn:*\"),\n (ArrayPredicateType.GLOB, \"error:*\"),\n ],\n combinator=ArrayPredicateCombinator.OR,\n withvalues=True,\n)\nprint(res32)\n# >>> [[1, 'warn: disk'], [4, 'error: net']]\n```\n\nExample:\n```node\nconst grepSetResult = await client.arMSet('log', {\n 0: 'boot: ok',\n 1: 'warn: disk',\n 2: 'ERROR: cpu',\n 3: 'info: ready',\n 4: 'error: net'\n});\nconsole.log(grepSetResult); // >>> 5\n\nconst grepResult = await client.arGrep(\n 'log',\n 0,\n 4,\n [['MATCH', 'error']],\n { NOCASE: true }\n);\nconsole.log(grepResult); // >>> [ 2, 4 ]\n\nconst grepWithValues = await client.arGrepWithValues(\n 'log',\n 0,\n 4,\n [['GLOB', 'warn:*'], ['GLOB', 'error:*']],\n { COMBINATOR: 'OR' }\n);\nfor (const { index, value } of grepWithValues) {\n console.log(`${index} -> ${value}`);\n}\n// >>> 1 -> warn: disk\n// >>> 4 -> error: net\n```\n\nExample:\n```java\nMap<Long, String> argrepLog = new HashMap<>();\n argrepLog.put(0L, \"boot: ok\");\n argrepLog.put(1L, \"warn: disk\");\n argrepLog.put(2L, \"ERROR: cpu\");\n argrepLog.put(3L, \"info: ready\");\n argrepLog.put(4L, \"error: net\");\n\n CompletableFuture<Void> argrepExample = asyncCommands\n .armset(\"log\", argrepLog)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 5\n return asyncCommands.argrep(\"log\",\n ArGrepArgs.range(0, 4).match(\"error\").nocase());\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> [2, 4]\n return asyncCommands.argrepWithValues(\"log\",\n ArGrepArgs.range(0, 4).glob(\"warn:*\").glob(\"error:*\"));\n })\n .thenAccept(res3 -> {\n for (IndexedValue<String> pair : res3) {\n System.out.println(pair.getIndex() + \" -> \" + pair.getValue());\n }\n // >>> 1 -> warn: disk\n // >>> 4 -> error: net\n })\n .toCompletableFuture();\n\n argrepExample.join();\n```\n\nExample:\n```java\nMap<Long, String> argrepParams = new HashMap<>();\n argrepParams.put(0L, \"boot: ok\");\n argrepParams.put(1L, \"warn: disk\");\n argrepParams.put(2L, \"ERROR: cpu\");\n argrepParams.put(3L, \"info: ready\");\n argrepParams.put(4L, \"error: net\");\n\n Mono<Long> argrep1 = reactiveCommands.armset(\"log\", argrepParams).doOnNext(result -> {\n System.out.println(result); // >>> 5\n });\n\n argrep1.block();\n\n Mono<List<Long>> argrep2 = reactiveCommands.argrep(\"log\", ArGrepArgs.range(0, 4).match(\"error\").nocase())\n .collectList()\n .doOnNext(result -> {\n System.out.println(result); // >>> [2, 4]\n });\n\n argrep2.block();\n\n Mono<List<IndexedValue<String>>> argrep3 = reactiveCommands\n .argrepWithValues(\"log\", ArGrepArgs.range(0, 4).glob(\"warn:*\").glob(\"error:*\"))\n .doOnNext(entry -> {\n System.out.println(entry.getIndex() + \" -> \" + entry.getValue());\n // >>> 1 -> warn: disk\n // >>> 4 -> error: net\n })\n .collectList()\n ;\n\n argrep3.block();\n```\n\nExample:\n```go\nmsetRes, err := rdb.ARMSet(ctx, \"log\",\n\t\tredis.AREntry{Index: 0, Value: \"boot: ok\"},\n\t\tredis.AREntry{Index: 1, Value: \"warn: disk\"},\n\t\tredis.AREntry{Index: 2, Value: \"ERROR: cpu\"},\n\t\tredis.AREntry{Index: 3, Value: \"info: ready\"},\n\t\tredis.AREntry{Index: 4, Value: \"error: net\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 5\n\n\t// Case-insensitive match for \"error\".\n\tgrepRes, err := rdb.ARGrep(ctx, \"log\", \"0\", \"4\", &redis.ARGrepArgs{\n\t\tPredicates: []redis.ARGrepPredicate{\n\t\t\t{Type: redis.ARGrepMatch, Value: \"error\"},\n\t\t},\n\t\tNoCase: true,\n\t}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(grepRes) // >>> [2 4]\n\n\t// Two GLOB predicates combined with the default OR, returning values too.\n\tgrepValsRes, err := rdb.ARGrepWithValues(ctx, \"log\", \"0\", \"4\", &redis.ARGrepArgs{\n\t\tPredicates: []redis.ARGrepPredicate{\n\t\t\t{Type: redis.ARGrepGlob, Value: \"warn:*\"},\n\t\t\t{Type: redis.ARGrepGlob, Value: \"error:*\"},\n\t\t},\n\t}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfor _, entry := range grepValsRes {\n\t\tfmt.Printf(\"%d -> %s\\n\", entry.Index, entry.Value)\n\t}\n\t// >>> 1 -> warn: disk\n\t// >>> 4 -> error: net\n```\n\nExample:\n```php\n$res1 = $redis->armset('log', [\n 0 => 'boot: ok',\n 1 => 'warn: disk',\n 2 => 'ERROR: cpu',\n 3 => 'info: ready',\n 4 => 'error: net',\n ]);\n echo $res1 . PHP_EOL; // >>> 5\n\n // Predicates are [type, value] pairs. Positional argument order is:\n // (key, start, end, predicates, combinator, limit, withValues, noCase)\n $res2 = $redis->argrep('log', 0, 4, [['MATCH', 'error']], null, null, false, true);\n echo json_encode($res2) . PHP_EOL; // >>> [2,4]\n\n $res3 = $redis->argrep(\n 'log',\n 0,\n 4,\n [['GLOB', 'warn:*'], ['GLOB', 'error:*']],\n 'OR',\n null,\n true\n );\n foreach ($res3 as $pair) {\n echo $pair[0] . ' -> ' . $pair[1] . PHP_EOL;\n }\n // >>> 1 -> warn: disk\n // >>> 4 -> error: net\n```\n\nExample:\n```python\nres33 = r.armset(\"scores\", {0: \"10\", 1: \"20\", 2: \"30\"})\nprint(res33)\n# >>> 3\n\nres34 = r.ardel(\"scores\", 1)\nprint(res34)\n# >>> 1\n\nres35 = r.ardelrange(\"scores\", (0, 2))\nprint(res35)\n# >>> 2\n```\n\nExample:\n```node\nconst delSetResult = await client.arMSet('scores', { 0: '10', 1: '20', 2: '30' });\nconsole.log(delSetResult); // >>> 3\n\nconst delResult = await client.arDel('scores', 1);\nconsole.log(delResult); // >>> 1\n\nconst delRangeResult = await client.arDelRange('scores', [[0, 2]]);\nconsole.log(delRangeResult); // >>> 2\n```\n\nExample:\n```java\nMap<Long, String> ardelScores = new HashMap<>();\n ardelScores.put(0L, \"10\");\n ardelScores.put(1L, \"20\");\n ardelScores.put(2L, \"30\");\n\n CompletableFuture<Void> ardelExample = asyncCommands\n .armset(\"scores\", ardelScores)\n .thenCompose(res1 -> {\n System.out.println(res1);\n // >>> 3\n return asyncCommands.ardel(\"scores\", 1);\n })\n .thenCompose(res2 -> {\n System.out.println(res2);\n // >>> 1\n return asyncCommands.ardelrange(\"scores\", 0, 2);\n })\n .thenAccept(res3 -> {\n System.out.println(res3);\n // >>> 2\n })\n .toCompletableFuture();\n\n ardelExample.join();\n```\n\nExample:\n```java\nMap<Long, String> ardelParams = new HashMap<>();\n ardelParams.put(0L, \"10\");\n ardelParams.put(1L, \"20\");\n ardelParams.put(2L, \"30\");\n\n Mono<Long> ardel1 = reactiveCommands.armset(\"scores\", ardelParams).doOnNext(result -> {\n System.out.println(result); // >>> 3\n });\n\n ardel1.block();\n\n Mono<Long> ardel2 = reactiveCommands.ardel(\"scores\", 1).doOnNext(result -> {\n System.out.println(result); // >>> 1\n });\n\n ardel2.block();\n\n Mono<Long> ardel3 = reactiveCommands.ardelrange(\"scores\", 0, 2).doOnNext(result -> {\n System.out.println(result); // >>> 2\n });\n\n ardel3.block();\n```\n\nExample:\n```go\nmsetRes, err := rdb.ARMSet(ctx, \"scores\",\n\t\tredis.AREntry{Index: 0, Value: \"10\"},\n\t\tredis.AREntry{Index: 1, Value: \"20\"},\n\t\tredis.AREntry{Index: 2, Value: \"30\"},\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(msetRes) // >>> 3\n\n\tdelRes, err := rdb.ARDel(ctx, \"scores\", 1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(delRes) // >>> 1\n\n\tdelRangeRes, err := rdb.ARDelRange(ctx, \"scores\", redis.ARRange{Start: 0, End: 2}).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(delRangeRes) // >>> 2\n```\n\nExample:\n```php\n$res1 = $redis->armset('scores', [0 => '10', 1 => '20', 2 => '30']);\n echo $res1 . PHP_EOL; // >>> 3\n\n $res2 = $redis->ardel('scores', 1);\n echo $res2 . PHP_EOL; // >>> 1\n\n $res3 = $redis->ardelrange('scores', 0, 2);\n echo $res3 . PHP_EOL; // >>> 2\n```\n\nExample:\n```text\n> ARINFO readings\n 1) \"len\"\n 2) (integer) 3\n 3) \"count\"\n 4) (integer) 3\n 5) \"next-insert-index\"\n 6) (integer) 0\n...\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.614Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":73,"totalLines":3281,"estimatedTokens":25218}}500{"id":"doc-confluent_with_redis_cloud_docs-a7a64c88","source":"documentation","title":"Confluent with Redis Cloud | Docs","url":"https://redis.io/docs/latest/integrate/confluent-with-redis-cloud/","text":"{\"categories\":[\"docs\",\"integrate\",\"rc\"],\"description\":\"Describes how to integrate Redis Cloud into Confluent Cloud.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"di\",\"location\":\"body\",\"title\":\"Confluent with Redis Cloud\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\n$ base64 -i redis_ca.pem -o <truststore_file_name>\n```\n\nExample:\n```text\ndata:text/plain;base64\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.682Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":15,"estimatedTokens":137}}501{"id":"doc-deploy_a_node_js_app_with_prisma_orm_and_postgre-10a2b25d","source":"documentation","title":"Deploy a Node.js app with Prisma ORM and PostgreSQL – Render Docs","url":"https://render.com/docs/deploy-prisma-orm","text":"plaintextCopy to clipboarddatasource db { provider = \"postgresql\" url = env(\"DATABASE_URL\")} generator client { provider = \"prisma-client-js\"} model Post { id Int @id @default(autoincrement()) title String content String? published Boolean @default(false) author User? @relation(fields: [authorId], references: [id]) authorId Int?} model User { id Int @id @default(autoincrement()) email String @unique name String? posts Post[]}\n\njavascriptCopy to clipboardconst allUsers = await prisma.user.findMany({ include: { },})\n\nExample:\n```text\ndatasource db { provider = \"postgresql\" url = env(\"DATABASE_URL\")}\ngenerator client { provider = \"prisma-client-js\"}\nmodel Post { id Int @id @default(autoincrement()) title String content String? published Boolean @default(false) author User? @relation(fields: [authorId], references: [id]) authorId Int?}\nmodel User { id Int @id @default(autoincrement()) email String @unique name String? posts Post[]}\n```\n\nExample:\n```javascript\nconst allUsers = await prisma.user.findMany({ include: { posts: true },})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.853Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":18,"estimatedTokens":278}}502{"id":"doc-java_client_for_redis_docs-e6abfb19","source":"documentation","title":"Java client for Redis | Docs","url":"https://redis.io/docs/latest/integrate/jedis/","text":"{\"categories\":[\"docs\",\"integrate\",\"oss\",\"rs\",\"rc\"],\"description\":\"Learn how to build with Redis and Java\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"library\",\"location\":\"body\",\"title\":\"Java client for Redis\",\"tableOfContents\":{\"sections\":[{\"id\":\"overview\",\"title\":\"Overview\"},{\"id\":\"key-features\",\"title\":\"Key Features\"},{\"id\":\"getting-started\",\"title\":\"Getting Started\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.691Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":138}}503{"id":"doc-ft_dictdump_docs-9400e890","source":"documentation","title":"FT.DICTDUMP | Docs","url":"https://redis.io/docs/latest/commands/ft.dictdump/","text":"{\"acl_categories\":[\"@search\"],\"arguments\":[{\"name\":\"dict\",\"type\":\"string\"}],\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"readonly\"],\"complexity\":\"O(N), where N is the size of the dictionary\",\"description\":\"Dumps all terms in the given dictionary\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"search\",\"location\":\"body\",\"since\":\"1.4.0\",\"syntax_fmt\":\"FT.DICTDUMP dict\",\"title\":\"FT.DICTDUMP\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"examples\",\"title\":\"Examples\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"},{\"id\":\"see-also\",\"title\":\"See also\"},{\"id\":\"related-topics\",\"title\":\"Related topics\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nFT.DICTDUMP dict\n```\n\nExample:\n```text\ndictdump(\n dict_name: str // The dictionary name\n) → List[str] // All terms in the dictionary\n```\n\nExample:\n```text\nDICTDUMP(\n dictionary: RedisArgument // The dictionary name\n) → Promise<Array<string>> // All terms in the dictionary\n```\n\nExample:\n```text\nftDictDump(\n dict: String // The dictionary name\n) → Set<String> // All terms in the dictionary\n```\n\nExample:\n```text\nFTDictDump(\n ctx: context.Context,\n dict: string // The dictionary name\n) → *StringSliceCmd // All terms in the dictionary\n```\n\nExample:\n```text\nDictDump(\n dict: string // The dictionary name\n) → RedisResult[] // All terms in the dictionary\n```\n\nExample:\n```text\nDictDumpAsync(\n dict: string // The dictionary name\n) → Task<RedisResult[]> // All terms in the dictionary\n```\n\nExample:\n```text\nftdictdump(\n $dict: string // The dictionary name\n) → array // All terms in the dictionary\n```\n\nExample:\n```bash\n127.0.0.1:6379> FT.DICTDUMP dict\n1) \"foo\"\n2) \"bar\"\n3) \"hello world\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.723Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":9,"totalLines":68,"estimatedTokens":512}}504{"id":"doc-ft_config_set_docs-a0516ce9","source":"documentation","title":"FT.CONFIG SET | Docs","url":"https://redis.io/docs/latest/commands/ft.config-set/","text":"{\"acl_categories\":[\"@admin\",\"@search\"],\"arguments\":[{\"name\":\"option\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}],\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"complexity\":\"O(1)\",\"description\":\"Sets runtime configuration options\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"search\",\"location\":\"body\",\"since\":\"1.0.0\",\"syntax_fmt\":\"FT.CONFIG SET option value\",\"title\":\"FT.CONFIG SET\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"examples\",\"title\":\"Examples\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"},{\"id\":\"see-also\",\"title\":\"See also\"},{\"id\":\"related-topics\",\"title\":\"Related topics\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nFT.CONFIG SET option value\n```\n\nExample:\n```bash\n127.0.0.1:6379> FT.CONFIG SET TIMEOUT 42\nOK\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.725Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":16,"estimatedTokens":275}}505{"id":"doc-georadius_ro_docs-96d1a225","source":"documentation","title":"GEORADIUS_RO | Docs","url":"https://redis.io/docs/latest/commands/georadius_ro/","text":"{\"acl_categories\":[\"@read\",\"@geo\",\"@slow\"],\"arguments\":[{\"display_text\":\"key\",\"key_spec_index\":0,\"name\":\"key\",\"type\":\"key\"},{\"display_text\":\"longitude\",\"name\":\"longitude\",\"type\":\"double\"},{\"display_text\":\"latitude\",\"name\":\"latitude\",\"type\":\"double\"},{\"display_text\":\"radius\",\"name\":\"radius\",\"type\":\"double\"},{\"arguments\":[{\"display_text\":\"m\",\"name\":\"m\",\"token\":\"M\",\"type\":\"pure-token\"},{\"display_text\":\"km\",\"name\":\"km\",\"token\":\"KM\",\"type\":\"pure-token\"},{\"display_text\":\"ft\",\"name\":\"ft\",\"token\":\"FT\",\"type\":\"pure-token\"},{\"display_text\":\"mi\",\"name\":\"mi\",\"token\":\"MI\",\"type\":\"pure-token\"}],\"name\":\"unit\",\"type\":\"oneof\"},{\"display_text\":\"withcoord\",\"name\":\"withcoord\",\"optional\":true,\"token\":\"WITHCOORD\",\"type\":\"pure-token\"},{\"display_text\":\"withdist\",\"name\":\"withdist\",\"optional\":true,\"token\":\"WITHDIST\",\"type\":\"pure-token\"},{\"display_text\":\"withhash\",\"name\":\"withhash\",\"optional\":true,\"token\":\"WITHHASH\",\"type\":\"pure-token\"},{\"arguments\":[{\"display_text\":\"count\",\"name\":\"count\",\"token\":\"COUNT\",\"type\":\"integer\"},{\"display_text\":\"any\",\"name\":\"any\",\"optional\":true,\"since\":\"6.2.0\",\"token\":\"ANY\",\"type\":\"pure-token\"}],\"name\":\"count-block\",\"optional\":true,\"type\":\"block\"},{\"arguments\":[{\"display_text\":\"asc\",\"name\":\"asc\",\"token\":\"ASC\",\"type\":\"pure-token\"},{\"display_text\":\"desc\",\"name\":\"desc\",\"token\":\"DESC\",\"type\":\"pure-token\"}],\"name\":\"order\",\"optional\":true,\"type\":\"oneof\"}],\"arity\":-6,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"readonly\"],\"complexity\":\"O(N+log(M)) where N is the number of elements inside the bounding box of the circular area delimited by center and radius and M is the number of items inside the index.\",\"description\":\"Returns members from a geospatial index that are within a distance from a coordinate.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"geo\",\"key_specs\":[{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"}}],\"location\":\"body\",\"since\":\"3.2.10\",\"syntax_fmt\":\"GEORADIUS_RO key longitude latitude radius \\u003cM | KM | FT | MI\\u003e\\n [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC | DESC]\",\"title\":\"GEORADIUS_RO\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"optional-arguments\",\"title\":\"Optional arguments\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nGEORADIUS_RO key longitude latitude radius <M | KM | FT | MI>\n [WITHCOORD] [WITHDIST] [WITHHASH] [COUNT count [ANY]] [ASC | DESC]\n```\n\nExample:\n```text\nGEORADIUS_RO(\n ...args: Parameters<typeof parseGeoRadiusArguments>\n) → Any\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.750Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":18,"estimatedTokens":739}}506{"id":"doc-copy_docs-944e5e0d","source":"documentation","title":"COPY | Docs","url":"https://redis.io/docs/latest/commands/copy/","text":"{\"acl_categories\":[\"@keyspace\",\"@write\",\"@slow\"],\"arguments\":[{\"display_text\":\"source\",\"key_spec_index\":0,\"name\":\"source\",\"type\":\"key\"},{\"display_text\":\"destination\",\"key_spec_index\":1,\"name\":\"destination\",\"type\":\"key\"},{\"display_text\":\"destination-db\",\"name\":\"destination-db\",\"optional\":true,\"token\":\"DB\",\"type\":\"integer\"},{\"display_text\":\"replace\",\"name\":\"replace\",\"optional\":true,\"token\":\"REPLACE\",\"type\":\"pure-token\"}],\"arity\":-3,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"write\",\"denyoom\"],\"complexity\":\"O(N) worst case for collections, where N is the number of nested items. O(1) for string values.\",\"description\":\"Copies the value of a key to a new key.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"generic\",\"key_specs\":[{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"}},{\"OW\":true,\"begin_search\":{\"spec\":{\"index\":2},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"},\"update\":true}],\"location\":\"body\",\"since\":\"6.2.0\",\"syntax_fmt\":\"COPY source destination [DB destination-db] [REPLACE]\",\"title\":\"COPY\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"optional-arguments\",\"title\":\"Optional arguments\"},{\"id\":\"examples\",\"title\":\"Examples\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nCOPY source destination [DB destination-db] [REPLACE]\n```\n\nExample:\n```text\ncopy(\n source: str,\n destination: str,\n destination_db: Optional[int],\n replace: bool\n) → int\n```\n\nExample:\n```text\nCOPY(\n source: RedisArgument,\n destination: RedisArgument,\n options?: CopyOptions\n) → Any\n```\n\nExample:\n```text\ncopy(\n srcKey: byte[],\n dstKey: byte[],\n replace: boolean\n) → long // 1 if source was copied. 0 if source was not copied.\n\ncopy(\n srcKey: String,\n dstKey: String,\n replace: boolean\n) → long // 1 if source was copied. 0 if source was not copied.\n```\n\nExample:\n```text\ncopy(\n source: K, // the source key.\n destination: K // the destination key.\n) → Boolean // Boolean integer-reply specifically: true if source was copied. false if source was not copied.\n\ncopy(\n source: K, // the source key.\n destination: K, // the destination key.\n copyArgs: CopyArgs // the copy arguments.\n) → Boolean // Boolean integer-reply specifically: true if source was copied. false if source was not copied.\n```\n\nExample:\n```text\ncopy(\n source: K, // the source key.\n destination: K // the destination key.\n) → RedisFuture<Boolean> // Boolean integer-reply specifically: true if source was copied. false if source was not copied.\n\ncopy(\n source: K, // the source key.\n destination: K, // the destination key.\n copyArgs: CopyArgs // the copy arguments.\n) → RedisFuture<Boolean> // Boolean integer-reply specifically: true if source was copied. false if source was not copied.\n```\n\nExample:\n```text\ncopy(\n source: K, // the source key.\n destination: K // the destination key.\n) → Mono<Boolean> // Boolean integer-reply specifically: true if source was copied. false if source was not copied.\n\ncopy(\n source: K, // the source key.\n destination: K, // the destination key.\n copyArgs: CopyArgs // the copy arguments.\n) → Mono<Boolean> // Boolean integer-reply specifically: true if source was copied. false if source was not copied.\n```\n\nExample:\n```text\nCopy(\n ctx: context.Context,\n sourceKey: string,\n destKey: string,\n db: int,\n replace: bool\n) → *IntCmd\n```\n\nExample:\n```text\nKeyCopy(\n sourceKey: RedisKey, // The source key.\n destinationKey: RedisKey, // The destination key.\n destinationDatabase: int, // The destination database.\n replace: bool, // Whether to replace the destination key if it exists.\n flags: CommandFlags // The flags to use for this operation.\n) → bool // true if source was copied. false if source was not copied.\n```\n\nExample:\n```text\nKeyCopyAsync(\n sourceKey: RedisKey, // The source key.\n destinationKey: RedisKey, // The destination key.\n destinationDatabase: int, // The destination database.\n replace: bool, // Whether to replace the destination key if it exists.\n flags: CommandFlags // The flags to use for this operation.\n) → Task<bool> // true if source was copied. false if source was not copied.\n```\n\nExample:\n```text\ncopy(\n $src: string,\n $dst: string,\n $options: array|null\n) → bool\n```\n\nExample:\n```text\nSET dolly \"sheep\"\nCOPY dolly clone\nGET clone\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:40.773Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":12,"totalLines":135,"estimatedTokens":1224}}507{"id":"doc-lrange_docs-549cbabe","source":"documentation","title":"LRANGE | Docs","url":"https://redis.io/docs/latest/commands/lrange/","text":"{\"acl_categories\":[\"@read\",\"@list\",\"@slow\"],\"arguments\":[{\"display_text\":\"key\",\"key_spec_index\":0,\"name\":\"key\",\"type\":\"key\"},{\"display_text\":\"start\",\"name\":\"start\",\"type\":\"integer\"},{\"display_text\":\"stop\",\"name\":\"stop\",\"type\":\"integer\"}],\"arity\":4,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"readonly\"],\"complexity\":\"O(S+N) where S is the distance of start offset from HEAD for small lists, from nearest end (HEAD or TAIL) for large lists; and N is the number of elements in the specified range.\",\"description\":\"Returns a range of elements from a list.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"list\",\"key_specs\":[{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"}}],\"location\":\"body\",\"since\":\"1.0.0\",\"syntax_fmt\":\"LRANGE key start stop\",\"title\":\"LRANGE\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[{\"codetabsId\":\"cmds_list-steplrange\",\"commands\":[{\"acl_categories\":[\"@write\",\"@list\",\"@fast\"],\"complexity\":\"O(1)\",\"name\":\"RPUSH\"},{\"acl_categories\":[\"@read\",\"@list\",\"@slow\"],\"complexity\":\"O(S+N)\",\"name\":\"LRANGE\"}],\"description\":\"Foundational: Retrieve a range of elements from a list using LRANGE with start and stop indexes (supports negative indexes, inclusive range)\",\"difficulty\":\"beginner\",\"id\":\"lrange\",\"languages\":[{\"id\":\"redis-cli\",\"panelId\":\"panel_redis-cli_cmds_list-steplrange\"},{\"clientId\":\"redis-py\",\"clientName\":\"redis-py\",\"id\":\"Python\",\"langId\":\"python\",\"panelId\":\"panel_Python_cmds_list-steplrange\"},{\"id\":\"Node-js\",\"panelId\":\"panel_Nodejs_cmds_list-steplrange\"},{\"clientId\":\"ioredis\",\"clientName\":\"ioredis\",\"id\":\"ioredis\",\"langId\":\"javascript\",\"panelId\":\"panel_ioredis_cmds_list-steplrange\"},{\"clientId\":\"jedis\",\"clientName\":\"Jedis\",\"id\":\"Java-Sync\",\"langId\":\"java\",\"panelId\":\"panel_Java-Sync_cmds_list-steplrange\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Async\",\"langId\":\"java\",\"panelId\":\"panel_Java-Async_cmds_list-steplrange\"},{\"clientId\":\"lettuce\",\"clientName\":\"Lettuce\",\"id\":\"Java-Reactive\",\"langId\":\"java\",\"panelId\":\"panel_Java-Reactive_cmds_list-steplrange\"},{\"clientId\":\"go-redis\",\"clientName\":\"go-redis\",\"id\":\"Go\",\"langId\":\"go\",\"panelId\":\"panel_Go_cmds_list-steplrange\"},{\"id\":\"dotnet-Sync (SE-Redis)\",\"panelId\":\"panel_Csharp-Sync (SERedis)_cmds_list-steplrange\"},{\"clientId\":\"predis\",\"clientName\":\"Predis\",\"id\":\"PHP\",\"langId\":\"php\",\"panelId\":\"panel_PHP_cmds_list-steplrange\"},{\"clientId\":\"redis-rb\",\"clientName\":\"redis-rb\",\"id\":\"Ruby\",\"langId\":\"ruby\",\"panelId\":\"panel_Ruby_cmds_list-steplrange\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Sync\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Sync_cmds_list-steplrange\"},{\"clientId\":\"redis-rs\",\"clientName\":\"redis-rs\",\"id\":\"Rust-Async\",\"langId\":\"rust\",\"panelId\":\"panel_Rust-Async_cmds_list-steplrange\"}]}]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nLRANGE key start stop\n```\n\nExample:\n```text\nlrange(\n name: KeyT,\n start: int,\n end: int\n) → Union[Awaitable[list], list]\n```\n\nExample:\n```text\nLRANGE(\n key: RedisArgument,\n start: number,\n stop: number\n) → Any\n```\n\nExample:\n```text\nlrange(\n key: String,\n start: long,\n stop: long\n) → List<String> // A list of elements in the specified range\n\nlrange(\n key: String,\n start: long,\n stop: long\n) → List<String> // A list of elements in the specified range\n```\n\nExample:\n```text\nlrange(\n key: K, // the key.\n start: long, // the start type: long.\n stop: long // the stop type: long.\n) → List<V> // Long count of elements in the specified range.\n\nlrange(\n channel: ValueStreamingChannel<V>, // the channel.\n key: K, // the key.\n start: long, // the start type: long.\n stop: long // the stop type: long.\n) → Long // Long count of elements in the specified range.\n```\n\nExample:\n```text\nlrange(\n key: K, // the key.\n start: long, // the start type: long.\n stop: long // the stop type: long.\n) → RedisFuture<List<V>> // Long count of elements in the specified range.\n\nlrange(\n channel: ValueStreamingChannel<V>, // the channel.\n key: K, // the key.\n start: long, // the start type: long.\n stop: long // the stop type: long.\n) → RedisFuture<Long> // Long count of elements in the specified range.\n```\n\nExample:\n```text\nlrange(\n key: K, // the key.\n start: long, // the start type: long.\n stop: long // the stop type: long.\n) → Flux<V> // Long count of elements in the specified range. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #lrange.\n\nlrange(\n channel: ValueStreamingChannel<V>, // the channel.\n key: K, // the key.\n start: long, // the start type: long.\n stop: long // the stop type: long.\n) → Mono<Long> // Long count of elements in the specified range. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #lrange.\n```\n\nExample:\n```text\nLRange(\n ctx: context.Context,\n key: string,\n start: Any,\n stop: int64\n) → *StringSliceCmd\n```\n\nExample:\n```text\nListRange(\n key: RedisKey, // The key of the list.\n start: long, // The start index of the list.\n stop: long, // The stop index of the list.\n flags: CommandFlags // The flags to use for this operation.\n) → RedisValue[] // List of elements in the specified range.\n\nListRange(\n key: RedisKey, // The key of the list.\n start: long, // The start index of the list.\n stop: long, // The stop index of the list.\n flags: CommandFlags // The flags to use for this operation.\n) → RedisValue[] // List of elements in the specified range.\n```\n\nExample:\n```text\nlrange(\n $key: string,\n $start: int,\n $stop: int\n) → string[]\n```\n\nExample:\n```text\nlrange(\n key: K,\n start: isize,\n stop: isize\n) → (Vec<String>)\n```\n\nExample:\n```python\nres4 = r.rpush(\"mylist\", \"one\");\nprint(res4) # >>> 1\n\nres5 = r.rpush(\"mylist\", \"two\")\nprint(res5) # >>> 2\n\nres6 = r.rpush(\"mylist\", \"three\")\nprint(res6) # >>> 3\n\nres7 = r.lrange('mylist', 0, 0)\nprint(res7) # >>> [ 'one' ]\n\nres8 = r.lrange('mylist', -3, 2)\nprint(res8) # >>> [ 'one', 'two', 'three' ]\n\nres9 = r.lrange('mylist', -100, 100)\nprint(res9) # >>> [ 'one', 'two', 'three' ]\n\nres10 = r.lrange('mylist', 5, 10)\nprint(res10) # >>> []\n```\n\nExample:\n```python\nimport redis\n\nr = redis.Redis(decode_responses=True)\n\nres1 = r.lpush(\"mylist\", \"world\")\nprint(res1) # >>> 1\n\nres2 = r.lpush(\"mylist\", \"hello\")\nprint(res2) # >>> 2\n\nres3 = r.lrange(\"mylist\", 0, -1)\nprint(res3) # >>> [ \"hello\", \"world\" ]\n\n\nres4 = r.rpush(\"mylist\", \"one\");\nprint(res4) # >>> 1\n\nres5 = r.rpush(\"mylist\", \"two\")\nprint(res5) # >>> 2\n\nres6 = r.rpush(\"mylist\", \"three\")\nprint(res6) # >>> 3\n\nres7 = r.lrange('mylist', 0, 0)\nprint(res7) # >>> [ 'one' ]\n\nres8 = r.lrange('mylist', -3, 2)\nprint(res8) # >>> [ 'one', 'two', 'three' ]\n\nres9 = r.lrange('mylist', -100, 100)\nprint(res9) # >>> [ 'one', 'two', 'three' ]\n\nres10 = r.lrange('mylist', 5, 10)\nprint(res10) # >>> []\n\n\nres11 = r.lpush(\"mylist\", \"World\")\nprint(res11) # >>> 1\n\nres12 = r.lpush(\"mylist\", \"Hello\")\nprint(res12) # >>> 2\n\nres13 = r.llen(\"mylist\")\nprint(res13) # >>> 2\n\n\nres14 = r.rpush(\"mylist\", \"hello\")\nprint(res14) # >>> 1\n\nres15 = r.rpush(\"mylist\", \"world\")\nprint(res15) # >>> 2\n\nres16 = r.lrange(\"mylist\", 0, -1)\nprint(res16) # >>> [ \"hello\", \"world\" ]\n\n\nres17 = r.rpush(\"mylist\", *[\"one\", \"two\", \"three\", \"four\", \"five\"])\nprint(res17) # >>> 5\n\nres18 = r.lpop(\"mylist\")\nprint(res18) # >>> \"one\"\n\nres19 = r.lpop(\"mylist\", 2)\nprint(res19) # >>> ['two', 'three']\n\nres17 = r.lrange(\"mylist\", 0, -1)\nprint(res17) # >>> [ \"four\", \"five\" ]\n\n\nres18 = r.rpush(\"mylist\", *[\"one\", \"two\", \"three\", \"four\", \"five\"])\nprint(res18) # >>> 5\n\nres19 = r.rpop(\"mylist\")\nprint(res19) # >>> \"five\"\n\nres20 = r.rpop(\"mylist\", 2)\nprint(res20) # >>> ['four', 'three']\n\nres21 = r.lrange(\"mylist\", 0, -1)\nprint(res21) # >>> [ \"one\", \"two\" ]\n```\n\nExample:\n```node\nconst res4 = await client.rPush('mylist', 'one');\nconsole.log(res4); // 1\n\nconst res5 = await client.rPush('mylist', 'two');\nconsole.log(res5); // 2\n\nconst res6 = await client.rPush('mylist', 'three');\nconsole.log(res6); // 3\n\nconst res7 = await client.lRange('mylist', 0, 0);\nconsole.log(res7); // [ 'one' ]\n\nconst res8 = await client.lRange('mylist', -3, 2);\nconsole.log(res8); // [ 'one', 'two', 'three' ]\n\nconst res9 = await client.lRange('mylist', -100, 100);\nconsole.log(res9); // [ 'one', 'two', 'three' ]\n\nconst res10 = await client.lRange('mylist', 5, 10);\nconsole.log(res10); // []\n```\n\nExample:\n```node\nimport assert from 'node:assert';\nimport { createClient } from 'redis';\n\nconst client = createClient();\nawait client.connect().catch(console.error);\n\nconst res1 = await client.lPush('mylist', 'world');\nconsole.log(res1); // 1\n\nconst res2 = await client.lPush('mylist', 'hello');\nconsole.log(res2); // 2\n\nconst res3 = await client.lRange('mylist', 0, -1);\nconsole.log(res3); // [ 'hello', 'world' ]\n\n\nconst res4 = await client.rPush('mylist', 'one');\nconsole.log(res4); // 1\n\nconst res5 = await client.rPush('mylist', 'two');\nconsole.log(res5); // 2\n\nconst res6 = await client.rPush('mylist', 'three');\nconsole.log(res6); // 3\n\nconst res7 = await client.lRange('mylist', 0, 0);\nconsole.log(res7); // [ 'one' ]\n\nconst res8 = await client.lRange('mylist', -3, 2);\nconsole.log(res8); // [ 'one', 'two', 'three' ]\n\nconst res9 = await client.lRange('mylist', -100, 100);\nconsole.log(res9); // [ 'one', 'two', 'three' ]\n\nconst res10 = await client.lRange('mylist', 5, 10);\nconsole.log(res10); // []\n\n\nconst res11 = await client.lPush('mylist', 'World');\nconsole.log(res11); // 1\n\nconst res12 = await client.lPush('mylist', 'Hello');\nconsole.log(res12); // 2\n\nconst res13 = await client.lLen('mylist');\nconsole.log(res13); // 2\n\n\nconst res14 = await client.rPush('mylist', 'hello');\nconsole.log(res14); // 1\n\nconst res15 = await client.rPush('mylist', 'world');\nconsole.log(res15); // 2\n\nconst res16 = await client.lRange('mylist', 0, -1);\nconsole.log(res16); // [ 'hello', 'world' ]\n\n\nconst res17 = await client.rPush('mylist', [\"one\", \"two\", \"three\", \"four\", \"five\"]);\nconsole.log(res17); // 5\n\nconst res18 = await client.lPop('mylist');\nconsole.log(res18); // 'one'\n\nconst res19 = await client.lPopCount('mylist', 2);\nconsole.log(res19); // [ 'two', 'three' ]\n\nconst res20 = await client.lRange('mylist', 0, -1);\nconsole.log(res20); // [ 'four', 'five' ]\n\n\nconst res21 = await client.rPush('mylist', [\"one\", \"two\", \"three\", \"four\", \"five\"]);\nconsole.log(res21); // 5\n\nconst res22 = await client.rPop('mylist');\nconsole.log(res22); // 'five'\n\nconst res23 = await client.rPopCount('mylist', 2);\nconsole.log(res23); // [ 'four', 'three' ]\n\nconst res24 = await client.lRange('mylist', 0, -1);\nconsole.log(res24); // [ 'one', 'two' ]\n\n\nawait client.close();\n```\n\nExample:\n```node\nconst res4 = await redis.rpush('mylist', 'one');\nconsole.log(res4); // >>> 1\n\nconst res5 = await redis.rpush('mylist', 'two');\nconsole.log(res5); // >>> 2\n\nconst res6 = await redis.rpush('mylist', 'three');\nconsole.log(res6); // >>> 3\n\nconst res7 = await redis.lrange('mylist', 0, 0);\nconsole.log(res7); // >>> ['one']\n\nconst res8 = await redis.lrange('mylist', -3, 2);\nconsole.log(res8); // >>> ['one', 'two', 'three']\n\nconst res9 = await redis.lrange('mylist', -100, 100);\nconsole.log(res9); // >>> ['one', 'two', 'three']\n\nconst res10 = await redis.lrange('mylist', 5, 10);\nconsole.log(res10); // >>> []\n```\n\nExample:\n```node\nimport assert from 'node:assert';\nimport { Redis } from 'ioredis';\n\nconst redis = new Redis();\n\nconst res1 = await redis.lpush('mylist', 'world');\nconsole.log(res1); // >>> 1\n\nconst res2 = await redis.lpush('mylist', 'hello');\nconsole.log(res2); // >>> 2\n\nconst res3 = await redis.lrange('mylist', 0, -1);\nconsole.log(res3); // >>> ['hello', 'world']\n\n\nconst res4 = await redis.rpush('mylist', 'one');\nconsole.log(res4); // >>> 1\n\nconst res5 = await redis.rpush('mylist', 'two');\nconsole.log(res5); // >>> 2\n\nconst res6 = await redis.rpush('mylist', 'three');\nconsole.log(res6); // >>> 3\n\nconst res7 = await redis.lrange('mylist', 0, 0);\nconsole.log(res7); // >>> ['one']\n\nconst res8 = await redis.lrange('mylist', -3, 2);\nconsole.log(res8); // >>> ['one', 'two', 'three']\n\nconst res9 = await redis.lrange('mylist', -100, 100);\nconsole.log(res9); // >>> ['one', 'two', 'three']\n\nconst res10 = await redis.lrange('mylist', 5, 10);\nconsole.log(res10); // >>> []\n\n\nconst res11 = await redis.lpush('mylist', 'World');\nconsole.log(res11); // >>> 1\n\nconst res12 = await redis.lpush('mylist', 'Hello');\nconsole.log(res12); // >>> 2\n\nconst res13 = await redis.llen('mylist');\nconsole.log(res13); // >>> 2\n\n\nconst res14 = await redis.rpush('mylist', 'hello');\nconsole.log(res14); // >>> 1\n\nconst res15 = await redis.rpush('mylist', 'world');\nconsole.log(res15); // >>> 2\n\nconst res16 = await redis.lrange('mylist', 0, -1);\nconsole.log(res16); // >>> ['hello', 'world']\n\n\nconst res17 = await redis.rpush('mylist', 'one', 'two', 'three', 'four', 'five');\nconsole.log(res17); // >>> 5\n\nconst res18 = await redis.lpop('mylist');\nconsole.log(res18); // >>> one\n\nconst res19 = await redis.lpop('mylist', 2);\nconsole.log(res19); // >>> ['two', 'three']\n\nconst res20 = await redis.lrange('mylist', 0, -1);\nconsole.log(res20); // >>> ['four', 'five']\n\n\nconst res21 = await redis.rpush('mylist', 'one', 'two', 'three', 'four', 'five');\nconsole.log(res21); // >>> 5\n\nconst res22 = await redis.rpop('mylist');\nconsole.log(res22); // >>> five\n\nconst res23 = await redis.rpop('mylist', 2);\nconsole.log(res23); // >>> ['four', 'three']\n\nconst res24 = await redis.lrange('mylist', 0, -1);\nconsole.log(res24); // >>> ['one', 'two']\n\n\nredis.disconnect();\n```\n\nExample:\n```java\nlong lRangeResult1 = jedis.rpush(\"mylist\", \"one\", \"two\", \"three\");\n System.out.println(lRangeResult1); // >>> 3\n\n List<String> lRangeResult2 = jedis.lrange(\"mylist\", 0, 0);\n System.out.println(lRangeResult2); // >>> [one]\n\n List<String> lRangeResult3 = jedis.lrange(\"mylist\", -3, 2);\n System.out.println(lRangeResult3); // >>> [one, two, three]\n\n List<String> lRangeResult4 = jedis.lrange(\"mylist\", -100, 100);\n System.out.println(lRangeResult4); // >>> [one, two, three]\n\n List<String> lRangeResult5 = jedis.lrange(\"mylist\", 5, 10);\n System.out.println(lRangeResult5); // >>> []\n```\n\nExample:\n```java\nimport java.util.List;\n\nimport redis.clients.jedis.RedisClient;\n\nimport static org.junit.jupiter.api.Assertions.assertEquals;\n\npublic class CmdsListExample {\n\n public void run() {\n RedisClient jedis = RedisClient.create(\"redis://localhost:6379\");\n\n long lLenResult1 = jedis.lpush(\"mylist\", \"World\");\n System.out.println(lLenResult1); // >>> 1\n\n long lLenResult2 = jedis.lpush(\"mylist\", \"Hello\");\n System.out.println(lLenResult2); // >>> 2\n\n long lLenResult3 = jedis.llen(\"mylist\");\n System.out.println(lLenResult3); // >>> 2\n\n long lPopResult1 = jedis.rpush(\n \"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\"\n );\n System.out.println(lPopResult1); // >>> 5\n\n String lPopResult2 = jedis.lpop(\"mylist\");\n System.out.println(lPopResult2); // >>> one\n\n List<String> lPopResult3 = jedis.lpop(\"mylist\", 2);\n System.out.println(lPopResult3); // >>> [two, three]\n\n List<String> lPopResult4 = jedis.lrange(\"mylist\", 0, -1);\n System.out.println(lPopResult4); // >>> [four, five]\n\n long lPushResult1 = jedis.lpush(\"mylist\", \"World\");\n System.out.println(lPushResult1); // >>> 1\n\n long lPushResult2 = jedis.lpush(\"mylist\", \"Hello\");\n System.out.println(lPushResult2); // >>> 2\n\n List<String> lPushResult3 = jedis.lrange(\"mylist\", 0, -1);\n System.out.println(lPushResult3);\n // >>> [Hello, World]\n\n long lRangeResult1 = jedis.rpush(\"mylist\", \"one\", \"two\", \"three\");\n System.out.println(lRangeResult1); // >>> 3\n\n List<String> lRangeResult2 = jedis.lrange(\"mylist\", 0, 0);\n System.out.println(lRangeResult2); // >>> [one]\n\n List<String> lRangeResult3 = jedis.lrange(\"mylist\", -3, 2);\n System.out.println(lRangeResult3); // >>> [one, two, three]\n\n List<String> lRangeResult4 = jedis.lrange(\"mylist\", -100, 100);\n System.out.println(lRangeResult4); // >>> [one, two, three]\n\n List<String> lRangeResult5 = jedis.lrange(\"mylist\", 5, 10);\n System.out.println(lRangeResult5); // >>> []\n\n long rPopResult1 = jedis.rpush(\n \"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\"\n );\n System.out.println(rPopResult1); // >>> 5\n\n String rPopResult2 = jedis.rpop(\"mylist\");\n System.out.println(rPopResult2); // >>> five\n\n List<String> rPopResult3 = jedis.rpop(\"mylist\", 2);\n System.out.println(rPopResult3); // >>> [four, three]\n\n List<String> rPopResult4 = jedis.lrange(\"mylist\", 0, -1);\n System.out.println(rPopResult4); // >>> [one, two]\n\n long rPushResult1 = jedis.rpush(\"mylist\", \"hello\");\n System.out.println(rPushResult1); // >>> 1\n\n long rPushResult2 = jedis.rpush(\"mylist\", \"world\");\n System.out.println(rPushResult2); // >>> 2\n\n List<String> rPushResult3 = jedis.lrange(\"mylist\", 0, -1);\n System.out.println(rPushResult3); // >>> [hello, world]\n\n jedis.close();\n }\n}\n```\n\nExample:\n```java\nCompletableFuture<Void> lrange = asyncCommands.rpush(\"mylist\", \"one\").thenCompose(res4 -> {\n System.out.println(res4); // >>> 1\n\n return asyncCommands.rpush(\"mylist\", \"two\");\n }).thenCompose(res5 -> {\n System.out.println(res5); // >>> 2\n\n return asyncCommands.rpush(\"mylist\", \"three\");\n }).thenCompose(res6 -> {\n System.out.println(res6); // >>> 3\n\n return asyncCommands.lrange(\"mylist\", 0, 0);\n }).thenCompose(res7 -> {\n System.out.println(res7); // >>> [one]\n\n return asyncCommands.lrange(\"mylist\", -3, 2);\n }).thenCompose(res8 -> {\n System.out.println(res8); // >>> [one, two, three]\n\n return asyncCommands.lrange(\"mylist\", -100, 100);\n }).thenCompose(res9 -> {\n System.out.println(res9); // >>> [one, two, three]\n\n return asyncCommands.lrange(\"mylist\", 5, 10);\n })\n .thenAccept(res10 -> System.out.println(res10)) // >>> []\n .toCompletableFuture();\n```\n\nExample:\n```java\npackage io.redis.examples.async;\n\nimport io.lettuce.core.*;\nimport io.lettuce.core.api.async.RedisAsyncCommands;\nimport io.lettuce.core.api.StatefulRedisConnection;\n\nimport java.util.concurrent.CompletableFuture;\n\npublic class CmdsListExample {\n\n public void run() {\n RedisClient redisClient = RedisClient.create(\"redis://localhost:6379\");\n\n try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {\n RedisAsyncCommands<String, String> asyncCommands = connection.async();\n\n CompletableFuture<Void> lpush = asyncCommands.lpush(\"mylist\", \"world\").thenCompose(res1 -> {\n System.out.println(res1); // >>> 1\n\n return asyncCommands.lpush(\"mylist\", \"hello\");\n }).thenCompose(res2 -> {\n System.out.println(res2); // >>> 2\n\n return asyncCommands.lrange(\"mylist\", 0, -1);\n })\n .thenAccept(res3 -> System.out.println(res3)) // >>> [hello, world]\n .toCompletableFuture();\n lpush.join();\n\n\n CompletableFuture<Void> lrange = asyncCommands.rpush(\"mylist\", \"one\").thenCompose(res4 -> {\n System.out.println(res4); // >>> 1\n\n return asyncCommands.rpush(\"mylist\", \"two\");\n }).thenCompose(res5 -> {\n System.out.println(res5); // >>> 2\n\n return asyncCommands.rpush(\"mylist\", \"three\");\n }).thenCompose(res6 -> {\n System.out.println(res6); // >>> 3\n\n return asyncCommands.lrange(\"mylist\", 0, 0);\n }).thenCompose(res7 -> {\n System.out.println(res7); // >>> [one]\n\n return asyncCommands.lrange(\"mylist\", -3, 2);\n }).thenCompose(res8 -> {\n System.out.println(res8); // >>> [one, two, three]\n\n return asyncCommands.lrange(\"mylist\", -100, 100);\n }).thenCompose(res9 -> {\n System.out.println(res9); // >>> [one, two, three]\n\n return asyncCommands.lrange(\"mylist\", 5, 10);\n })\n .thenAccept(res10 -> System.out.println(res10)) // >>> []\n .toCompletableFuture();\n lrange.join();\n\n\n CompletableFuture<Void> llen = asyncCommands.lpush(\"mylist\", \"World\").thenCompose(res11 -> {\n System.out.println(res11); // >>> 1\n\n return asyncCommands.lpush(\"mylist\", \"Hello\");\n }).thenCompose(res12 -> {\n System.out.println(res12); // >>> 2\n\n return asyncCommands.llen(\"mylist\");\n })\n .thenAccept(res13 -> System.out.println(res13)) // >>> 2\n .toCompletableFuture();\n llen.join();\n\n\n CompletableFuture<Void> rpush = asyncCommands.rpush(\"mylist\", \"hello\").thenCompose(res14 -> {\n System.out.println(res14); // >>> 1\n\n return asyncCommands.rpush(\"mylist\", \"world\");\n }).thenCompose(res15 -> {\n System.out.println(res15); // >>> 2\n\n return asyncCommands.lrange(\"mylist\", 0, -1);\n })\n .thenAccept(res16 -> System.out.println(res16)) // >>> [hello, world]\n .toCompletableFuture();\n rpush.join();\n\n\n CompletableFuture<Void> lpop = asyncCommands.rpush(\"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\")\n .thenCompose(res17 -> {\n System.out.println(res17); // >>> 5\n\n return asyncCommands.lpop(\"mylist\");\n }).thenCompose(res18 -> {\n System.out.println(res18); // >>> one\n\n return asyncCommands.lpop(\"mylist\", 2);\n }).thenCompose(res19 -> {\n System.out.println(res19); // >>> [two, three]\n\n return asyncCommands.lrange(\"mylist\", 0, -1);\n })\n .thenAccept(res17_final -> System.out.println(res17_final)) // >>> [four, five]\n .toCompletableFuture();\n lpop.join();\n\n\n CompletableFuture<Void> rpop = asyncCommands.rpush(\"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\")\n .thenCompose(res18 -> {\n System.out.println(res18); // >>> 5\n\n return asyncCommands.rpop(\"mylist\");\n }).thenCompose(res19 -> {\n System.out.println(res19); // >>> five\n\n return asyncCommands.rpop(\"mylist\", 2);\n }).thenCompose(res20 -> {\n System.out.println(res20); // >>> [four, three]\n\n return asyncCommands.lrange(\"mylist\", 0, -1);\n })\n .thenAccept(res21 -> System.out.println(res21)) // >>> [one, two]\n .toCompletableFuture();\n rpop.join();\n\n\n } finally {\n redisClient.shutdown();\n }\n }\n\n}\n```\n\nExample:\n```java\nMono<Void> lrange = reactiveCommands.rpush(\"mylist\", \"one\").doOnNext(res4 -> {\n System.out.println(res4); // >>> 1\n }).flatMap(res4 -> reactiveCommands.rpush(\"mylist\", \"two\")).doOnNext(res5 -> {\n System.out.println(res5); // >>> 2\n }).flatMap(res5 -> reactiveCommands.rpush(\"mylist\", \"three\")).doOnNext(res6 -> {\n System.out.println(res6); // >>> 3\n }).flatMap(res6 -> reactiveCommands.lrange(\"mylist\", 0, 0).collectList()).doOnNext(res7 -> {\n System.out.println(res7); // >>> [one]\n }).flatMap(res7 -> reactiveCommands.lrange(\"mylist\", -3, 2).collectList()).doOnNext(res8 -> {\n System.out.println(res8); // >>> [one, two, three]\n }).flatMap(res8 -> reactiveCommands.lrange(\"mylist\", -100, 100).collectList()).doOnNext(res9 -> {\n System.out.println(res9); // >>> [one, two, three]\n }).flatMap(res9 -> reactiveCommands.lrange(\"mylist\", 5, 10).collectList()).doOnNext(res10 -> {\n System.out.println(res10); // >>> []\n }).then();\n```\n\nExample:\n```java\npackage io.redis.examples.reactive;\n\nimport io.lettuce.core.*;\nimport io.lettuce.core.api.reactive.RedisReactiveCommands;\nimport io.lettuce.core.api.StatefulRedisConnection;\n\n\nimport reactor.core.publisher.Mono;\n\npublic class CmdsListExample {\n\n public void run() {\n RedisClient redisClient = RedisClient.create(\"redis://localhost:6379\");\n\n try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {\n RedisReactiveCommands<String, String> reactiveCommands = connection.reactive();\n\n Mono<Void> lpush = reactiveCommands.lpush(\"mylist\", \"world\").doOnNext(res1 -> {\n System.out.println(res1); // >>> 1\n }).flatMap(res1 -> reactiveCommands.lpush(\"mylist\", \"hello\")).doOnNext(res2 -> {\n System.out.println(res2); // >>> 2\n }).flatMap(res2 -> reactiveCommands.lrange(\"mylist\", 0, -1).collectList()).doOnNext(res3 -> {\n System.out.println(res3); // >>> [hello, world]\n }).then();\n lpush.block();\n reactiveCommands.del(\"mylist\").block();\n\n Mono<Void> lrange = reactiveCommands.rpush(\"mylist\", \"one\").doOnNext(res4 -> {\n System.out.println(res4); // >>> 1\n }).flatMap(res4 -> reactiveCommands.rpush(\"mylist\", \"two\")).doOnNext(res5 -> {\n System.out.println(res5); // >>> 2\n }).flatMap(res5 -> reactiveCommands.rpush(\"mylist\", \"three\")).doOnNext(res6 -> {\n System.out.println(res6); // >>> 3\n }).flatMap(res6 -> reactiveCommands.lrange(\"mylist\", 0, 0).collectList()).doOnNext(res7 -> {\n System.out.println(res7); // >>> [one]\n }).flatMap(res7 -> reactiveCommands.lrange(\"mylist\", -3, 2).collectList()).doOnNext(res8 -> {\n System.out.println(res8); // >>> [one, two, three]\n }).flatMap(res8 -> reactiveCommands.lrange(\"mylist\", -100, 100).collectList()).doOnNext(res9 -> {\n System.out.println(res9); // >>> [one, two, three]\n }).flatMap(res9 -> reactiveCommands.lrange(\"mylist\", 5, 10).collectList()).doOnNext(res10 -> {\n System.out.println(res10); // >>> []\n }).then();\n lrange.block();\n reactiveCommands.del(\"mylist\").block();\n\n Mono<Void> llen = reactiveCommands.lpush(\"mylist\", \"World\").doOnNext(res11 -> {\n System.out.println(res11); // >>> 1\n }).flatMap(res11 -> reactiveCommands.lpush(\"mylist\", \"Hello\")).doOnNext(res12 -> {\n System.out.println(res12); // >>> 2\n }).flatMap(res12 -> reactiveCommands.llen(\"mylist\")).doOnNext(res13 -> {\n System.out.println(res13); // >>> 2\n }).then();\n llen.block();\n reactiveCommands.del(\"mylist\").block();\n\n Mono<Void> rpush = reactiveCommands.rpush(\"mylist\", \"hello\").doOnNext(res14 -> {\n System.out.println(res14); // >>> 1\n }).flatMap(res14 -> reactiveCommands.rpush(\"mylist\", \"world\")).doOnNext(res15 -> {\n System.out.println(res15); // >>> 2\n }).flatMap(res15 -> reactiveCommands.lrange(\"mylist\", 0, -1).collectList()).doOnNext(res16 -> {\n System.out.println(res16); // >>> [hello, world]\n }).then();\n rpush.block();\n reactiveCommands.del(\"mylist\").block();\n\n Mono<Void> lpop = reactiveCommands.rpush(\"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\").doOnNext(res17 -> {\n System.out.println(res17); // >>> 5\n }).flatMap(res17 -> reactiveCommands.lpop(\"mylist\")).doOnNext(res18 -> {\n System.out.println(res18); // >>> one\n }).flatMap(res18 -> reactiveCommands.lpop(\"mylist\", 2).collectList()).doOnNext(res19 -> {\n System.out.println(res19); // >>> [two, three]\n }).flatMap(res19 -> reactiveCommands.lrange(\"mylist\", 0, -1).collectList()).doOnNext(res17_final -> {\n System.out.println(res17_final); // >>> [four, five]\n }).then();\n lpop.block();\n reactiveCommands.del(\"mylist\").block();\n\n Mono<Void> rpop = reactiveCommands.rpush(\"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\").doOnNext(res18 -> {\n System.out.println(res18); // >>> 5\n }).flatMap(res18 -> reactiveCommands.rpop(\"mylist\")).doOnNext(res19 -> {\n System.out.println(res19); // >>> five\n }).flatMap(res19 -> reactiveCommands.rpop(\"mylist\", 2).collectList()).doOnNext(res20 -> {\n System.out.println(res20); // >>> [four, three]\n }).flatMap(res20 -> reactiveCommands.lrange(\"mylist\", 0, -1).collectList()).doOnNext(res21 -> {\n System.out.println(res21); // >>> [one, two]\n }).then();\n rpop.block();\n reactiveCommands.del(\"mylist\").block();\n\n } finally {\n redisClient.shutdown();\n }\n }\n\n}\n```\n\nExample:\n```go\nRPushResult, err := rdb.RPush(ctx, \"mylist\",\n\t\t\"one\", \"two\", \"three\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(RPushResult) // >>> 3\n\n\tlRangeResult1, err := rdb.LRange(ctx, \"mylist\", 0, 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult1) // >>> [one]\n\n\tlRangeResult2, err := rdb.LRange(ctx, \"mylist\", -3, 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult2) // >>> [one two three]\n\n\tlRangeResult3, err := rdb.LRange(ctx, \"mylist\", -100, 100).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult3) // >>> [one two three]\n\n\tlRangeResult4, err := rdb.LRange(ctx, \"mylist\", 5, 10).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult4) // >>> []\n```\n\nExample:\n```go\npackage example_commands_test\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/redis/go-redis/v9\"\n)\n\n\nfunc ExampleClient_cmd_llen() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tlPushResult1, err := rdb.LPush(ctx, \"mylist\", \"World\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lPushResult1) // >>> 1\n\n\tlPushResult2, err := rdb.LPush(ctx, \"mylist\", \"Hello\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lPushResult2) // >>> 2\n\n\tlLenResult, err := rdb.LLen(ctx, \"mylist\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lLenResult) // >>> 2\n\n}\nfunc ExampleClient_cmd_lpop() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tRPushResult, err := rdb.RPush(ctx,\n\t\t\"mylist\", \"one\", \"two\", \"three\", \"four\", \"five\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(RPushResult) // >>> 5\n\n\tlPopResult, err := rdb.LPop(ctx, \"mylist\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lPopResult) // >>> one\n\n\tlPopCountResult, err := rdb.LPopCount(ctx, \"mylist\", 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lPopCountResult) // >>> [two three]\n\n\tlRangeResult, err := rdb.LRange(ctx, \"mylist\", 0, -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult) // >>> [four five]\n\n}\n\nfunc ExampleClient_cmd_lpush() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tlPushResult1, err := rdb.LPush(ctx, \"mylist\", \"World\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lPushResult1) // >>> 1\n\n\tlPushResult2, err := rdb.LPush(ctx, \"mylist\", \"Hello\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lPushResult2) // >>> 2\n\n\tlRangeResult, err := rdb.LRange(ctx, \"mylist\", 0, -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult) // >>> [Hello World]\n\n}\n\nfunc ExampleClient_cmd_lrange() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\tRPushResult, err := rdb.RPush(ctx, \"mylist\",\n\t\t\"one\", \"two\", \"three\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(RPushResult) // >>> 3\n\n\tlRangeResult1, err := rdb.LRange(ctx, \"mylist\", 0, 0).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult1) // >>> [one]\n\n\tlRangeResult2, err := rdb.LRange(ctx, \"mylist\", -3, 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult2) // >>> [one two three]\n\n\tlRangeResult3, err := rdb.LRange(ctx, \"mylist\", -100, 100).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult3) // >>> [one two three]\n\n\tlRangeResult4, err := rdb.LRange(ctx, \"mylist\", 5, 10).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult4) // >>> []\n\n}\n\nfunc ExampleClient_cmd_rpop() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\trPushResult, err := rdb.RPush(ctx, \"mylist\",\n\t\t\"one\", \"two\", \"three\", \"four\", \"five\",\n\t).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rPushResult) // >>> 5\n\n\trPopResult, err := rdb.RPop(ctx, \"mylist\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rPopResult) // >>> five\n\n\trPopCountResult, err := rdb.RPopCount(ctx, \"mylist\", 2).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rPopCountResult) // >>> [four three]\n\n\tlRangeResult, err := rdb.LRange(ctx, \"mylist\", 0, -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult) // >>> [one two]\n\n}\n\nfunc ExampleClient_cmd_rpush() {\n\tctx := context.Background()\n\n\trdb := redis.NewClient(&redis.Options{\n\t\tAddr: \"localhost:6379\",\n\t\tPassword: \"\", // no password docs\n\t\tDB: 0, // use default DB\n\t})\n\n\n\trPushResult1, err := rdb.RPush(ctx, \"mylist\", \"Hello\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rPushResult1) // >>> 1\n\n\trPushResult2, err := rdb.RPush(ctx, \"mylist\", \"World\").Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(rPushResult2) // >>> 2\n\n\tlRangeResult, err := rdb.LRange(ctx, \"mylist\", 0, -1).Result()\n\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\n\tfmt.Println(lRangeResult) // >>> [Hello World]\n\n}\n```\n\nExample:\n```c\nlong lRangeResult1 = db.ListRightPush(\"mylist\", [\"one\", \"two\", \"three\"]);\n Console.WriteLine(lRangeResult1); // >>> 3\n\n RedisValue[] lRangeResult2 = db.ListRange(\"mylist\", 0, 0);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult2)}]\");\n // >>> [one]\n\n RedisValue[] lRangeResult3 = db.ListRange(\"mylist\", -3, 2);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult3)}]\");\n // >>> [one, two, three]\n\n RedisValue[] lRangeResult4 = db.ListRange(\"mylist\", -100, 100);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult4)}]\");\n // >>> [one, two, three]\n\n RedisValue[] lRangeResult5 = db.ListRange(\"mylist\", 5, 10);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult5)}]\");\n // >>> []\n```\n\nExample:\n```c\nusing NRedisStack.Tests;\nusing StackExchange.Redis;\n\n\n\npublic class CmdsListExample\n{\n public void Run()\n {\n var muxer = ConnectionMultiplexer.Connect(\"localhost:6379\");\n var db = muxer.GetDatabase();\n\n long lLenResult1 = db.ListLeftPush(\"mylist\", \"World\");\n Console.WriteLine(lLenResult1); // >>> 1\n\n long lLenResult2 = db.ListLeftPush(\"mylist\", \"Hello\");\n Console.WriteLine(lLenResult2); // >>> 2\n\n long lLenResult3 = db.ListLength(\"mylist\");\n Console.WriteLine(lLenResult3); // >>> 2\n\n // Tests for 'llen' step.\n\n long lPopResult1 = db.ListRightPush(\"mylist\", [\"one\", \"two\", \"three\", \"four\", \"five\"]);\n Console.WriteLine(lPopResult1); // >>> 5\n\n RedisValue lPopResult2 = db.ListLeftPop(\"mylist\");\n Console.WriteLine(lPopResult2); // >>> one\n\n RedisValue[] lPopResult3 = db.ListLeftPop(\"mylist\", 2);\n Console.WriteLine($\"[{string.Join(\", \", lPopResult3)}]\");\n // >>> [two, three]\n\n RedisValue[] lPopResult4 = db.ListRange(\"mylist\", 0, -1);\n Console.WriteLine($\"[{string.Join(\", \", lPopResult4)}]\");\n // >>> [four, five]\n\n // Tests for 'lpop' step.\n\n long lPushResult1 = db.ListLeftPush(\"mylist\", \"World\");\n Console.WriteLine(lPushResult1); // >>> 1\n\n long lPushResult2 = db.ListLeftPush(\"mylist\", \"Hello\");\n Console.WriteLine(lPushResult2); // >>> 2\n\n RedisValue[] lPushResult3 = db.ListRange(\"mylist\", 0, -1);\n Console.WriteLine($\"[{string.Join(\", \", lPushResult3)}]\");\n // >>> [Hello, World]\n\n // Tests for 'lpush' step.\n\n long lRangeResult1 = db.ListRightPush(\"mylist\", [\"one\", \"two\", \"three\"]);\n Console.WriteLine(lRangeResult1); // >>> 3\n\n RedisValue[] lRangeResult2 = db.ListRange(\"mylist\", 0, 0);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult2)}]\");\n // >>> [one]\n\n RedisValue[] lRangeResult3 = db.ListRange(\"mylist\", -3, 2);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult3)}]\");\n // >>> [one, two, three]\n\n RedisValue[] lRangeResult4 = db.ListRange(\"mylist\", -100, 100);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult4)}]\");\n // >>> [one, two, three]\n\n RedisValue[] lRangeResult5 = db.ListRange(\"mylist\", 5, 10);\n Console.WriteLine($\"[{string.Join(\", \", lRangeResult5)}]\");\n // >>> []\n\n // Tests for 'lrange' step.\n\n long rPopResult1 = db.ListRightPush(\"mylist\", [\"one\", \"two\", \"three\", \"four\", \"five\"]);\n Console.WriteLine(rPopResult1); // >>> 5\n\n RedisValue rPopResult2 = db.ListRightPop(\"mylist\");\n Console.WriteLine(rPopResult2); // >>> five\n\n RedisValue[] rPopResult3 = db.ListRightPop(\"mylist\", 2);\n Console.WriteLine($\"[{string.Join(\", \", rPopResult3)}]\");\n // >>> [four, three]\n\n RedisValue[] rPopResult4 = db.ListRange(\"mylist\", 0, -1);\n Console.WriteLine($\"[{string.Join(\", \", rPopResult4)}]\");\n // >>> [one, two]\n\n // Tests for 'rpop' step.\n\n long rPushResult1 = db.ListRightPush(\"mylist\", \"hello\");\n Console.WriteLine(rPushResult1); // >>> 1\n\n long rPushResult2 = db.ListRightPush(\"mylist\", \"world\");\n Console.WriteLine(rPushResult2); // >>> 2\n\n RedisValue[] rPushResult3 = db.ListRange(\"mylist\", 0, -1);\n Console.WriteLine($\"[{string.Join(\", \", rPushResult3)}]\");\n // >>> [hello, world]\n\n // Tests for 'rpush' step.\n\n }\n}\n```\n\nExample:\n```php\n$res4 = $r->rpush('mylist', 'one');\n echo $res4 . PHP_EOL;\n // >>> 1\n\n $res5 = $r->rpush('mylist', 'two');\n echo $res5 . PHP_EOL;\n // >>> 2\n\n $res6 = $r->rpush('mylist', 'three');\n echo $res6 . PHP_EOL;\n // >>> 3\n\n $res7 = $r->lrange('mylist', 0, 0);\n echo json_encode($res7) . PHP_EOL;\n // >>> [\"one\"]\n\n $res8 = $r->lrange('mylist', -3, 2);\n echo json_encode($res8) . PHP_EOL;\n // >>> [\"one\",\"two\",\"three\"]\n\n $res9 = $r->lrange('mylist', -100, 100);\n echo json_encode($res9) . PHP_EOL;\n // >>> [\"one\",\"two\",\"three\"]\n\n $res10 = $r->lrange('mylist', 5, 10);\n echo json_encode($res10) . PHP_EOL;\n // >>> []\n```\n\nExample:\n```php\n<?php\n\nrequire 'vendor/autoload.php';\n\nuse Predis\\Client as PredisClient;\n\nclass CmdListTest\n{\n public function testCmdList() {\n $r = new PredisClient([\n 'scheme' => 'tcp',\n 'host' => '127.0.0.1',\n 'port' => 6379,\n 'password' => '',\n 'database' => 0,\n ]);\n\n $res1 = $r->lpush('mylist', 'world');\n echo $res1 . PHP_EOL;\n // >>> 1\n\n $res2 = $r->lpush('mylist', 'hello');\n echo $res2 . PHP_EOL;\n // >>> 2\n\n $res3 = $r->lrange('mylist', 0, -1);\n echo json_encode($res3) . PHP_EOL;\n // >>> [\"hello\",\"world\"]\n\n $res4 = $r->rpush('mylist', 'one');\n echo $res4 . PHP_EOL;\n // >>> 1\n\n $res5 = $r->rpush('mylist', 'two');\n echo $res5 . PHP_EOL;\n // >>> 2\n\n $res6 = $r->rpush('mylist', 'three');\n echo $res6 . PHP_EOL;\n // >>> 3\n\n $res7 = $r->lrange('mylist', 0, 0);\n echo json_encode($res7) . PHP_EOL;\n // >>> [\"one\"]\n\n $res8 = $r->lrange('mylist', -3, 2);\n echo json_encode($res8) . PHP_EOL;\n // >>> [\"one\",\"two\",\"three\"]\n\n $res9 = $r->lrange('mylist', -100, 100);\n echo json_encode($res9) . PHP_EOL;\n // >>> [\"one\",\"two\",\"three\"]\n\n $res10 = $r->lrange('mylist', 5, 10);\n echo json_encode($res10) . PHP_EOL;\n // >>> []\n\n $res11 = $r->lpush('mylist', 'World');\n echo $res11 . PHP_EOL;\n // >>> 1\n\n $res12 = $r->lpush('mylist', 'Hello');\n echo $res12 . PHP_EOL;\n // >>> 2\n\n $res13 = $r->llen('mylist');\n echo $res13 . PHP_EOL;\n // >>> 2\n\n $res14 = $r->rpush('mylist', 'hello');\n echo $res14 . PHP_EOL;\n // >>> 1\n\n $res15 = $r->rpush('mylist', 'world');\n echo $res15 . PHP_EOL;\n // >>> 2\n\n $res16 = $r->lrange('mylist', 0, -1);\n echo json_encode($res16) . PHP_EOL;\n // >>> [\"hello\",\"world\"]\n\n $res17 = $r->rpush('mylist', 'one', 'two', 'three', 'four', 'five');\n echo $res17 . PHP_EOL;\n // >>> 5\n\n $res18 = $r->lpop('mylist');\n echo $res18 . PHP_EOL;\n // >>> one\n\n $res19 = $r->lpop('mylist', 2);\n echo json_encode($res19) . PHP_EOL;\n // >>> [\"two\",\"three\"]\n\n $res20 = $r->lrange('mylist', 0, -1);\n echo json_encode($res20) . PHP_EOL;\n // >>> [\"four\",\"five\"]\n\n $res21 = $r->rpush('mylist', 'one', 'two', 'three', 'four', 'five');\n echo $res21 . PHP_EOL;\n // >>> 5\n\n $res22 = $r->rpop('mylist');\n echo $res22 . PHP_EOL;\n // >>> five\n\n $res23 = $r->rpop('mylist', 2);\n echo json_encode($res23) . PHP_EOL;\n // >>> [\"four\",\"three\"]\n\n $res24 = $r->lrange('mylist', 0, -1);\n echo json_encode($res24) . PHP_EOL;\n // >>> [\"one\",\"two\"]\n }\n}\n```\n\nExample:\n```ruby\nres4 = r.rpush('mylist', 'one')\nputs res4 # >>> 1\n\nres5 = r.rpush('mylist', 'two')\nputs res5 # >>> 2\n\nres6 = r.rpush('mylist', 'three')\nputs res6 # >>> 3\n\nres7 = r.lrange('mylist', 0, 0)\nputs res7.inspect # >>> [\"one\"]\n\nres8 = r.lrange('mylist', -3, 2)\nputs res8.inspect # >>> [\"one\", \"two\", \"three\"]\n\nres9 = r.lrange('mylist', -100, 100)\nputs res9.inspect # >>> [\"one\", \"two\", \"three\"]\n\nres10 = r.lrange('mylist', 5, 10)\nputs res10.inspect # >>> []\n```\n\nExample:\n```ruby\nrequire 'redis'\n\nr = Redis.new\n\n\nres1 = r.lpush('mylist', 'world')\nputs res1 # >>> 1\n\nres2 = r.lpush('mylist', 'hello')\nputs res2 # >>> 2\n\nres3 = r.lrange('mylist', 0, -1)\nputs res3.inspect # >>> [\"hello\", \"world\"]\n\n\nres4 = r.rpush('mylist', 'one')\nputs res4 # >>> 1\n\nres5 = r.rpush('mylist', 'two')\nputs res5 # >>> 2\n\nres6 = r.rpush('mylist', 'three')\nputs res6 # >>> 3\n\nres7 = r.lrange('mylist', 0, 0)\nputs res7.inspect # >>> [\"one\"]\n\nres8 = r.lrange('mylist', -3, 2)\nputs res8.inspect # >>> [\"one\", \"two\", \"three\"]\n\nres9 = r.lrange('mylist', -100, 100)\nputs res9.inspect # >>> [\"one\", \"two\", \"three\"]\n\nres10 = r.lrange('mylist', 5, 10)\nputs res10.inspect # >>> []\n\n\nres11 = r.lpush('mylist', 'World')\nputs res11 # >>> 1\n\nres12 = r.lpush('mylist', 'Hello')\nputs res12 # >>> 2\n\nres13 = r.llen('mylist')\nputs res13 # >>> 2\n\n\nres14 = r.rpush('mylist', 'hello')\nputs res14 # >>> 1\n\nres15 = r.rpush('mylist', 'world')\nputs res15 # >>> 2\n\nres16 = r.lrange('mylist', 0, -1)\nputs res16.inspect # >>> [\"hello\", \"world\"]\n\n\nres17 = r.rpush('mylist', ['one', 'two', 'three', 'four', 'five'])\nputs res17 # >>> 5\n\nres18 = r.lpop('mylist')\nputs res18 # >>> one\n\nres19 = r.lpop('mylist', 2)\nputs res19.inspect # >>> [\"two\", \"three\"]\n\nres20 = r.lrange('mylist', 0, -1)\nputs res20.inspect # >>> [\"four\", \"five\"]\n\n\nres21 = r.rpush('mylist', ['one', 'two', 'three', 'four', 'five'])\nputs res21 # >>> 5\n\nres22 = r.rpop('mylist')\nputs res22 # >>> five\n\nres23 = r.rpop('mylist', 2)\nputs res23.inspect # >>> [\"four\", \"three\"]\n\nres24 = r.lrange('mylist', 0, -1)\nputs res24.inspect # >>> [\"one\", \"two\"]\n```\n\nExample:\n```rust\nlet _: Result<i32, _> = r.rpush(\"mylist\", \"one\");\n let _: Result<i32, _> = r.rpush(\"mylist\", \"two\");\n let _: Result<i32, _> = r.rpush(\"mylist\", \"three\");\n\n if let Ok(res7) = r.lrange(\"mylist\", 0, 0) {\n let res7: Vec<String> = res7;\n println!(\"{res7:?}\"); // >>> [\"one\"]\n }\n\n if let Ok(res8) = r.lrange(\"mylist\", -3, 2) {\n let res8: Vec<String> = res8;\n println!(\"{res8:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res9) = r.lrange(\"mylist\", -100, 100) {\n let res9: Vec<String> = res9;\n println!(\"{res9:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res10) = r.lrange(\"mylist\", 5, 10) {\n let res10: Vec<String> = res10;\n println!(\"{res10:?}\"); // >>> []\n }\n```\n\nExample:\n```rust\nmod cmds_list_tests {\n use redis::Commands;\n use std::num::NonZeroUsize;\n\n fn run() {\n let mut r = match redis::Client::open(\"redis://127.0.0.1\") {\n Ok(client) => match client.get_connection() {\n Ok(conn) => conn,\n Err(e) => {\n println!(\"Failed to connect to Redis: {e}\");\n return;\n }\n },\n Err(e) => {\n println!(\"Failed to create Redis client: {e}\");\n return;\n }\n };\n\n if let Ok(res1) = r.lpush(\"mylist\", \"world\") {\n let res1: i32 = res1;\n println!(\"{res1}\"); // >>> 1\n }\n\n if let Ok(res2) = r.lpush(\"mylist\", \"hello\") {\n let res2: i32 = res2;\n println!(\"{res2}\"); // >>> 2\n }\n\n if let Ok(res3) = r.lrange(\"mylist\", 0, -1) {\n let res3: Vec<String> = res3;\n println!(\"{res3:?}\"); // >>> [\"hello\", \"world\"]\n }\n\n let _: Result<i32, _> = r.rpush(\"mylist\", \"one\");\n let _: Result<i32, _> = r.rpush(\"mylist\", \"two\");\n let _: Result<i32, _> = r.rpush(\"mylist\", \"three\");\n\n if let Ok(res7) = r.lrange(\"mylist\", 0, 0) {\n let res7: Vec<String> = res7;\n println!(\"{res7:?}\"); // >>> [\"one\"]\n }\n\n if let Ok(res8) = r.lrange(\"mylist\", -3, 2) {\n let res8: Vec<String> = res8;\n println!(\"{res8:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res9) = r.lrange(\"mylist\", -100, 100) {\n let res9: Vec<String> = res9;\n println!(\"{res9:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res10) = r.lrange(\"mylist\", 5, 10) {\n let res10: Vec<String> = res10;\n println!(\"{res10:?}\"); // >>> []\n }\n\n if let Ok(res11) = r.lpush(\"mylist\", \"World\") {\n let res11: i32 = res11;\n println!(\"{res11}\"); // >>> 1\n }\n\n if let Ok(res12) = r.lpush(\"mylist\", \"Hello\") {\n let res12: i32 = res12;\n println!(\"{res12}\"); // >>> 2\n }\n\n if let Ok(res13) = r.llen(\"mylist\") {\n let res13: i32 = res13;\n println!(\"{res13}\"); // >>> 2\n }\n\n if let Ok(res14) = r.rpush(\"mylist\", \"hello\") {\n let res14: i32 = res14;\n println!(\"{res14}\"); // >>> 1\n }\n\n if let Ok(res15) = r.rpush(\"mylist\", \"world\") {\n let res15: i32 = res15;\n println!(\"{res15}\"); // >>> 2\n }\n\n if let Ok(res16) = r.lrange(\"mylist\", 0, -1) {\n let res16: Vec<String> = res16;\n println!(\"{res16:?}\"); // >>> [\"hello\", \"world\"]\n }\n\n if let Ok(res17) = r.rpush(\"mylist\", &[\"one\", \"two\", \"three\", \"four\", \"five\"]) {\n let res17: i32 = res17;\n println!(\"{res17}\"); // >>> 5\n }\n\n if let Ok(res18) = r.lpop(\"mylist\", None) {\n let res18: String = res18;\n println!(\"{res18}\"); // >>> one\n }\n\n if let Ok(res19) = r.lpop(\"mylist\", NonZeroUsize::new(2)) {\n let res19: Vec<String> = res19;\n println!(\"{res19:?}\"); // >>> [\"two\", \"three\"]\n }\n\n if let Ok(res20) = r.lrange(\"mylist\", 0, -1) {\n let res20: Vec<String> = res20;\n println!(\"{res20:?}\"); // >>> [\"four\", \"five\"]\n }\n\n if let Ok(res21) = r.rpush(\"mylist\", &[\"one\", \"two\", \"three\", \"four\", \"five\"]) {\n let res21: i32 = res21;\n println!(\"{res21}\"); // >>> 5\n }\n\n if let Ok(res22) = r.rpop(\"mylist\", None) {\n let res22: String = res22;\n println!(\"{res22}\"); // >>> five\n }\n\n if let Ok(res23) = r.rpop(\"mylist\", NonZeroUsize::new(2)) {\n let res23: Vec<String> = res23;\n println!(\"{res23:?}\"); // >>> [\"four\", \"three\"]\n }\n\n if let Ok(res24) = r.lrange(\"mylist\", 0, -1) {\n let res24: Vec<String> = res24;\n println!(\"{res24:?}\"); // >>> [\"one\", \"two\"]\n }\n }\n}\n```\n\nExample:\n```rust\nlet _: Result<i32, _> = r.rpush(\"mylist\", \"one\").await;\n let _: Result<i32, _> = r.rpush(\"mylist\", \"two\").await;\n let _: Result<i32, _> = r.rpush(\"mylist\", \"three\").await;\n\n if let Ok(res7) = r.lrange(\"mylist\", 0, 0).await {\n let res7: Vec<String> = res7;\n println!(\"{res7:?}\"); // >>> [\"one\"]\n }\n\n if let Ok(res8) = r.lrange(\"mylist\", -3, 2).await {\n let res8: Vec<String> = res8;\n println!(\"{res8:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res9) = r.lrange(\"mylist\", -100, 100).await {\n let res9: Vec<String> = res9;\n println!(\"{res9:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res10) = r.lrange(\"mylist\", 5, 10).await {\n let res10: Vec<String> = res10;\n println!(\"{res10:?}\"); // >>> []\n }\n```\n\nExample:\n```rust\nmod cmds_list_tests {\n use redis::AsyncCommands;\n use std::num::NonZeroUsize;\n\n async fn run() {\n let mut r = match redis::Client::open(\"redis://127.0.0.1\") {\n Ok(client) => match client.get_multiplexed_async_connection().await {\n Ok(conn) => conn,\n Err(e) => {\n println!(\"Failed to connect to Redis: {e}\");\n return;\n }\n },\n Err(e) => {\n println!(\"Failed to create Redis client: {e}\");\n return;\n }\n };\n\n if let Ok(res1) = r.lpush(\"mylist\", \"world\").await {\n let res1: i32 = res1;\n println!(\"{res1}\"); // >>> 1\n }\n\n if let Ok(res2) = r.lpush(\"mylist\", \"hello\").await {\n let res2: i32 = res2;\n println!(\"{res2}\"); // >>> 2\n }\n\n if let Ok(res3) = r.lrange(\"mylist\", 0, -1).await {\n let res3: Vec<String> = res3;\n println!(\"{res3:?}\"); // >>> [\"hello\", \"world\"]\n }\n\n let _: Result<i32, _> = r.rpush(\"mylist\", \"one\").await;\n let _: Result<i32, _> = r.rpush(\"mylist\", \"two\").await;\n let _: Result<i32, _> = r.rpush(\"mylist\", \"three\").await;\n\n if let Ok(res7) = r.lrange(\"mylist\", 0, 0).await {\n let res7: Vec<String> = res7;\n println!(\"{res7:?}\"); // >>> [\"one\"]\n }\n\n if let Ok(res8) = r.lrange(\"mylist\", -3, 2).await {\n let res8: Vec<String> = res8;\n println!(\"{res8:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res9) = r.lrange(\"mylist\", -100, 100).await {\n let res9: Vec<String> = res9;\n println!(\"{res9:?}\"); // >>> [\"one\", \"two\", \"three\"]\n }\n\n if let Ok(res10) = r.lrange(\"mylist\", 5, 10).await {\n let res10: Vec<String> = res10;\n println!(\"{res10:?}\"); // >>> []\n }\n\n if let Ok(res11) = r.lpush(\"mylist\", \"World\").await {\n let res11: i32 = res11;\n println!(\"{res11}\"); // >>> 1\n }\n\n if let Ok(res12) = r.lpush(\"mylist\", \"Hello\").await {\n let res12: i32 = res12;\n println!(\"{res12}\"); // >>> 2\n }\n\n if let Ok(res13) = r.llen(\"mylist\").await {\n let res13: i32 = res13;\n println!(\"{res13}\"); // >>> 2\n }\n\n if let Ok(res14) = r.rpush(\"mylist\", \"hello\").await {\n let res14: i32 = res14;\n println!(\"{res14}\"); // >>> 1\n }\n\n if let Ok(res15) = r.rpush(\"mylist\", \"world\").await {\n let res15: i32 = res15;\n println!(\"{res15}\"); // >>> 2\n }\n\n if let Ok(res16) = r.lrange(\"mylist\", 0, -1).await {\n let res16: Vec<String> = res16;\n println!(\"{res16:?}\"); // >>> [\"hello\", \"world\"]\n }\n\n if let Ok(res17) = r.rpush(\"mylist\", &[\"one\", \"two\", \"three\", \"four\", \"five\"]).await {\n let res17: i32 = res17;\n println!(\"{res17}\"); // >>> 5\n }\n\n if let Ok(res18) = r.lpop(\"mylist\", None).await {\n let res18: String = res18;\n println!(\"{res18}\"); // >>> one\n }\n\n if let Ok(res19) = r.lpop(\"mylist\", NonZeroUsize::new(2)).await {\n let res19: Vec<String> = res19;\n println!(\"{res19:?}\"); // >>> [\"two\", \"three\"]\n }\n\n if let Ok(res20) = r.lrange(\"mylist\", 0, -1).await {\n let res20: Vec<String> = res20;\n println!(\"{res20:?}\"); // >>> [\"four\", \"five\"]\n }\n\n if let Ok(res21) = r.rpush(\"mylist\", &[\"one\", \"two\", \"three\", \"four\", \"five\"]).await {\n let res21: i32 = res21;\n println!(\"{res21}\"); // >>> 5\n }\n\n if let Ok(res22) = r.rpop(\"mylist\", None).await {\n let res22: String = res22;\n println!(\"{res22}\"); // >>> five\n }\n\n if let Ok(res23) = r.rpop(\"mylist\", NonZeroUsize::new(2)).await {\n let res23: Vec<String> = res23;\n println!(\"{res23:?}\"); // >>> [\"four\", \"three\"]\n }\n\n if let Ok(res24) = r.lrange(\"mylist\", 0, -1).await {\n let res24: Vec<String> = res24;\n println!(\"{res24:?}\"); // >>> [\"one\", \"two\"]\n }\n }\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.040Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":35,"totalLines":1878,"estimatedTokens":13863}}508{"id":"doc-bind_svelte_docs-d810512b","source":"documentation","title":"bind: • Svelte Docs","url":"https://svelte.dev/docs/svelte/bind","text":"Example:\n```text\n<input bind:value={value} />\n<input bind:value />\n```\n\nExample:\n```text\n<input bind:value={\n\t() => value,\n\t(v) => value = v.toLowerCase()}\n/>\n```\n\nExample:\n```text\n<script>\n\tlet message = $state('hello');\n</script>\n\n<input bind:value={message} />\n<p>{message}</p>\n```\n\nExample:\n```text\n<script>\n\tlet a = $state(1);\n\tlet b = $state(2);\n</script>\n\n<label>\n\t<input type=\"number\" bind:value={a} min=\"0\" max=\"10\" />\n\t<input type=\"range\" bind:value={a} min=\"0\" max=\"10\" />\n</label>\n\n<label>\n\t<input type=\"number\" bind:value={b} min=\"0\" max=\"10\" />\n\t<input type=\"range\" bind:value={b} min=\"0\" max=\"10\" />\n</label>\n\n<p>{a} + {b} = {a + b}</p>\n```\n\nExample:\n```text\n<script lang=\"ts\">\n\tlet a = $state(1);\n\tlet b = $state(2);\n</script>\n\n<label>\n\t<input type=\"number\" bind:value={a} min=\"0\" max=\"10\" />\n\t<input type=\"range\" bind:value={a} min=\"0\" max=\"10\" />\n</label>\n\n<label>\n\t<input type=\"number\" bind:value={b} min=\"0\" max=\"10\" />\n\t<input type=\"range\" bind:value={b} min=\"0\" max=\"10\" />\n</label>\n\n<p>{a} + {b} = {a + b}</p>\n```\n\nExample:\n```text\n<script>\n\tlet value = $state('');\n</script>\n\n<form>\n\t<input bind:value defaultValue=\"not the empty string\">\n\t<input type=\"reset\" value=\"Reset\">\n</form>\n```\n\nExample:\n```text\n<label>\n\t<input type=\"checkbox\" bind:checked={accepted} />\n\tAccept terms and conditions\n</label>\n```\n\nExample:\n```text\n<script>\n\tlet checked = $state(true);\n</script>\n\n<form>\n\t<input type=\"checkbox\" bind:checked defaultChecked={true}>\n\t<input type=\"reset\" value=\"Reset\">\n</form>\n```\n\nExample:\n```text\n<script>\n\tlet checked = $state(false);\n\tlet indeterminate = $state(true);\n</script>\n\n<form>\n\t<input type=\"checkbox\" bind:checked bind:indeterminate>\n\n\t{#if indeterminate}\n\t\twaiting...\n\t{:else if checked}\n\t\tchecked\n\t{:else}\n\t\tunchecked\n\t{/if}\n</form>\n```\n\nExample:\n```text\n<script>\n\tlet tortilla = $state('Plain');\n\n\t/** @type {string[]} */\n\tlet fillings = $state([]);\n</script>\n\n<h1>Customize your burrito</h1>\n\n<!-- grouped radio inputs are mutually exclusive -->\n<label><input type=\"radio\" bind:group={tortilla} value=\"Plain\" /> Plain</label>\n<label><input type=\"radio\" bind:group={tortilla} value=\"Whole wheat\" /> Whole wheat</label>\n<label><input type=\"radio\" bind:group={tortilla} value=\"Spinach\" /> Spinach</label>\n\n<!-- grouped checkbox inputs populate an array -->\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Rice\" /> Rice</label>\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Beans\" /> Beans</label>\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Cheese\" /> Cheese</label>\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Guac (extra)\" /> Guac (extra)</label>\n\n<p>Tortilla: {tortilla}</p>\n<p>Fillings: {fillings.join(', ') || 'None'}</p>\n\n<style>\n\tlabel {\n\t\tdisplay: block;\n\t}\n</style>\n```\n\nExample:\n```text\n<script lang=\"ts\">\n\tlet tortilla = $state('Plain');\n\tlet fillings: string[] = $state([]);\n</script>\n\n<h1>Customize your burrito</h1>\n\n<!-- grouped radio inputs are mutually exclusive -->\n<label><input type=\"radio\" bind:group={tortilla} value=\"Plain\" /> Plain</label>\n<label><input type=\"radio\" bind:group={tortilla} value=\"Whole wheat\" /> Whole wheat</label>\n<label><input type=\"radio\" bind:group={tortilla} value=\"Spinach\" /> Spinach</label>\n\n<!-- grouped checkbox inputs populate an array -->\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Rice\" /> Rice</label>\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Beans\" /> Beans</label>\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Cheese\" /> Cheese</label>\n<label><input type=\"checkbox\" bind:group={fillings} value=\"Guac (extra)\" /> Guac (extra)</label>\n\n<p>Tortilla: {tortilla}</p>\n<p>Fillings: {fillings.join(', ') || 'None'}</p>\n\n<style>\n\tlabel {\n\t\tdisplay: block;\n\t}\n</style>\n```\n\nExample:\n```text\n<script>\n\tlet files = $state();\n\n\tfunction clear() {\n\t\tfiles = new DataTransfer().files; // null or undefined does not work\n\t}\n</script>\n\n<label for=\"avatar\">Upload a picture:</label>\n<input accept=\"image/png, image/jpeg\" bind:files id=\"avatar\" name=\"avatar\" type=\"file\" />\n<button onclick={clear}>clear</button>\n```\n\nExample:\n```text\n<select bind:value={selected}>\n\t<option value={a}>a</option>\n\t<option value={b}>b</option>\n\t<option value={c}>c</option>\n</select>\n```\n\nExample:\n```text\n<select multiple bind:value={fillings}>\n\t<option value=\"Rice\">Rice</option>\n\t<option value=\"Beans\">Beans</option>\n\t<option value=\"Cheese\">Cheese</option>\n\t<option value=\"Guac (extra)\">Guac (extra)</option>\n</select>\n```\n\nExample:\n```text\n<select multiple bind:value={fillings}>\n\t<option>Rice</option>\n\t<option>Beans</option>\n\t<option>Cheese</option>\n\t<option>Guac (extra)</option>\n</select>\n```\n\nExample:\n```text\n<select bind:value={selected}>\n\t<option value={a}>a</option>\n\t<option value={b} selected>b</option>\n\t<option value={c}>c</option>\n</select>\n```\n\nExample:\n```text\n<audio src={clip} bind:duration bind:currentTime bind:paused></audio>\n```\n\nExample:\n```text\n<details bind:open={isOpen}>\n\t<summary>How do you comfort a JavaScript bug?</summary>\n\t<p>You console it.</p>\n</details>\n```\n\nExample:\n```text\nbind:this={dom_node}\n```\n\nExample:\n```text\n<script>\n\t/** @type {HTMLCanvasElement} */\n\tlet canvas;\n\n\t$effect(() => {\n\t\tconst ctx = canvas.getContext('2d');\n\t\tdrawStuff(ctx);\n\t});\n</script>\n\n<canvas bind:this={canvas}></canvas>\n```\n\nExample:\n```text\n<ShoppingCart bind:this={cart} />\n\n<button onclick={() => cart.empty()}> Empty shopping cart </button>\n```\n\nExample:\n```text\n<script>\n\t// All instance exports are available on the instance object\n\texport function empty() {\n\t\t// ...\n\t}\n</script>\n```\n\nExample:\n```text\n<script lang=\"ts\">\n\t// All instance exports are available on the instance object\n\texport function empty() {\n\t\t// ...\n\t}\n</script>\n```\n\nExample:\n```text\nbind:property={variable}\n```\n\nExample:\n```text\n<Keypad bind:value={pin} />\n```\n\nExample:\n```text\n<script>\n\tlet { readonlyProperty, bindableProperty = $bindable() } = $props();\n</script>\n```\n\nExample:\n```text\n<script>\n\tlet { bindableProperty = $bindable('fallback value') } = $props();\n</script>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.137Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":27,"totalLines":316,"estimatedTokens":1516}}509{"id":"doc-inspect_svelte_docs-7c1c2e87","source":"documentation","title":"$inspect • Svelte Docs","url":"https://svelte.dev/docs/svelte/$inspect","text":"Example:\n```text\n<script>\n\tlet count = $state(0);\n\tlet message = $state('hello');\n\n\t$inspect(count, message); // will console.log when `count` or `message` change\n</script>\n\n<button onclick={() => count++}>Increment</button>\n<input bind:value={message} />\n```\n\nExample:\n```text\n<script lang=\"ts\">\n\tlet count = $state(0);\n\tlet message = $state('hello');\n\n\t$inspect(count, message); // will console.log when `count` or `message` change\n</script>\n\n<button onclick={() => count++}>Increment</button>\n<input bind:value={message} />\n```\n\nExample:\n```text\n<script>\n\tlet count = $state(0);\n\n\t$inspect(count).with((type, count) => {\n\t\tif (type === 'update') {\n\t\t\tdebugger; // or `console.trace`, or whatever you want\n\t\t}\n\t});\n</script>\n\n<button onclick={() => count++}>Increment</button>\n```\n\nExample:\n```text\n<script lang=\"ts\">\n\tlet count = $state(0);\n\n\t$inspect(count).with((type, count) => {\n\t\tif (type === 'update') {\n\t\t\tdebugger; // or `console.trace`, or whatever you want\n\t\t}\n\t});\n</script>\n\n<button onclick={() => count++}>Increment</button>\n```\n\nExample:\n```text\n<script>\n\timport { doSomeWork } from './elsewhere';\n\n\t$effect(() => {\n\t\t// $inspect.trace must be the first statement of a function body\n\t\t$inspect.trace();\n\t\tdoSomeWork();\n\t});\n</script>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.137Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":70,"estimatedTokens":317}}510{"id":"doc-concepts_surrealdb-df0e83cd","source":"documentation","title":"Concepts | SurrealDB","url":"https://surrealdb.com/docs/concepts","text":"Example:\n```text\nDEFINE NAMESPACE dev_namespace COMMENT \"Internal use only: do not use in prod\";\nUSE NAMESPACE dev_namespace;\n// Now inside 'dev_namespace', define a database within it\nDEFINE DATABASE dev_db_1 COMMENT \"First of many dev databases\";\n```\n\nExample:\n```text\n{\n\taccesses: { },\n\tanalyzers: {\n\t\tblank_snowball: 'DEFINE ANALYZER blank_snowball TOKENIZERS BLANK FILTERS LOWERCASE, SNOWBALL(ENGLISH)'\n\t},\n\tapis: { },\n\tbuckets: { },\n\tconfigs: { },\n\tfunctions: {\n\t\tnumber_of_unfulfilled_orders: \"DEFINE FUNCTION fn::number_of_unfulfilled_orders() -> int { SELECT VALUE count() FROM ONLY order WHERE order_status NOTINSIDE ['processed', 'shipped'] GROUP ALL } PERMISSIONS FULL\",\n\t\tpound_to_usd: 'DEFINE FUNCTION fn::pound_to_usd($price: number) -> float { $price * 1.26f } PERMISSIONS FULL'\n\t},\n\tmodels: { },\n\tmodules: { },\n\tparams: { },\n\tsequences: { },\n\ttables: {\n\t\tmonthly_sales: \"DEFINE TABLE monthly_sales TYPE NORMAL SCHEMAFULL AS SELECT count() AS number_of_orders, time::format(time.created_at, '%Y-%m') AS month, math::sum(price * quantity) AS sum_sales, currency FROM order GROUP BY month, currency PERMISSIONS NONE\",\n\t\torder: 'DEFINE TABLE order TYPE RELATION IN person OUT product SCHEMAFULL PERMISSIONS NONE',\n\t\tuser: 'DEFINE TABLE user TYPE ANY SCHEMALESS PERMISSIONS NONE',\n\t\twishlist: 'DEFINE TABLE wishlist TYPE RELATION IN person OUT product\n\t\t SCHEMAFULL PERMISSIONS NONE'\n\t},\n\tusers: {\n\t\tBoris: \"DEFINE USER Boris ON DATABASE PASSHASH '[REDACTED]' ROLES VIEWER DURATION FOR TOKEN 1h, FOR SESSION NONE\",\n\t\tDrusilla: \"DEFINE USER Drusilla ON DATABASE PASSHASH '[REDACTED]' ROLES VIEWER DURATION FOR TOKEN 1h, FOR SESSION NONE\"\n\t}\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.216Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":41,"estimatedTokens":420}}511{"id":"doc-functions_and_directives_core_concepts_tailwind_-79b67f84","source":"documentation","title":"Functions and directives - Core concepts - Tailwind CSS","url":"https://tailwindcss.com/docs/functions-and-directives","text":"Example:\n```text\n@import \"tailwindcss\";\n```\n\nExample:\n```text\n@theme { --font-display: \"Satoshi\", \"sans-serif\"; --breakpoint-3xl: 120rem; --color-avocado-100: oklch(0.99 0 0); --color-avocado-200: oklch(0.98 0.04 113.22); --color-avocado-300: oklch(0.94 0.11 115.03); --color-avocado-400: oklch(0.92 0.19 114.08); --color-avocado-500: oklch(0.84 0.18 117.33); --color-avocado-600: oklch(0.53 0.12 118.34); --ease-fluid: cubic-bezier(0.3, 0, 0, 1); --ease-snappy: cubic-bezier(0.2, 0, 0, 1); /* ... */}\n```\n\nExample:\n```text\n@source \"../node_modules/@my-company/ui-lib\";\n```\n\nExample:\n```text\n@utility tab-4 { tab-size: 4;}\n```\n\nExample:\n```text\n.my-element { background: white; @variant dark { background: black; }}\n```\n\nExample:\n```text\n@custom-variant theme-midnight (&:where([data-theme=\"midnight\"] *));\n```\n\nExample:\n```text\n.select2-dropdown { @apply rounded-b-lg shadow-md;}.select2-search { @apply rounded border border-gray-300;}.select2-results__group { @apply text-lg font-bold text-gray-900;}\n```\n\nExample:\n```text\n<template> <h1>Hello world!</h1></template><style> @reference \"../../app.css\"; h1 { @apply text-2xl font-bold text-red-500; }</style>\n```\n\nExample:\n```text\n<template> <h1>Hello world!</h1></template><style> @reference \"tailwindcss\"; h1 { @apply text-2xl font-bold text-red-500; }</style>\n```\n\nExample:\n```text\n{ // ... \"imports\": { \"#app.css\": \"./src/css/app.css\" }}\n```\n\nExample:\n```text\n<template> <h1>Hello world!</h1></template><style> @reference \"#app.css\"; h1 { @apply text-2xl font-bold text-red-500; }</style>\n```\n\nExample:\n```text\n.my-element { color: --alpha(var(--color-lime-300) / 50%);}\n```\n\nExample:\n```text\n.my-element { color: color-mix(in oklab, var(--color-lime-300) 50%, transparent);}\n```\n\nExample:\n```text\n.my-element { margin: --spacing(4);}\n```\n\nExample:\n```text\n.my-element { margin: calc(var(--spacing) * 4);}\n```\n\nExample:\n```text\n<div class=\"py-[calc(--spacing(4)-1px)]\"> <!-- ... --></div>\n```\n\nExample:\n```text\n@config \"../../tailwind.config.js\";\n```\n\nExample:\n```text\n@plugin \"@tailwindcss/typography\";\n```\n\nExample:\n```text\n.my-element { margin: theme(spacing.12);}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.134Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":19,"totalLines":96,"estimatedTokens":549}}512{"id":"doc-grid_auto_flow_flexbox_grid_tailwind_css-919f8a77","source":"documentation","title":"grid-auto-flow - Flexbox & Grid - Tailwind CSS","url":"https://tailwindcss.com/docs/grid-auto-flow","text":"Example:\n```text\n<div class=\"grid grid-flow-row-dense grid-cols-3 grid-rows-3 ...\"> <div class=\"col-span-2\">01</div> <div class=\"col-span-2\">02</div> <div>03</div> <div>04</div> <div>05</div></div>\n```\n\nExample:\n```text\n<div class=\"grid grid-flow-col md:grid-flow-row ...\"> <!-- ... --></div>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.148Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":79}}513{"id":"doc-typescript_documentation_iterators_and_generator-0ee98785","source":"documentation","title":"TypeScript: Documentation - Iterators and Generators","url":"https://www.typescriptlang.org/docs/handbook/iterators-and-generators.html","text":"Example:\n```text\nfunction toArray<X>(xs: Iterable<X>): X[] { return [...xs]}\n```\n\nExample:\n```text\nlet someArray = [1, \"string\", false];for (let entry of someArray) { console.log(entry); // 1, \"string\", false}\n```\n\nExample:\n```text\nlet list = [4, 5, 6];for (let i in list) { console.log(i); // \"0\", \"1\", \"2\",}for (let i of list) { console.log(i); // 4, 5, 6}\n```\n\nExample:\n```text\nlet pets = new Set([\"Cat\", \"Dog\", \"Hamster\"]);pets[\"species\"] = \"mammals\";for (let pet in pets) { console.log(pet); // \"species\"}for (let pet of pets) { console.log(pet); // \"Cat\", \"Dog\", \"Hamster\"}\n```\n\nExample:\n```text\nlet numbers = [1, 2, 3];for (let num of numbers) { console.log(num);}\n```\n\nExample:\n```text\nvar numbers = [1, 2, 3];for (var _i = 0; _i < numbers.length; _i++) { var num = numbers[_i]; console.log(num);}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.348Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":31,"estimatedTokens":208}}514{"id":"doc-spark_sql_cli_spark_4_2_0_documentation-c7b0e29f","source":"documentation","title":"Spark SQL CLI - Spark 4.2.0 Documentation","url":"https://spark.apache.org/docs/latest/sql-distributed-sql-engine-spark-sql-cli.html","text":"Spark SQL Guide Getting Started Data Sources Data Source V2 Performance Tuning Distributed SQL Engine Running the Thrift JDBC/ODBC server Running the Spark SQL CLI PySpark Usage Guide for Pandas with Apache Arrow Migration Guide SQL Reference Error Conditions Spark SQL CLI Spark SQL Command Line Options The hiverc File Path interpretation Supported comment types Spark SQL CLI Interactive Shell Commands Examples The Spark SQL CLI is a convenient interactive command tool to run the Hive metastore service and execute SQL queries input from the command line. Note that the Spark SQL CLI cannot talk to the Thrift JDBC server. To start the Spark SQL CLI, run the following in the Spark /bin/spark-sql Configuration of Hive is done by placing your hive-site.xml, core-site.xml and hdfs-site.xml files in conf/. Spark SQL Command Line Options You may run ./bin/spark-sql --help for a complete list of all available options. CLI ,--define <key=value> Variable substitution to apply to Hive commands. e.g. -d A=B or --define A=B --database <databasename> Specify the database to use -e <quoted-query-string> SQL from command line -f <filename> SQL from files -H,--help Print help information --hiveconf <property=value> Use value for given property --hivevar <key=value> Variable substitution to apply to Hive commands. e.g. --hivevar A=B -i <filename> Initialization SQL file -S,--silent Silent mode in interactive shell -v,--verbose Verbose mode (echo executed SQL to the console) The hiverc File When invoked without the -i, the Spark SQL CLI will attempt to load $HIVE_HOME/bin/.hiverc and $HOME/.hiverc as initialization files. Path interpretation Spark SQL CLI supports running SQL from initialization script file(-i) or normal SQL file(-f), If path url don’t have a scheme component, the path will be handled as local file. For example: /path/to/spark-sql-cli.sql equals to file:///path/to/spark-sql-cli.sql. User also can use Hadoop supported filesystems such as s3://<mys3bucket>/path/to/spark-sql-cli.sql or hdfs://<namenode>:<port>/path/to/spark-sql-cli.sql. Supported comment types CommentExample simple comment -- This is a simple comment. SELECT 1; bracketed comment /* This is a bracketed comment. */ SELECT 1; nested bracketed comment /* This is a /* nested bracketed comment*/ .*/ SELECT 1; Spark SQL CLI Interactive Shell Commands When ./bin/spark-sql is run without either the -e or -f option, it enters interactive shell mode. Use ; (semicolon) to terminate commands. CLI use ; to terminate commands only when it’s at the end of line, and it’s not escaped by \\\\;. ; is the only way to terminate commands. If the user types SELECT 1 and presses enter, the console will just wait for input. If the user types multiple commands in one line like SELECT 1; SELECT 2;, the commands SELECT 1 and SELECT 2 will be executed separately. If ; appears within a SQL statement (not the end of the line), then it has no special This is a ; comment SELECT ';' as a; This is just a comment line followed by a SQL query which returns a string literal. /* This is a comment contains ; */ SELECT 1; However, if ‘;’ is the end of the line, it terminates the SQL statement. The example above will be terminated into /* This is a comment contains and */ SELECT 1, Spark will submit these two commands separated and throw parser error (unclosed bracketed comment and Syntax error at or near '*/'). CommandDescription quit or exit Exits the interactive shell. !<command> Executes a shell command from the Spark SQL CLI shell. dfs <HDFS dfs command> Executes a HDFS dfs command from the Spark SQL CLI shell. <query string> Executes a Spark SQL query and prints results to standard output. source <filepath> Executes a script file inside the CLI. Examples Example of running a query from the command /bin/spark-sql -e 'SELECT COL FROM TBL' Example of setting Hive configuration /bin/spark-sql -e 'SELECT COL FROM TBL' --hiveconf hive.exec.scratchdir=/home/my/hive_scratch Example of setting Hive configuration variables and using it in the SQL /bin/spark-sql -e 'SELECT ${hiveconf:aaa}' --hiveconf aaa=bbb --hiveconf hive.exec.scratchdir=/home/my/hive_scratch spark-sql> SELECT ${aaa}; bbb Example of setting Hive variables /bin/spark-sql --hivevar aaa=bbb --define ccc=ddd spark-sql> SELECT ${aaa}, ${ccc}; bbb ddd Example of dumping data out from a query into a file using silent /bin/spark-sql -S -e 'SELECT COL FROM TBL' > result.txt Example of running a script /bin/spark-sql -f /path/to/spark-sql-script.sql Example of running an initialization script before entering interactive /bin/spark-sql -i /path/to/spark-sql-init.sql Example of entering interactive /bin/spark-sql spark-sql> SELECT 1; 1 spark-sql> -- This is a simple comment. spark-sql> SELECT 1; 1 Example of entering interactive mode with escape ; in /bin/spark-sql spark-sql>/* This is a comment contains \\\\; > It won't be terminated by \\\\; */ > SELECT 1; 1\n\nExample:\n```text\n./bin/spark-sql\n```\n\nExample:\n```text\nCLI options:\n -d,--define <key=value> Variable substitution to apply to Hive\n commands. e.g. -d A=B or --define A=B\n --database <databasename> Specify the database to use\n -e <quoted-query-string> SQL from command line\n -f <filename> SQL from files\n -H,--help Print help information\n --hiveconf <property=value> Use value for given property\n --hivevar <key=value> Variable substitution to apply to Hive\n commands. e.g. --hivevar A=B\n -i <filename> Initialization SQL file\n -S,--silent Silent mode in interactive shell\n -v,--verbose Verbose mode (echo executed SQL to the\n console)\n```\n\nExample:\n```text\n-- This is a ; comment\nSELECT ';' as a;\n```\n\nExample:\n```text\n/* This is a comment contains ;\n*/ SELECT 1;\n```\n\nExample:\n```text\n./bin/spark-sql -e 'SELECT COL FROM TBL'\n```\n\nExample:\n```text\n./bin/spark-sql -e 'SELECT COL FROM TBL' --hiveconf hive.exec.scratchdir=/home/my/hive_scratch\n```\n\nExample:\n```text\n./bin/spark-sql -e 'SELECT ${hiveconf:aaa}' --hiveconf aaa=bbb --hiveconf hive.exec.scratchdir=/home/my/hive_scratch\nspark-sql> SELECT ${aaa};\nbbb\n```\n\nExample:\n```text\n./bin/spark-sql --hivevar aaa=bbb --define ccc=ddd\nspark-sql> SELECT ${aaa}, ${ccc};\nbbb ddd\n```\n\nExample:\n```text\n./bin/spark-sql -S -e 'SELECT COL FROM TBL' > result.txt\n```\n\nExample:\n```text\n./bin/spark-sql -f /path/to/spark-sql-script.sql\n```\n\nExample:\n```text\n./bin/spark-sql -i /path/to/spark-sql-init.sql\n```\n\nExample:\n```text\n./bin/spark-sql\nspark-sql> SELECT 1;\n1\nspark-sql> -- This is a simple comment.\nspark-sql> SELECT 1;\n1\n```\n\nExample:\n```text\n./bin/spark-sql\nspark-sql>/* This is a comment contains \\\\;\n > It won't be terminated by \\\\; */\n > SELECT 1;\n1\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:43.130Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":13,"totalLines":96,"estimatedTokens":1725}}515{"id":"doc-accessing_openstack_swift_from_spark_spark_4_2_0-296706d0","source":"documentation","title":"Accessing OpenStack Swift from Spark - Spark 4.2.0 Documentation","url":"https://spark.apache.org/docs/latest/storage-openstack-swift.html","text":"Accessing OpenStack Swift from Spark Spark’s support for Hadoop InputFormat allows it to process data in OpenStack Swift using the same URI formats as in Hadoop. You can specify a path in Swift as input through a URI of the form swift://container.PROVIDER/path. You will also need to set your Swift security credentials, through core-site.xml or via SparkContext.hadoopConfiguration. The current Swift driver requires Swift to use the Keystone authentication method, or its Rackspace-specific predecessor. Configuring Swift for Better Data Locality Although not mandatory, it is recommended to configure the proxy server of Swift with list_endpoints to have better data locality. More information is available here. Dependencies The Spark application should include hadoop-openstack dependency, which can be done by including the hadoop-cloud module for the specific version of spark used. For example, for Maven support, add the following to the pom.xml file: <dependencyManagement> ... <dependency> <groupId>org.apache.spark</groupId> <artifactId>hadoop-cloud_2.13</artifactId> <version>${spark.version}</version> </dependency> ... </dependencyManagement> Configuration Parameters Create core-site.xml and place it inside Spark’s conf directory. The main category of parameters that should be configured is the authentication parameters required by Keystone. The following table contains a list of Keystone mandatory parameters. PROVIDER can be any (alphanumeric) name. Property NameMeaningRequired fs.swift.service.PROVIDER.auth.url Keystone Authentication URL Mandatory fs.swift.service.PROVIDER.auth.endpoint.prefix Keystone endpoints prefix Optional fs.swift.service.PROVIDER.tenant Tenant Mandatory fs.swift.service.PROVIDER.username Username Mandatory fs.swift.service.PROVIDER.password Password Mandatory fs.swift.service.PROVIDER.http.port HTTP port Mandatory fs.swift.service.PROVIDER.region Keystone region Mandatory fs.swift.service.PROVIDER.public Indicates whether to use the public (off cloud) or private (in cloud; no transfer fees) endpoints Mandatory For example, assume PROVIDER=SparkTest and Keystone contains user tester with password testing defined for tenant test. Then core-site.xml should include: <configuration> <property> <name>fs.swift.service.SparkTest.auth.url</name> <value>http://127.0.0.1:5000/v2.0/tokens</value> </property> <property> <name>fs.swift.service.SparkTest.auth.endpoint.prefix</name> <value>endpoints</value> </property> <name>fs.swift.service.SparkTest.http.port</name> <value>8080</value> </property> <property> <name>fs.swift.service.SparkTest.region</name> <value>RegionOne</value> </property> <property> <name>fs.swift.service.SparkTest.public</name> <value>true</value> </property> <property> <name>fs.swift.service.SparkTest.tenant</name> <value>test</value> </property> <property> <name>fs.swift.service.SparkTest.username</name> <value>tester</value> </property> <property> <name>fs.swift.service.SparkTest.password</name> <value>testing</value> </property> </configuration> Notice that fs.swift.service.PROVIDER.tenant, fs.swift.service.PROVIDER.username, fs.swift.service.PROVIDER.password contains sensitive information and keeping them in core-site.xml is not always a good approach. We suggest to keep those parameters in core-site.xml for testing purposes when running Spark via spark-shell. For job submissions they should be provided via sparkContext.hadoopConfiguration.\n\nExample:\n```xml\n<dependencyManagement>\n ...\n <dependency>\n <groupId>org.apache.spark</groupId>\n <artifactId>hadoop-cloud_2.13</artifactId>\n <version>${spark.version}</version>\n </dependency>\n ...\n</dependencyManagement>\n```\n\nExample:\n```xml\n<configuration>\n <property>\n <name>fs.swift.service.SparkTest.auth.url</name>\n <value>http://127.0.0.1:5000/v2.0/tokens</value>\n </property>\n <property>\n <name>fs.swift.service.SparkTest.auth.endpoint.prefix</name>\n <value>endpoints</value>\n </property>\n <name>fs.swift.service.SparkTest.http.port</name>\n <value>8080</value>\n </property>\n <property>\n <name>fs.swift.service.SparkTest.region</name>\n <value>RegionOne</value>\n </property>\n <property>\n <name>fs.swift.service.SparkTest.public</name>\n <value>true</value>\n </property>\n <property>\n <name>fs.swift.service.SparkTest.tenant</name>\n <value>test</value>\n </property>\n <property>\n <name>fs.swift.service.SparkTest.username</name>\n <value>tester</value>\n </property>\n <property>\n <name>fs.swift.service.SparkTest.password</name>\n <value>testing</value>\n </property>\n</configuration>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:43.130Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":53,"estimatedTokens":1154}}516{"id":"doc-standard_library_go_packages-5b7c5243","source":"documentation","title":"Standard library - Go Packages","url":"https://pkg.go.dev/std@go1.25.11","text":"Discover Packages Standard library Standard library Opens a new window with list of versions in this module. Latest Latest This package is not in the latest version of its module. Go to latest 2, 2026 Opens a new window with license information. Main Versions Licenses Details Valid go.mod file The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go. Redistributable license Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed. Tagged version Modules with tagged versions give importers more predictable builds. Stable version When a project reaches major version v1 it is considered stable. Learn more about best practices Repository cs.opensource.google/go/go Links Report a Vulnerability Jump to ... Directories Directories Directories ¶ Show internal Expand all Path Synopsis archive tar Package tar implements access to tar archives. Package tar implements access to tar archives. zip Package zip provides support for reading and writing ZIP archives. Package zip provides support for reading and writing ZIP archives. bufio Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O. Package bufio implements buffered I/O. It wraps an io.Reader or io.Writer object, creating another object (Reader or Writer) that also implements the interface but provides buffering and some help for textual I/O. builtin Package builtin provides documentation for Go's predeclared identifiers. Package builtin provides documentation for Go's predeclared identifiers. bytes Package bytes implements functions for the manipulation of byte slices. Package bytes implements functions for the manipulation of byte slices. cmp Package cmp provides types and functions related to comparing ordered values. Package cmp provides types and functions related to comparing ordered values. compress bzip2 Package bzip2 implements bzip2 decompression. Package bzip2 implements bzip2 decompression. flate Package flate implements the DEFLATE compressed data format, described in RFC 1951. Package flate implements the DEFLATE compressed data format, described in RFC 1951. gzip Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952. Package gzip implements reading and writing of gzip format compressed files, as specified in RFC 1952. lzw Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19. Package lzw implements the Lempel-Ziv-Welch compressed data format, described in T. A. Welch, “A Technique for High-Performance Data Compression”, Computer, 17(6) (June 1984), pp 8-19. zlib Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950. Package zlib implements reading and writing of zlib format compressed data, as specified in RFC 1950. container heap Package heap provides heap operations for any type that implements heap.Interface. Package heap provides heap operations for any type that implements heap.Interface. list Package list implements a doubly linked list. Package list implements a doubly linked list. ring Package ring implements operations on circular lists. Package ring implements operations on circular lists. context Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. Package context defines the Context type, which carries deadlines, cancellation signals, and other request-scoped values across API boundaries and between processes. crypto Package crypto collects common cryptographic constants. Package crypto collects common cryptographic constants. aes Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197. Package aes implements AES encryption (formerly Rijndael), as defined in U.S. Federal Information Processing Standards Publication 197. cipher Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations. Package cipher implements standard block cipher modes that can be wrapped around low-level block cipher implementations. des Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3. Package des implements the Data Encryption Standard (DES) and the Triple Data Encryption Algorithm (TDEA) as defined in U.S. Federal Information Processing Standards Publication 46-3. dsa Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3. Package dsa implements the Digital Signature Algorithm, as defined in FIPS 186-3. ecdh Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519. Package ecdh implements Elliptic Curve Diffie-Hellman over NIST curves and Curve25519. ecdsa Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in [FIPS 186-5]. Package ecdsa implements the Elliptic Curve Digital Signature Algorithm, as defined in [FIPS 186-5]. ed25519 Package ed25519 implements the Ed25519 signature algorithm. Package ed25519 implements the Ed25519 signature algorithm. elliptic Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields. Package elliptic implements the standard NIST P-224, P-256, P-384, and P-521 elliptic curves over prime fields. fips140 Package fips140 provides information about the FIPS 140-3 Go Cryptographic Module and FIPS 140-3 mode. Package fips140 provides information about the FIPS 140-3 Go Cryptographic Module and FIPS 140-3 mode. hkdf Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869. Package hkdf implements the HMAC-based Extract-and-Expand Key Derivation Function (HKDF) as defined in RFC 5869. hmac Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198. Package hmac implements the Keyed-Hash Message Authentication Code (HMAC) as defined in U.S. Federal Information Processing Standards Publication 198. internal/boring Package boring provides access to BoringCrypto implementation functions. Package boring provides access to BoringCrypto implementation functions. internal/boring/bbig internal/boring/bcache Package bcache implements a GC-friendly cache (see Cache) for BoringCrypto. Package bcache implements a GC-friendly cache (see Cache) for BoringCrypto. internal/boring/sig Package sig holds “code signatures” that can be called and will result in certain code sequences being linked into the final binary. Package sig holds “code signatures” that can be called and will result in certain code sequences being linked into the final binary. internal/cryptotest internal/entropy Package entropy provides the passive entropy source for the FIPS 140-3 module. Package entropy provides the passive entropy source for the FIPS 140-3 module. internal/fips140 internal/fips140/aes internal/fips140/aes/gcm internal/fips140/alias Package alias implements memory aliasing tests. Package alias implements memory aliasing tests. internal/fips140/bigmod internal/fips140/check Package check implements the FIPS 140 load-time code+data verification. Package check implements the FIPS 140 load-time code+data verification. internal/fips140/check/checktest Package checktest defines some code and data for use in the crypto/internal/fips140/check test. Package checktest defines some code and data for use in the crypto/internal/fips140/check test. internal/fips140/drbg Package drbg provides cryptographically secure random bytes usable by FIPS code. Package drbg provides cryptographically secure random bytes usable by FIPS code. internal/fips140/ecdh internal/fips140/ecdsa internal/fips140/ed25519 internal/fips140/edwards25519 Package edwards25519 implements group logic for the twisted Edwards curve Package edwards25519 implements group logic for the twisted Edwards curve internal/fips140/edwards25519/field Package field implements fast arithmetic modulo 2^255-19. Package field implements fast arithmetic modulo 2^255-19. internal/fips140/hkdf internal/fips140/hmac Package hmac implements HMAC according to [FIPS 198-1]. Package hmac implements HMAC according to [FIPS 198-1]. internal/fips140/mlkem Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203]. Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203]. internal/fips140/nistec Package nistec implements the elliptic curves from NIST SP 800-186. Package nistec implements the elliptic curves from NIST SP 800-186. internal/fips140/nistec/fiat internal/fips140/pbkdf2 internal/fips140/rsa internal/fips140/sha256 Package sha256 implements the SHA-224 and SHA-256 hash algorithms as defined in FIPS 180-4. Package sha256 implements the SHA-224 and SHA-256 hash algorithms as defined in FIPS 180-4. internal/fips140/sha3 Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length functions defined by [FIPS 202], as well as the cSHAKE extendable-output-length functions defined by [SP 800-185]. Package sha3 implements the SHA-3 fixed-output-length hash functions and the SHAKE variable-output-length functions defined by [FIPS 202], as well as the cSHAKE extendable-output-length functions defined by [SP 800-185]. internal/fips140/sha512 Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4. Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4. internal/fips140/ssh Package ssh implements the SSH KDF as specified in RFC 4253, Section 7.2 and allowed by SP 800-135 Revision 1. Package ssh implements the SSH KDF as specified in RFC 4253, Section 7.2 and allowed by SP 800-135 Revision 1. internal/fips140/subtle internal/fips140/tls12 internal/fips140/tls13 Package tls13 implements the TLS 1.3 Key Schedule as specified in RFC 8446, Section 7.1 and allowed by FIPS 140-3 IG 2.4.B Resolution 7. Package tls13 implements the TLS 1.3 Key Schedule as specified in RFC 8446, Section 7.1 and allowed by FIPS 140-3 IG 2.4.B Resolution 7. internal/fips140cache Package fips140cache provides a weak map that associates the lifetime of values with the lifetime of keys. Package fips140cache provides a weak map that associates the lifetime of values with the lifetime of keys. internal/fips140deps Package fipsdeps contains wrapper packages for internal APIs that are exposed to the FIPS module. Package fipsdeps contains wrapper packages for internal APIs that are exposed to the FIPS module. internal/fips140deps/byteorder internal/fips140deps/cpu internal/fips140deps/godebug internal/fips140hash internal/fips140only internal/hpke internal/impl Package impl is a registry of alternative implementations of cryptographic primitives, to allow selecting them for testing. Package impl is a registry of alternative implementations of cryptographic primitives, to allow selecting them for testing. internal/randutil Package randutil contains internal randomness utilities for various crypto packages. Package randutil contains internal randomness utilities for various crypto packages. internal/sysrand Package rand provides cryptographically secure random bytes from the operating system. Package rand provides cryptographically secure random bytes from the operating system. internal/sysrand/internal/seccomp md5 Package md5 implements the MD5 hash algorithm as defined in RFC 1321. Package md5 implements the MD5 hash algorithm as defined in RFC 1321. mlkem Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203]. Package mlkem implements the quantum-resistant key encapsulation method ML-KEM (formerly known as Kyber), as specified in [NIST FIPS 203]. pbkdf2 Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1). Package pbkdf2 implements the key derivation function PBKDF2 as defined in RFC 8018 (PKCS #5 v2.1). rand Package rand implements a cryptographically secure random number generator. Package rand implements a cryptographically secure random number generator. rc4 Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography. Package rc4 implements RC4 encryption, as defined in Bruce Schneier's Applied Cryptography. rsa Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017. Package rsa implements RSA encryption as specified in PKCS #1 and RFC 8017. sha1 Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174. Package sha1 implements the SHA-1 hash algorithm as defined in RFC 3174. sha256 Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4. Package sha256 implements the SHA224 and SHA256 hash algorithms as defined in FIPS 180-4. sha3 Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202. Package sha3 implements the SHA-3 hash algorithms and the SHAKE extendable output functions defined in FIPS 202. sha512 Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4. Package sha512 implements the SHA-384, SHA-512, SHA-512/224, and SHA-512/256 hash algorithms as defined in FIPS 180-4. subtle Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly. Package subtle implements functions that are often useful in cryptographic code but require careful thought to use correctly. tls Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446. Package tls partially implements TLS 1.2, as specified in RFC 5246, and TLS 1.3, as specified in RFC 8446. tls/internal/fips140tls Package fips140tls controls whether crypto/tls requires FIPS-approved settings. Package fips140tls controls whether crypto/tls requires FIPS-approved settings. x509 Package x509 implements a subset of the X.509 standard. Package x509 implements a subset of the X.509 standard. x509/internal/macos Package macOS provides cgo-less wrappers for Core Foundation and Security.framework, similarly to how package syscall provides access to libSystem.dylib. Package macOS provides cgo-less wrappers for Core Foundation and Security.framework, similarly to how package syscall provides access to libSystem.dylib. x509/pkix Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP. Package pkix contains shared, low level structures used for ASN.1 parsing and serialization of X.509 certificates, CRL and OCSP. database sql Package sql provides a generic interface around SQL (or SQL-like) databases. Package sql provides a generic interface around SQL (or SQL-like) databases. sql/driver Package driver defines interfaces to be implemented by database drivers as used by package sql. Package driver defines interfaces to be implemented by database drivers as used by package sql. debug buildinfo Package buildinfo provides access to information embedded in a Go binary about how it was built. Package buildinfo provides access to information embedded in a Go binary about how it was built. dwarf Package dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf. Package dwarf provides access to DWARF debugging information loaded from executable files, as defined in the DWARF 2.0 Standard at http://dwarfstd.org/doc/dwarf-2.0.0.pdf. elf Package elf implements access to ELF object files. Package elf implements access to ELF object files. gosym Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers. Package gosym implements access to the Go symbol and line number tables embedded in Go binaries generated by the gc compilers. macho Package macho implements access to Mach-O object files. Package macho implements access to Mach-O object files. pe Package pe implements access to PE (Microsoft Windows Portable Executable) files. Package pe implements access to PE (Microsoft Windows Portable Executable) files. plan9obj Package plan9obj implements access to Plan 9 a.out object files. Package plan9obj implements access to Plan 9 a.out object files. embed Package embed provides access to files embedded in the running Go program. Package embed provides access to files embedded in the running Go program. encoding Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations. Package encoding defines interfaces shared by other packages that convert data to and from byte-level and textual representations. ascii85 Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats. Package ascii85 implements the ascii85 data encoding as used in the btoa tool and Adobe's PostScript and PDF document formats. asn1 Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690. Package asn1 implements parsing of DER-encoded ASN.1 data structures, as defined in ITU-T Rec X.690. base32 Package base32 implements base32 encoding as specified by RFC 4648. Package base32 implements base32 encoding as specified by RFC 4648. base64 Package base64 implements base64 encoding as specified by RFC 4648. Package base64 implements base64 encoding as specified by RFC 4648. binary Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints. Package binary implements simple translation between numbers and byte sequences and encoding and decoding of varints. csv Package csv reads and writes comma-separated values (CSV) files. Package csv reads and writes comma-separated values (CSV) files. gob Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver). Package gob manages streams of gobs - binary values exchanged between an Encoder (transmitter) and a Decoder (receiver). hex Package hex implements hexadecimal encoding and decoding. Package hex implements hexadecimal encoding and decoding. json Package json implements encoding and decoding of JSON as defined in RFC 7159. Package json implements encoding and decoding of JSON as defined in RFC 7159. json/jsontext Package jsontext implements syntactic processing of JSON as specified in RFC 4627, RFC 7159, RFC 7493, RFC 8259, and RFC 8785. Package jsontext implements syntactic processing of JSON as specified in RFC 4627, RFC 7159, RFC 7493, RFC 8259, and RFC 8785. json/v2 Package json implements semantic processing of JSON as specified in RFC 8259. Package json implements semantic processing of JSON as specified in RFC 8259. pem Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail. Package pem implements the PEM data encoding, which originated in Privacy Enhanced Mail. xml Package xml implements a simple XML 1.0 parser that understands XML name spaces. Package xml implements a simple XML 1.0 parser that understands XML name spaces. errors Package errors implements functions to manipulate errors. Package errors implements functions to manipulate errors. expvar Package expvar provides a standardized interface to public variables, such as operation counters in servers. Package expvar provides a standardized interface to public variables, such as operation counters in servers. flag Package flag implements command-line flag parsing. Package flag implements command-line flag parsing. fmt Package fmt implements formatted I/O with functions analogous to C's printf and scanf. Package fmt implements formatted I/O with functions analogous to C's printf and scanf. go ast Package ast declares the types used to represent syntax trees for Go packages. Package ast declares the types used to represent syntax trees for Go packages. build Package build gathers information about Go packages. Package build gathers information about Go packages. build/constraint Package constraint implements parsing and evaluation of build constraint lines. Package constraint implements parsing and evaluation of build constraint lines. constant Package constant implements Values representing untyped Go constants and their corresponding operations. Package constant implements Values representing untyped Go constants and their corresponding operations. doc Package doc extracts source code documentation from a Go AST. Package doc extracts source code documentation from a Go AST. doc/comment Package comment implements parsing and reformatting of Go doc comments, (documentation comments), which are comments that immediately precede a top-level declaration of a package, const, func, type, or var. Package comment implements parsing and reformatting of Go doc comments, (documentation comments), which are comments that immediately precede a top-level declaration of a package, const, func, type, or var. format Package format implements standard formatting of Go source. Package format implements standard formatting of Go source. importer Package importer provides access to export data importers. Package importer provides access to export data importers. internal/gccgoimporter Package gccgoimporter implements Import for gccgo-generated object files. Package gccgoimporter implements Import for gccgo-generated object files. internal/gcimporter Package gcimporter implements Import for gc-generated object files. Package gcimporter implements Import for gc-generated object files. internal/srcimporter Package srcimporter implements importing directly from source files rather than installed packages. Package srcimporter implements importing directly from source files rather than installed packages. parser Package parser implements a parser for Go source files. Package parser implements a parser for Go source files. printer Package printer implements printing of AST nodes. Package printer implements printing of AST nodes. scanner Package scanner implements a scanner for Go source text. Package scanner implements a scanner for Go source text. token Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates). Package token defines constants representing the lexical tokens of the Go programming language and basic operations on tokens (printing, predicates). types Package types declares the data types and implements the algorithms for type-checking of Go packages. Package types declares the data types and implements the algorithms for type-checking of Go packages. version Package version provides operations on [Go versions] in [Go toolchain name syntax]: strings like \"go1.20\", \"go1.21.0\", \"go1.22rc2\", and \"go1.23.4-bigcorp\". Package version provides operations on [Go versions] in [Go toolchain name syntax]: strings like \"go1.20\", \"go1.21.0\", \"go1.22rc2\", and \"go1.23.4-bigcorp\". hash Package hash provides interfaces for hash functions. Package hash provides interfaces for hash functions. adler32 Package adler32 implements the Adler-32 checksum. Package adler32 implements the Adler-32 checksum. crc32 Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum. Package crc32 implements the 32-bit cyclic redundancy check, or CRC-32, checksum. crc64 Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum. Package crc64 implements the 64-bit cyclic redundancy check, or CRC-64, checksum. fnv Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo. Package fnv implements FNV-1 and FNV-1a, non-cryptographic hash functions created by Glenn Fowler, Landon Curt Noll, and Phong Vo. maphash Package maphash provides hash functions on byte sequences and comparable values. Package maphash provides hash functions on byte sequences and comparable values. html Package html provides functions for escaping and unescaping HTML text. Package html provides functions for escaping and unescaping HTML text. template Package template (html/template) implements data-driven templates for generating HTML output safe against code injection. Package template (html/template) implements data-driven templates for generating HTML output safe against code injection. image Package image implements a basic 2-D image library. Package image implements a basic 2-D image library. color Package color implements a basic color library. Package color implements a basic color library. color/palette Package palette provides standard color palettes. Package palette provides standard color palettes. draw Package draw provides image composition functions. Package draw provides image composition functions. gif Package gif implements a GIF image decoder and encoder. Package gif implements a GIF image decoder and encoder. internal/imageutil Package imageutil contains code shared by image-related packages. Package imageutil contains code shared by image-related packages. jpeg Package jpeg implements a JPEG image decoder and encoder. Package jpeg implements a JPEG image decoder and encoder. png Package png implements a PNG image decoder and encoder. Package png implements a PNG image decoder and encoder. index suffixarray Package suffixarray implements substring search in logarithmic time using an in-memory suffix array. Package suffixarray implements substring search in logarithmic time using an in-memory suffix array. internal abi asan Package asan contains helper functions for manually instrumenting code for the address sanitizer. Package asan contains helper functions for manually instrumenting code for the address sanitizer. bisect Package bisect can be used by compilers and other programs to serve as a target for the bisect debugging tool. Package bisect can be used by compilers and other programs to serve as a target for the bisect debugging tool. buildcfg Package buildcfg provides access to the build configuration described by the current environment. Package buildcfg provides access to the build configuration described by the current environment. bytealg byteorder Package byteorder provides functions for decoding and encoding little and big endian integer types from/to byte slices. Package byteorder provides functions for decoding and encoding little and big endian integer types from/to byte slices. cfg Package cfg holds configuration shared by the Go command and internal/testenv. Package cfg holds configuration shared by the Go command and internal/testenv. cgrouptest Package cgrouptest provides best-effort helpers for running tests inside a cgroup. Package cgrouptest provides best-effort helpers for running tests inside a cgroup. chacha8rand Package chacha8rand implements a pseudorandom generator based on ChaCha8. Package chacha8rand implements a pseudorandom generator based on ChaCha8. coverage coverage/calloc coverage/cfile Package cfile implements management of coverage files. Package cfile implements management of coverage files. coverage/cformat coverage/cmerge coverage/decodecounter coverage/decodemeta coverage/encodecounter coverage/encodemeta coverage/pods coverage/rtcov coverage/slicereader coverage/slicewriter coverage/stringtab coverage/uleb128 cpu Package cpu implements processor feature detection used by the Go standard library. Package cpu implements processor feature detection used by the Go standard library. dag Package dag implements a language for expressing directed acyclic graphs. Package dag implements a language for expressing directed acyclic graphs. diff exportdata Package exportdata implements common utilities for finding and reading gc-generated object files. Package exportdata implements common utilities for finding and reading gc-generated object files. filepathlite Package filepathlite implements a subset of path/filepath, only using packages which may be imported by \"os\". Package filepathlite implements a subset of path/filepath, only using packages which may be imported by \"os\". fmtsort Package fmtsort provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages. Package fmtsort provides a general stable ordering mechanism for maps, on behalf of the fmt and text/template packages. fuzz Package fuzz provides common fuzzing functionality for tests built with \"go test\" and for programs that use fuzzing functionality in the testing package. Package fuzz provides common fuzzing functionality for tests built with \"go test\" and for programs that use fuzzing functionality in the testing package. goarch package goarch contains GOARCH-specific constants. package goarch contains GOARCH-specific constants. godebug Package godebug makes the settings in the $GODEBUG environment variable available to other packages. Package godebug makes the settings in the $GODEBUG environment variable available to other packages. godebugs Package godebugs provides a table of known GODEBUG settings, for use by a variety of other packages, including internal/godebug, runtime, runtime/metrics, and cmd/go/internal/load. Package godebugs provides a table of known GODEBUG settings, for use by a variety of other packages, including internal/godebug, runtime, runtime/metrics, and cmd/go/internal/load. goexperiment Package goexperiment implements support for toolchain experiments. Package goexperiment implements support for toolchain experiments. goos package goos contains GOOS-specific constants. package goos contains GOOS-specific constants. goroot gover Package gover implements support for Go toolchain versions like 1.21.0 and 1.21rc1. Package gover implements support for Go toolchain versions like 1.21.0 and 1.21rc1. goversion itoa lazyregexp Package lazyregexp is a thin wrapper over regexp, allowing the use of global regexp variables without forcing them to be compiled at init. Package lazyregexp is a thin wrapper over regexp, allowing the use of global regexp variables without forcing them to be compiled at init. lazytemplate Package lazytemplate is a thin wrapper over text/template, allowing the use of global template variables without forcing them to be parsed at init. Package lazytemplate is a thin wrapper over text/template, allowing the use of global template variables without forcing them to be parsed at init. msan Package msan contains helper functions for manually instrumenting code for the memory sanitizer. Package msan contains helper functions for manually instrumenting code for the memory sanitizer. nettrace Package nettrace contains internal hooks for tracing activity in the net package. Package nettrace contains internal hooks for tracing activity in the net package. obscuretestdata Package obscuretestdata contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986. Package obscuretestdata contains functionality used by tests to more easily work with testdata that must be obscured primarily due to golang.org/issue/34986. oserror Package oserror defines errors values used in the os package. Package oserror defines errors values used in the os package. pkgbits Package pkgbits implements low-level coding abstractions for Unified IR's (UIR) binary export data format. Package pkgbits implements low-level coding abstractions for Unified IR's (UIR) binary export data format. platform poll Package poll supports non-blocking I/O on file descriptors with polling. Package poll supports non-blocking I/O on file descriptors with polling. profile Package profile represents a pprof profile as a directed graph. Package profile represents a pprof profile as a directed graph. profilerecord Package profilerecord holds internal types used to represent profiling records with deep stack traces. Package profilerecord holds internal types used to represent profiling records with deep stack traces. race Package race contains helper functions for manually instrumenting code for the race detector. Package race contains helper functions for manually instrumenting code for the race detector. reflectlite Package reflectlite implements lightweight version of reflect, not using any package except for \"runtime\", \"unsafe\", and \"internal/abi\" Package reflectlite implements lightweight version of reflect, not using any package except for \"runtime\", \"unsafe\", and \"internal/abi\" routebsd Package routebsd supports reading interface addresses on BSD systems. Package routebsd supports reading interface addresses on BSD systems. runtime/atomic Package atomic provides atomic operations, independent of sync/atomic, to the runtime. Package atomic provides atomic operations, independent of sync/atomic, to the runtime. runtime/cgroup runtime/exithook Package exithook provides limited support for on-exit cleanup. Package exithook provides limited support for on-exit cleanup. runtime/gc runtime/maps Package maps implements Go's builtin map type. Package maps implements Go's builtin map type. runtime/math runtime/startlinetest Package startlinetest contains helpers for runtime_test.TestStartLineAsm. Package startlinetest contains helpers for runtime_test.TestStartLineAsm. runtime/strconv runtime/sys package sys contains system- and configuration- and architecture-specific constants used by the runtime. package sys contains system- and configuration- and architecture-specific constants used by the runtime. runtime/syscall Package syscall provides the syscall primitives required for the runtime. Package syscall provides the syscall primitives required for the runtime. saferio Package saferio provides I/O functions that avoid allocating large amounts of memory unnecessarily. Package saferio provides I/O functions that avoid allocating large amounts of memory unnecessarily. singleflight Package singleflight provides a duplicate function call suppression mechanism. Package singleflight provides a duplicate function call suppression mechanism. stringslite Package stringslite implements a subset of strings, only using packages that may be imported by \"os\". Package stringslite implements a subset of strings, only using packages that may be imported by \"os\". sync Package sync provides basic synchronization primitives such as mutual exclusion locks to internal packages (including ones that depend on sync). Package sync provides basic synchronization primitives such as mutual exclusion locks to internal packages (including ones that depend on sync). synctest Package synctest provides support for testing concurrent code. Package synctest provides support for testing concurrent code. syscall/execenv syscall/unix syscall/windows syscall/windows/registry Package registry provides access to the Windows registry. Package registry provides access to the Windows registry. syscall/windows/sysdll Package sysdll is an internal leaf package that records and reports which Windows DLL names are used by Go itself. Package sysdll is an internal leaf package that records and reports which Windows DLL names are used by Go itself. sysinfo Package sysinfo implements high level hardware information gathering that can be used for debugging or information purposes. Package sysinfo implements high level hardware information gathering that can be used for debugging or information purposes. syslist testenv Package testenv provides information about what functionality is available in different testing environments run by the Go team. Package testenv provides information about what functionality is available in different testing environments run by the Go team. testhash testlog Package testlog provides a back-channel communication path between tests and package os, so that cmd/go can see which environment variables and files a test consults. Package testlog provides a back-channel communication path between tests and package os, so that cmd/go can see which environment variables and files a test consults. testpty Package testpty is a simple pseudo-terminal package for Unix systems, implemented by calling C functions via cgo. Package testpty is a simple pseudo-terminal package for Unix systems, implemented by calling C functions via cgo. trace trace/internal/testgen trace/internal/tracev1 Package tracev1 implements a parser for Go execution traces from versions 1.11–1.21. Package tracev1 implements a parser for Go execution traces from versions 1.11–1.21. trace/raw Package raw provides an interface to interpret and emit Go execution traces. Package raw provides an interface to interpret and emit Go execution traces. trace/testtrace trace/tracev2 Package tracev2 contains definitions for the v2 execution trace wire format. Package tracev2 contains definitions for the v2 execution trace wire format. trace/traceviewer trace/traceviewer/format Package traceviewer provides definitions of the JSON data structures used by the Chrome trace viewer. Package traceviewer provides definitions of the JSON data structures used by the Chrome trace viewer. trace/version txtar Package txtar implements a trivial text-based file archive format. Package txtar implements a trivial text-based file archive format. types/errors unsafeheader Package unsafeheader contains header declarations for the Go runtime's slice and string implementations. Package unsafeheader contains header declarations for the Go runtime's slice and string implementations. xcoff Package xcoff implements access to XCOFF (Extended Common Object File Format) files. Package xcoff implements access to XCOFF (Extended Common Object File Format) files. zstd Package zstd provides a decompressor for zstd streams, described in RFC 8878. Package zstd provides a decompressor for zstd streams, described in RFC 8878. io Package io provides basic interfaces to I/O primitives. Package io provides basic interfaces to I/O primitives. fs Package fs defines basic interfaces to a file system. Package fs defines basic interfaces to a file system. ioutil Package ioutil implements some I/O utility functions. Package ioutil implements some I/O utility functions. iter Package iter provides basic definitions and operations related to iterators over sequences. Package iter provides basic definitions and operations related to iterators over sequences. log Package log implements a simple logging package. Package log implements a simple logging package. internal Package internal contains definitions used by both log and log/slog. Package internal contains definitions used by both log and log/slog. slog Package slog provides structured logging, in which log records include a message, a severity level, and various other attributes expressed as key-value pairs. Package slog provides structured logging, in which log records include a message, a severity level, and various other attributes expressed as key-value pairs. slog/internal slog/internal/benchmarks Package benchmarks contains benchmarks for slog. Package benchmarks contains benchmarks for slog. slog/internal/buffer Package buffer provides a pool-allocated byte buffer. Package buffer provides a pool-allocated byte buffer. syslog Package syslog provides a simple interface to the system log service. Package syslog provides a simple interface to the system log service. maps Package maps defines various functions useful with maps of any type. Package maps defines various functions useful with maps of any type. math Package math provides basic constants and mathematical functions. Package math provides basic constants and mathematical functions. big Package big implements arbitrary-precision arithmetic (big numbers). Package big implements arbitrary-precision arithmetic (big numbers). big/internal/asmgen Asmgen generates math/big assembly. Asmgen generates math/big assembly. bits Package bits implements bit counting and manipulation functions for the predeclared unsigned integer types. Package bits implements bit counting and manipulation functions for the predeclared unsigned integer types. cmplx Package cmplx provides basic constants and mathematical functions for complex numbers. Package cmplx provides basic constants and mathematical functions for complex numbers. rand Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work. Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work. rand/v2 Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work. Package rand implements pseudo-random number generators suitable for tasks such as simulation, but it should not be used for security-sensitive work. mime Package mime implements parts of the MIME spec. Package mime implements parts of the MIME spec. multipart Package multipart implements MIME multipart parsing, as defined in RFC 2046. Package multipart implements MIME multipart parsing, as defined in RFC 2046. quotedprintable Package quotedprintable implements quoted-printable encoding as specified by RFC 2045. Package quotedprintable implements quoted-printable encoding as specified by RFC 2045. net Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets. Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets. http Package http provides HTTP client and server implementations. Package http provides HTTP client and server implementations. http/cgi Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875. Package cgi implements CGI (Common Gateway Interface) as specified in RFC 3875. http/cookiejar Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar. Package cookiejar implements an in-memory RFC 6265-compliant http.CookieJar. http/fcgi Package fcgi implements the FastCGI protocol. Package fcgi implements the FastCGI protocol. http/httptest Package httptest provides utilities for HTTP testing. Package httptest provides utilities for HTTP testing. http/httptrace Package httptrace provides mechanisms to trace the events within HTTP client requests. Package httptrace provides mechanisms to trace the events within HTTP client requests. http/httputil Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package. Package httputil provides HTTP utility functions, complementing the more common ones in the net/http package. http/internal Package internal contains HTTP internals shared by net/http and net/http/httputil. Package internal contains HTTP internals shared by net/http and net/http/httputil. http/internal/ascii http/internal/httpcommon http/internal/testcert Package testcert contains a test-only localhost certificate. Package testcert contains a test-only localhost certificate. http/pprof Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool. Package pprof serves via its HTTP server runtime profiling data in the format expected by the pprof visualization tool. internal/cgotest internal/socktest Package socktest provides utilities for socket testing. Package socktest provides utilities for socket testing. mail Package mail implements parsing of mail messages. Package mail implements parsing of mail messages. netip Package netip defines an IP address type that's a small value type. Package netip defines an IP address type that's a small value type. rpc Package rpc provides access to the exported methods of an object across a network or other I/O connection. Package rpc provides access to the exported methods of an object across a network or other I/O connection. rpc/jsonrpc Package jsonrpc implements a JSON-RPC 1.0 ClientCodec and ServerCodec for the rpc package. Package jsonrpc implements a JSON-RPC 1.0 ClientCodec and ServerCodec for the rpc package. smtp Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321. Package smtp implements the Simple Mail Transfer Protocol as defined in RFC 5321. textproto Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP. Package textproto implements generic support for text-based request/response protocols in the style of HTTP, NNTP, and SMTP. url Package url parses URLs and implements query escaping. Package url parses URLs and implements query escaping. os Package os provides a platform-independent interface to operating system functionality. Package os provides a platform-independent interface to operating system functionality. exec Package exec runs external commands. Package exec runs external commands. exec/internal/fdtest Package fdtest provides test helpers for working with file descriptors across exec. Package fdtest provides test helpers for working with file descriptors across exec. signal Package signal implements access to incoming signals. Package signal implements access to incoming signals. user Package user allows user account lookups by name or id. Package user allows user account lookups by name or id. path Package path implements utility routines for manipulating slash-separated paths. Package path implements utility routines for manipulating slash-separated paths. filepath Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths. Package filepath implements utility routines for manipulating filename paths in a way compatible with the target operating system-defined file paths. plugin Package plugin implements loading and symbol resolution of Go plugins. Package plugin implements loading and symbol resolution of Go plugins. reflect Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types. Package reflect implements run-time reflection, allowing a program to manipulate objects with arbitrary types. internal/example1 internal/example2 regexp Package regexp implements regular expression search. Package regexp implements regular expression search. syntax Package syntax parses regular expressions into parse trees and compiles parse trees into programs. Package syntax parses regular expressions into parse trees and compiles parse trees into programs. runtime Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines. Package runtime contains operations that interact with Go's runtime system, such as functions to control goroutines. cgo Package cgo contains runtime support for code generated by the cgo tool. Package cgo contains runtime support for code generated by the cgo tool. coverage Package coverage contains APIs for writing coverage profile data at runtime from long-running and/or server programs that do not terminate via os.Exit. Package coverage contains APIs for writing coverage profile data at runtime from long-running and/or server programs that do not terminate via os.Exit. debug Package debug contains facilities for programs to debug themselves while they are running. Package debug contains facilities for programs to debug themselves while they are running. metrics Package metrics provides a stable interface to access implementation-defined metrics exported by the Go runtime. Package metrics provides a stable interface to access implementation-defined metrics exported by the Go runtime. pprof Package pprof writes runtime profiling data in the format expected by the pprof visualization tool. Package pprof writes runtime profiling data in the format expected by the pprof visualization tool. race Package race implements data race detection logic. Package race implements data race detection logic. race/internal/amd64v1 trace Package trace contains facilities for programs to generate traces for the Go execution tracer. Package trace contains facilities for programs to generate traces for the Go execution tracer. slices Package slices defines various functions useful with slices of any type. Package slices defines various functions useful with slices of any type. sort Package sort provides primitives for sorting slices and user-defined collections. Package sort provides primitives for sorting slices and user-defined collections. strconv Package strconv implements conversions to and from string representations of basic data types. Package strconv implements conversions to and from string representations of basic data types. strings Package strings implements simple functions to manipulate UTF-8 encoded strings. Package strings implements simple functions to manipulate UTF-8 encoded strings. structs Package structs defines marker types that can be used as struct fields to modify the properties of a struct. Package structs defines marker types that can be used as struct fields to modify the properties of a struct. sync Package sync provides basic synchronization primitives such as mutual exclusion locks. Package sync provides basic synchronization primitives such as mutual exclusion locks. atomic Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms. Package atomic provides low-level atomic memory primitives useful for implementing synchronization algorithms. syscall Package syscall contains an interface to the low-level operating system primitives. Package syscall contains an interface to the low-level operating system primitives. js Package js gives access to the WebAssembly host environment when using the js/wasm architecture. Package js gives access to the WebAssembly host environment when using the js/wasm architecture. testing Package testing provides support for automated testing of Go packages. Package testing provides support for automated testing of Go packages. fstest Package fstest implements support for testing implementations and users of file systems. Package fstest implements support for testing implementations and users of file systems. internal/testdeps Package testdeps provides access to dependencies needed by test execution. Package testdeps provides access to dependencies needed by test execution. iotest Package iotest implements Readers and Writers useful mainly for testing. Package iotest implements Readers and Writers useful mainly for testing. quick Package quick implements utility functions to help with black box testing. Package quick implements utility functions to help with black box testing. slogtest Package slogtest implements support for testing implementations of log/slog.Handler. Package slogtest implements support for testing implementations of log/slog.Handler. synctest Package synctest provides support for testing concurrent code. Package synctest provides support for testing concurrent code. text scanner Package scanner provides a scanner and tokenizer for UTF-8-encoded text. Package scanner provides a scanner and tokenizer for UTF-8-encoded text. tabwriter Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text. Package tabwriter implements a write filter (tabwriter.Writer) that translates tabbed columns in input into properly aligned text. template Package template implements data-driven templates for generating textual output. Package template implements data-driven templates for generating textual output. template/parse Package parse builds parse trees for templates as defined by text/template and html/template. Package parse builds parse trees for templates as defined by text/template and html/template. time Package time provides functionality for measuring and displaying time. Package time provides functionality for measuring and displaying time. tzdata Package tzdata provides an embedded copy of the timezone database. Package tzdata provides an embedded copy of the timezone database. unicode Package unicode provides data and functions to test some properties of Unicode code points. Package unicode provides data and functions to test some properties of Unicode code points. utf16 Package utf16 implements encoding and decoding of UTF-16 sequences. Package utf16 implements encoding and decoding of UTF-16 sequences. utf8 Package utf8 implements functions and constants to support text encoded in UTF-8. Package utf8 implements functions and constants to support text encoded in UTF-8. unique The unique package provides facilities for canonicalizing (\"interning\") comparable values. The unique package provides facilities for canonicalizing (\"interning\") comparable values. unsafe Package unsafe contains operations that step around the type safety of Go programs. Package unsafe contains operations that step around the type safety of Go programs. weak Package weak provides ways to safely reference memory weakly, that is, without preventing its reclamation. Package weak provides ways to safely reference memory weakly, that is, without preventing its reclamation. Click to show internal directories. Click to hide internal directories.\n\nJump to Close\n\nKeyboard shortcuts ? : This menu / : Search site f or to y or URL Close\n\ngo.dev uses cookies from Google to deliver and enhance the quality of its services and to analyze traffic. Learn more. Okay\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:18:00.752Z","totalSectionsIncluded":4,"totalCodeBlocksIncluded":0,"totalLines":9,"estimatedTokens":13561}}517{"id":"doc-network_restrictions_supabase_docs-b787b5d6","source":"documentation","title":"Network Restrictions | Supabase Docs","url":"https://supabase.com/docs/guides/platform/network-restrictions","text":"PlatformPlatform ConfigurationNetwork Restrictions\n\nExample:\n```text\n1> supabase network-restrictions get --project-ref {ref} --experimental2DB Allowed IPv4 CIDRs: &[183.12.1.1/24]3DB Allowed IPv6 CIDRs: &[2001:db8:3333:4444:5555:6666:7777:8888/64]4Restrictions applied successfully: true\n```\n\nExample:\n```text\n1> supabase network-restrictions get --project-ref {ref} --experimental2DB Allowed IPv4 CIDRs: []3DB Allowed IPv6 CIDRs: []4Restrictions applied successfully: false\n```\n\nExample:\n```text\n1> supabase network-restrictions update --project-ref {ref} --db-allow-cidr 183.12.1.1/24 --db-allow-cidr 2001:db8:3333:4444:5555:6666:7777:8888/64 --experimental2DB Allowed IPv4 CIDRs: &[183.12.1.1/24]3DB Allowed IPv6 CIDRs: &[2001:db8:3333:4444:5555:6666:7777:8888/64]4Restrictions applied successfully: true\n```\n\nExample:\n```text\n1> supabase network-restrictions update --project-ref {ref} --db-allow-cidr 1.2.3.4/32 --append --experimental2DB Allowed IPv4 CIDRs: &[183.12.1.1/24 1.2.3.4/32]3DB Allowed IPv6 CIDRs: &[2001:db8:3333:4444:5555:6666:7777:8888/64]4Restrictions applied successfully: true\n```\n\nExample:\n```text\n1> supabase network-restrictions update --project-ref {ref} --db-allow-cidr 0.0.0.0/0 --db-allow-cidr ::/0 --experimental2DB Allowed IPv4 CIDRs: &[0.0.0.0/0]3DB Allowed IPv6 CIDRs: &[::/0]4Restrictions applied successfully: true\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.174Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":28,"estimatedTokens":343}}518{"id":"doc-iceberg_catalog_supabase_docs-5e079507","source":"documentation","title":"Iceberg Catalog | Supabase Docs","url":"https://supabase.com/docs/guides/storage/analytics/connecting-to-analytics-bucket","text":"StorageAnalytics BucketsIceberg Catalog\n\nExample:\n```text\n1curl \\2 --request GET -sL \\3 --url 'https://<your-project-ref>.supabase.co/storage/v1/iceberg/v1/config?warehouse=<bucket-name>' \\4 --header 'Authorization: Bearer <your-service-key>'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.214Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":1,"totalLines":8,"estimatedTokens":66}}519{"id":"doc-build_an_api_route_in_less_than_2_minutes_supaba-033a2de1","source":"documentation","title":"Build an API route in less than 2 minutes. | Supabase Docs","url":"https://supabase.com/docs/guides/api/quickstart","text":"Data REST APIQuickstart\n\nExample:\n```text\n1-- Create a \"leaderboard\" table to store2-- player names and their scores.3create table leaderboard (4 id serial primary key,5 player text not null,6 score integer not null default 0,7 created_at timestamptz default now()8);\n```\n\nExample:\n```text\n1-- Allow read-only access for anonymous clients2grant select on public.leaderboard to anon;\n```\n\nExample:\n```text\n1-- Turn on RLS2alter table \"leaderboard\"3enable row level security;45-- Anyone can read the leaderboard6create policy \"Leaderboard is public\"7 on leaderboard8 for select9 to anon, authenticated10 using (true);1112-- Authenticated users can submit and update scores13create policy \"Authenticated users can submit scores\"14 on leaderboard15 for insert16 to authenticated17 with check (true);1819create policy \"Authenticated users can update scores\"20 on leaderboard21 for update22 to authenticated23 using (true)24 with check (true);\n```\n\nExample:\n```text\n1-- Grant write access only after RLS and policies are in place2grant select, insert, update, delete on public.leaderboard to authenticated;3grant select, insert, update, delete on public.leaderboard to service_role;\n```\n\nExample:\n```text\n1insert into leaderboard (player, score)2values3 ('alice', 4200),4 ('bob', 3700),5 ('carol', 5100),6 ('dave', 2900);\n```\n\nExample:\n```text\n1curl 'https://<PROJECT_REF>.supabase.co/rest/v1/leaderboard?select=*&order=score.desc' \\2-H \"apikey: <PUBLISHABLE_KEY>\"\n```\n\nExample:\n```text\n1curl 'https://<PROJECT_REF>.supabase.co/rest/v1/leaderboard?select=*&order=score.desc' \\2 -H \"apikey: <PUBLISHABLE_KEY>\" \\\n```\n\nExample:\n```text\n1const { data, error } = await supabase2 .from('leaderboard')3 .select()4 .order('score', { ascending: false })\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.221Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":43,"estimatedTokens":446}}520{"id":"doc-supabase_docs_troubleshooting_transfer_edge_func-b97479cc","source":"documentation","title":"Supabase Docs | Troubleshooting | Transfer edge functions from one project to another","url":"https://supabase.com/docs/guides/troubleshooting/transfer-edge-function-from-one-project-to-another","text":"DOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KDOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KTransfer edge functions from one project to anotherThis guide shows how you can transfer your Edge Functions from one project to another using the Supabase CLI or the Supabase Dashboard. Pre-requisites# To follow through this guide, you need the must have the right access privileges to both the source and target project You must have installed the Supabase CLI tool Both source and target projects must be active Steps (using the Supabase CLI):# Login to your Supabase account (the account with the functions) using your terminal 1supabase login This should open up a web page with an access code. Copy the code, paste it in your terminal, and hit enter. List all Edge Functions by running the following command 1supabase functions list --project-ref your_project_ref Download the function 1supabase functions download function_name --project-ref your_project_ref Repeat this step to download multiple functions. This downloads the function(s) into supabase/functions. You can view the downloaded function(s) by running 1ls supabase/functions Link to the target project 1supabase link --project-ref your_target_project_ref Deploy function(s) to target project 1supabase functions deploy --project-ref your_target_project_ref This deploys all functions within the supabase/functions to the target project. You can confirm by checking your Edge Functions on the project dashboard Steps (using the Supabase Dashboard):# In the source project, navigate to Edge Functions from the side menu Using the Download button, download your desired function as the target project, navigate to Edge Functions from the side menu Click on the Deploy a new function button, select Via Editor operation Drag and drop your downloaded function (the zip function from step 2) into the editor Add your function name and click on the Deploy function button to deploy the this, you can transfer your edge functions between your Supabase projects.MetadataProductsCliDatabaseFunctionsKeywordsfunctionstypescriptdenoIs this helpful? No Yes Need some help?Contact supportLatest product updates?See ChangelogSomething's not right?Check system status© Supabase Inc—ContributingAuthor StyleguideOpen SourceSupaSquadPrivacy SettingsTwitterGitHubDiscordYoutube\n\nExample:\n```text\n1supabase login\n```\n\nExample:\n```text\n1supabase functions list --project-ref your_project_ref\n```\n\nExample:\n```text\n1supabase functions download function_name --project-ref your_project_ref\n```\n\nExample:\n```text\n1ls supabase/functions\n```\n\nExample:\n```text\n1supabase link --project-ref your_target_project_ref\n```\n\nExample:\n```text\n1supabase functions deploy --project-ref your_target_project_ref\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.257Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":6,"totalLines":33,"estimatedTokens":703}}521{"id":"doc-supabase_docs_troubleshooting_why_do_i_see_auth_-cea2294c","source":"documentation","title":"Supabase Docs | Troubleshooting | Why do I see Auth & API requests in the dashboard? My app has no users","url":"https://supabase.com/docs/guides/troubleshooting/why-do-i-see-auth--api-requests-in-the-dashboard-my-app-has-no-users-CyadiO","text":"DOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KDOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KWhy do I see Auth & API requests in the dashboard? My app has no usersThe dashboard makes requests to the health endpoints of the Supabase services (Database, Auth, Data API, Realtime, Edge Functions to ensure everything is working). These requests appear in the charts about your can see these requests to the health endpoints from the log explorer ://supabase.com/dashboard/project/_/logs/edge-logsMetadataProductsAuthPlatformDatabaseRealtimeKeywordsdashboardhealthendpointsIs this helpful? No Yes View discussion on GitHubNeed some help?Contact supportLatest product updates?See ChangelogSomething's not right?Check system status© Supabase Inc—ContributingAuthor StyleguideOpen SourceSupaSquadPrivacy SettingsTwitterGitHubDiscordYoutube\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.265Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":226}}522{"id":"doc-supabase_docs_troubleshooting_understanding_post-6dfc4d65","source":"documentation","title":"Supabase Docs | Troubleshooting | Understanding Postgres Logging Levels and How They Impact Your Project","url":"https://supabase.com/docs/guides/troubleshooting/understanding-postgresql-logging-levels-and-how-they-impact-your-project-KXiJRm","text":"DOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KDOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KUnderstanding Postgres Logging Levels and How They Impact Your ProjectSince each Supabase project uses Postgres as its underlying database engine, it’s common to adjust logging settings for various reasons—whether for debugging issues, monitoring database performance, or auditing actions. However, modifying logging levels improperly can lead to an excessive amount of log data being generated, which can fill up your disk space and cause significant performance degradation or even system failure. 1. Overview of Postgres logging levels# Postgres provides multiple logging levels that allow you to control how much information gets logged. These LevelDescriptionDEBUG1-5Logs very detailed information about the operations of the database, useful only for deep debugging.INFOLogs information about routine database operations that aren’t necessarily errors but may still be relevant to track.NOTICELogs messages that are not errors but may still be noteworthy.WARNINGLogs warnings, which indicate issues that don’t prevent execution but could cause problems later.ERRORLogs errors that cause statements to fail.LOGLogs general messages such as startup, shutdown, or checkpoints.FATALLogs errors that cause the database session to fail.PANICLogs critical issues that force the database to shut down. Each of these log levels is useful in specific situations. Here's an example of what messages tagged with each severity level look : server process (PID 12345) exited with exit code \"example_schema.public.example_table\"3NOTICE: identifier \"very_very_very_long_table_name_exceeding_63_characters\" will be truncated to \"very_very_very_long_table_name_exceedin\"4WARNING: SET LOCAL can only be used in transaction : UPDATE example_table SET column_name = 'Example Value' WHERE id = 10;6ERROR: relation \"exam\" does not exist at character \"admin\" does not system shutdown requested The default log level is set to WARNING through the log_min_messages setting, and we recommend keeping it that way. 2. How high log levels can affect your database# When users alter a high level of log settings, the database can start generating an overwhelming number of log entries. This can escalate to issues such Space files can grow exponentially if verbose levels like DEBUG, INFO, or NOTICE are enabled for long periods. And running out of disk space due to log bloat can cause your database to stop accepting writes and slow down query performance. I/O too many logs increases input/output (I/O) operations, which can negatively impact database speed. A database bogged down by heavy logging will take longer to process requests, leading to slower application performance. Database extreme cases, if the disk is filled to capacity with logs, your database could lock up, leading to downtime or severe performance degradation. 3. Common scenarios that cause log overload# Here are a few common scenarios where excessive logging can become a Use of DEBUG useful for troubleshooting, leaving DEBUG logging enabled for a long period can lead to the accumulation of massive amounts of logs. Setting INFO for INFO can be helpful for tracking general database activity, but if left on indefinitely, it can still result in a lot of noise and unnecessary log growth. Frequent Write your database processes a lot of write operations (such as inserts, updates, or deletes), even low-level logs (like NOTICE or INFO) can lead to significant log accumulation. 4. How to manage Postgres log levels effectively# a. Choose the Right Log Level For most users, setting Postgres logs to WARNING or ERROR is sufficient for regular operations. Here’s a general : Use this level for general logging during normal operations. It captures issues that may not be critical but are worth paying attention to. level is ideal for production environments. It logs only failures that prevent queries from being executed, reducing log noise significantly. DEBUG, INFO, or these levels sparingly and only for short-term debugging or diagnostics. Always remember to revert the setting once you've collected the necessary information. b. How to Adjust Log Levels You can adjust log levels using SQL commands in the SQL Editor or any connected Postgres check the current log log_min_messages; To set the log level to WARNING (recommended default): 1ALTER ROLE postgres SET log_min_messages TO 'WARNING'; To set the log level to ROLE postgres SET log_min_messages TO 'ERROR'; To reset to the default ROLE postgres RESET log_min_messages; 5. Conclusion# Postgres logs provide a powerful way to gain valuable insights into your database activity and performance when properly configured, but the key lies in finding the right balance. When set up properly, they can be incredibly useful. 6. Other resources# a. What Events Are Logged in Postgres For a detailed explanation of the types of events logged in your database (such as connection events, checkpoint events, long-running queries, cron jobs, and severity-based logging), you can refer to the official documentation Events Are Logged in Supabase b. Auditing for Compliance and Security We support PGAudit extension, which extends Postgres’s built-in logging capabilities to track database activities for auditing purposes. How to Enable the PGAudit Extension For detailed configuration instructions and logging options, refer to the complete Configuration Guide c. Debugging Functions For more information on how to debug functions in Supabase, refer to the official Functions.MetadataProductsDatabaseKeywordsloggingdiski/olockupsIs this helpful? No Yes View discussion on GitHubNeed some help?Contact supportLatest product updates?See ChangelogSomething's not right?Check system status© Supabase Inc—ContributingAuthor StyleguideOpen SourceSupaSquadPrivacy SettingsTwitterGitHubDiscordYoutube\n\nExample:\n```text\n1DEBUG: server process (PID 12345) exited with exit code 02INFO: vacuuming \"example_schema.public.example_table\"3NOTICE: identifier \"very_very_very_long_table_name_exceeding_63_characters\" will be truncated to \"very_very_very_long_table_name_exceedin\"4WARNING: SET LOCAL can only be used in transaction blocks5LOG: statement: UPDATE example_table SET column_name = 'Example Value' WHERE id = 10;6ERROR: relation \"exam\" does not exist at character 77FATAL: role \"admin\" does not exist8PANIC: database system shutdown requested\n```\n\nExample:\n```text\n1SHOW log_min_messages;\n```\n\nExample:\n```text\n1ALTER ROLE postgres SET log_min_messages TO 'WARNING';\n```\n\nExample:\n```text\n1ALTER ROLE postgres SET log_min_messages TO 'ERROR';\n```\n\nExample:\n```text\n1ALTER ROLE postgres RESET log_min_messages;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.271Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":5,"totalLines":28,"estimatedTokens":1696}}523{"id":"doc-supabase_docs_troubleshooting_high_ram_usage-4a34c11a","source":"documentation","title":"Supabase Docs | Troubleshooting | High RAM usage","url":"https://supabase.com/docs/guides/troubleshooting/exhaust-ram","text":"DOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KDOCSStartProducts Build Manage Reference Resources DOCSSearch docs...Ctrl KHigh RAM usageHigh memory usage doesn't necessarily mean that your instance is at risk. Memory that is used for caching and buffers improves data access speed. But if you notice less performance alongside high memory usage, your memory usage might be unhealthy. Base memory usage# You may observe elevated memory usage even when your database has little to no load. Supabase requires a wide range of services other than Postgres to operate, which can result in an elevated base memory usage. Especially on the smallest compute instance that comes with 1 GB of RAM, it is not unusual for your project to have a base memory usage of ~50%. Issues with high memory usage# Every Supabase project runs in its own dedicated virtual machine. Your instance will have a different set of hardware provisioned depending on your compute add-on. Depending on your workload, your compute hardware may not be suitable and can result in high RAM usage. A good proxy for unhealthy memory usage is swap usage. If you run out of RAM, your system will offload memory to your disk's much slower swap partition. If your swap is above 70%, chances are high that your compute hardware is not suitable for your workload. Head over to your project's Database Health to see your swap usage. High RAM usage could come with a range of performance overall when your instance has to use swap memory the operating system may start killing processes as your system runs out of memory in rare cases, your instance may become unresponsive Monitor your RAM# To check your RAM usage on the Supabase Platform, head over to Database Health in the Observability section. It is also possible to monitor your resources and set up alerts using Prometheus/Grafana. With Grafana you will be able to see how much of your RAM is used for caching and you can track other metrics such as your Swap usage. Read the Metrics Guide to learn more. Common reasons for high RAM usage# Everything you do with your Supabase project requires memory in some form. Hence, there can be many reasons for high RAM usage. Here are some common that take a long time to complete (>1 second) could be using your RAM inefficiently. Check our guide on examining query performance. Too many connection to your database consumes memory. You can check the number of active connections under Database Roles after you select your project. Read our guide on too many open connections. extensions such as timescaledb or pg_cron can use a lot of memory. It can also add up when you have too many extensions running. You can manage your database extensions in the dashboard under Extensions. How to fix your memory issues# Upgrade your can get a Compute Add-on for your project. See your upgrade options by selecting your project. Optimize more out of your instance's resources by optimizing your usage. Have a look at our performance tuning guide and our production readiness guide. MetadataProductsPlatformKeywordsmemoryRAMperformanceIs this helpful? No Yes Need some help?Contact supportLatest product updates?See ChangelogSomething's not right?Check system status© Supabase Inc—ContributingAuthor StyleguideOpen SourceSupaSquadPrivacy SettingsTwitterGitHubDiscordYoutube\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.282Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":840}}524{"id":"doc-supabase_docs_troubleshooting_how_to_interpret_a-28cd68a9","source":"documentation","title":"Supabase Docs | Troubleshooting | How to Interpret and Explore the Postgres Logs","url":"https://supabase.com/docs/guides/troubleshooting/how-to-interpret-and-explore-the-postgres-logs-OuCIOj","text":"Example:\n```text\n1select2 event_message,3 parsed.<column name>4from5 postgres_logs6-- Unpack data stored in the 'metadata' field7cross join unnest(metadata) AS metadata8-- After unpacking the 'metadata' field, extract the 'parsed' field from it9cross join unnest(parsed) AS parsed;\n```\n\nExample:\n```text\n1...query2where3 -- Excluding routine events related to cron, PgBouncer, checkpoints, and successful connections4 not regexp_contains(event_message, '^cron|PgBouncer|checkpoint|connection received|authenticated|authorized');\n```\n\nExample:\n```text\n1-- filtering by time period2...query3where4 timestamp between '2024-05-06 04:44:00' and '2024-05-06 04:45:00'\n```\n\nExample:\n```text\n1-- find error events2... query3where4 parsed.error_severity in ('ERROR', 'FATAL', 'PANIC')\n```\n\nExample:\n```text\n1-- find queries executed by the Dashboard2...query3where4 regexp_contains(parsed.query, '(?i)select . <some table>')\n```\n\nExample:\n```text\n1-- find events based on role/server2... query3where4 -- find events from the relevant role5 parsed.user_name = '<ROLE>'6...\n```\n\nExample:\n```text\n1-- find queries executed by the Dashboard2...query3where4 regexp_contains(parsed.query, '-- source: dashboard')\n```\n\nExample:\n```text\n1select2 cast(postgres_logs.timestamp as datetime) as timestamp,3 event_message,4 parsed.error_severity,5 parsed.user_name,6 parsed.query,7 parsed.detail,8 parsed.hint,9 parsed.sql_state_code,10 parsed.backend_type11from12 postgres_logs13 cross join unnest(metadata) as metadata14 cross join unnest(metadata.parsed) as parsed15where16 regexp_contains(parsed.error_severity, 'ERROR|FATAL|PANIC')17 and parsed.user_name = 'postgres'18 and regexp_contains(event_message, 'duration|operator')19 and not regexp_contains(parsed.query, '<key words>')20 and postgres_logs.timestamp between '2024-04-15 10:50:00' and '2024-04-15 10:50:27'21order by timestamp desc22limit 100;\n```\n\nExample:\n```text\n1... query2where3 -- all pg_audit recorded events start with 'AUDIT'4 regexp_contains(event_message, '^AUDIT')5 and6 -- Finding queries executed from the relevant role (e.g., 'API_role')7 parsed.user_name = 'API_role'\n```\n\nExample:\n```text\n1-- filter by IP2select3 event_message,4 connection_from as ip,5 count(connection_from) as ip_count6from7 postgres_logs8 cross join unnest(metadata) as metadata9 cross join unnest(parsed) as parsed10where11 regexp_contains(user_name, '<ROLE>')12 and regexp_contains(backend_type, 'client backend') -- only search for connections from outside the database (excludes cron jobs)13 and regexp_contains(event_message, '^connection authenticated') -- only view successful authentication events14group by connection_from, event_message15order by ip_count desc16limit 100;\n```\n\nExample:\n```text\n1-- view system variables2select * from pg_settings;\n```\n\nExample:\n```text\n1-- view all log related settings2select *3from pg_settings4where5 (6 category like 'Reporting and Logging / What to Log'7 or category like 'Reporting and Logging / When to Log'8 or category = 'Customized Options'9 )10 and name like '%log%';\n```\n\nExample:\n```text\n1alter role postgres set log_min_messages = '<NEW VALUE>';23-- view new setting4show log_min_messages; -- default WARNING\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:44.295Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":13,"totalLines":66,"estimatedTokens":816}}525{"id":"doc-python_sdk_reference-62916287","source":"documentation","title":"Python SDK Reference","url":"https://vercel.com/docs/sandbox/python-sdk-reference?from=graph","text":"SandboxPython SDK Reference\n\nCross-link SDK Reference (/docs/sandbox/python-sdk-reference)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesExamples — Task-oriented examples for common Vercel Sandbox operations in TypeScript and Python.Run Commands in Vercel Sandbox — Create isolated sandbox environments to run builds, tests, and commands safely.JS SDK Reference — A comprehensive reference for the Vercel Sandbox JavaScript SDK, which lets you run code in a secure, isolated environmePersistence — Sandboxes automatically save their filesystem state when stopped and restore it when resumed. No manual snapshot managemCLI Reference — Based on the Docker CLI, you can use the Sandbox CLI to manage your Vercel Sandbox from the command line.PrerequisitesSandbox — Vercel Sandbox allows you to run arbitrary code in isolated, ephemeral Linux VMs.This page links to (2)Authentication — Learn how to authenticate with Vercel Sandbox using OIDC tokens or access tokens.JS SDK Reference — A comprehensive reference for the Vercel Sandbox JavaScript SDK, which lets you run code in a secure, isolated environmePages that link here (6)By (6)Sandbox — Vercel Sandbox allows you to run arbitrary code in isolated, ephemeral Linux VMs.CLI Reference — Based on the Docker CLI, you can use the Sandbox CLI to manage your Vercel Sandbox from the command line.Concepts — Learn how Vercel Sandboxes provide on-demand, isolated compute environments for running untrusted code, testing applicatTags — Categorize sandboxes by environment, team, or any other criteria using key-value tags.Quickstart — Learn how to run your first code in a Vercel Sandbox.JS SDK Reference — A comprehensive reference for the Vercel Sandbox JavaScript SDK, which lets you run code in a secure, isolated environme\n\nExample:\n```text\nuv add vercel\n```\n\nExample:\n```text\nprint(sandbox.sandbox_id)\n```\n\nExample:\n```text\nfrom vercel.sandbox import SandboxStatus\n \nif sandbox.status == SandboxStatus.RUNNING:\n print(\"Sandbox is ready\")\n \nprint(sandbox.status)\n```\n\nExample:\n```text\nprint(sandbox.source_snapshot_id)\n```\n\nExample:\n```text\nprint(sandbox.timeout)\n```\n\nExample:\n```text\nprint(sandbox.network_policy)\n```\n\nExample:\n```text\nprint(sandbox.interactive_port)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox\n \n \nasync def main() -> None:\n async with await AsyncSandbox.create(\n source={\"type\": \"snapshot\", \"snapshot_id\": \"snp_123\"},\n timeout=120_000,\n ) as sandbox:\n print(sandbox.source_snapshot_id)\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Sandbox\n \nwith Sandbox.create(\n source={\"type\": \"snapshot\", \"snapshot_id\": \"snp_123\"},\n timeout=120_000,\n) as sandbox:\n print(sandbox.source_snapshot_id)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox\n \n \nasync def main() -> None:\n async with await AsyncSandbox.create(\n source={\n \"type\": \"git\",\n \"url\": \"https://github.com/vercel/examples.git\",\n \"revision\": \"main\",\n \"depth\": 1,\n },\n runtime=\"python3.13\",\n ) as sandbox:\n result = await sandbox.run_command(\"python3\", [\"--version\"])\n print(await result.stdout())\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Sandbox\n \nwith Sandbox.create(\n source={\n \"type\": \"git\",\n \"url\": \"https://github.com/vercel/examples.git\",\n \"revision\": \"main\",\n \"depth\": 1,\n },\n runtime=\"python3.13\",\n) as sandbox:\n result = sandbox.run_command(\"python3\", [\"--version\"])\n print(result.stdout())\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox\n \n \nasync def main() -> None:\n sandbox = await AsyncSandbox.get(sandbox_id=\"sbx_123\")\n print(sandbox.status)\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Sandbox\n \nsandbox = Sandbox.get(sandbox_id=\"sbx_123\")\nprint(sandbox.status)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox\n \n \nasync def main() -> None:\n page = await AsyncSandbox.list(limit=10)\n \n async for sandbox in page:\n print(sandbox.sandbox_id)\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Sandbox\n \npage = Sandbox.list(limit=10)\n \nfor sandbox in page:\n print(sandbox.sandbox_id)\n```\n\nExample:\n```text\nawait sandbox.refresh()\n```\n\nExample:\n```text\nsandbox.refresh()\n```\n\nExample:\n```text\nfrom vercel.sandbox import SandboxStatus\n \nawait sandbox.wait_for_status(SandboxStatus.RUNNING, timeout=30.0)\n```\n\nExample:\n```text\nfrom vercel.sandbox import SandboxStatus\n \nsandbox.wait_for_status(SandboxStatus.RUNNING, timeout=30.0)\n```\n\nExample:\n```text\nprint(sandbox.domain(3000))\n```\n\nExample:\n```text\ncommand = await sandbox.get_command(\"cmd_123\")\nprint(command.cmd_id)\n```\n\nExample:\n```text\ncommand = sandbox.get_command(\"cmd_123\")\nprint(command.cmd_id)\n```\n\nExample:\n```text\nresult = await sandbox.run_command(\n \"python3\",\n [\"--version\"],\n env={\"PYTHONUNBUFFERED\": \"1\"},\n)\nprint(result.exit_code)\nprint(await result.stdout())\n```\n\nExample:\n```text\nresult = sandbox.run_command(\n \"python3\",\n [\"--version\"],\n env={\"PYTHONUNBUFFERED\": \"1\"},\n)\nprint(result.exit_code)\nprint(result.stdout())\n```\n\nExample:\n```text\ncommand = await sandbox.run_command_detached(\n \"bash\",\n [\"-lc\", \"for i in 1 2 3; do echo $i; sleep 1; done\"],\n)\nprint(command.cmd_id)\n```\n\nExample:\n```text\ncommand = sandbox.run_command_detached(\n \"bash\",\n [\"-lc\", \"for i in 1 2 3; do echo $i; sleep 1; done\"],\n)\nprint(command.cmd_id)\n```\n\nExample:\n```text\nawait sandbox.mk_dir(\"assets\")\n```\n\nExample:\n```text\nsandbox.mk_dir(\"assets\")\n```\n\nExample:\n```text\nstream = await sandbox.iter_file(\"package.json\")\n \nasync for chunk in stream:\n print(chunk)\n```\n\nExample:\n```text\nfor chunk in sandbox.iter_file(\"package.json\"):\n print(chunk)\n```\n\nExample:\n```text\ncontents = await sandbox.read_file(\"package.json\")\nprint(contents)\n```\n\nExample:\n```text\ncontents = sandbox.read_file(\"package.json\")\nprint(contents)\n```\n\nExample:\n```text\nawait sandbox.download_file(\n \"dist/app.tar.gz\",\n \"./artifacts/app.tar.gz\",\n create_parents=True,\n)\n```\n\nExample:\n```text\nsandbox.download_file(\n \"dist/app.tar.gz\",\n \"./artifacts/app.tar.gz\",\n create_parents=True,\n)\n```\n\nExample:\n```text\nawait sandbox.write_files(\n [{\"path\": \"config.json\", \"content\": b'{\"env\": \"prod\"}'}]\n)\n```\n\nExample:\n```text\nsandbox.write_files(\n [{\"path\": \"config.json\", \"content\": b'{\"env\": \"prod\"}'}]\n)\n```\n\nExample:\n```text\nawait sandbox.update_network_policy(\"deny-all\")\n```\n\nExample:\n```text\nsandbox.update_network_policy(\"deny-all\")\n```\n\nExample:\n```text\nawait sandbox.extend_timeout(60_000)\n```\n\nExample:\n```text\nsandbox.extend_timeout(60_000)\n```\n\nExample:\n```text\nawait sandbox.stop(blocking=True)\n```\n\nExample:\n```text\nsandbox.stop(blocking=True)\n```\n\nExample:\n```text\nsnapshot = await sandbox.snapshot()\nprint(snapshot.snapshot_id)\n```\n\nExample:\n```text\nsnapshot = sandbox.snapshot()\nprint(snapshot.snapshot_id)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox\n \n \nasync def main() -> None:\n sandbox = await AsyncSandbox.create(interactive=True, timeout=300_000)\n try:\n await sandbox.shell([\"/bin/bash\"])\n finally:\n await sandbox.stop()\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nprint(command.cmd_id)\n```\n\nExample:\n```text\nprint(command.cwd)\n```\n\nExample:\n```text\nprint(command.started_at)\n```\n\nExample:\n```text\nasync for line in command.logs():\n print(line.stream, line.data, end=\"\")\n```\n\nExample:\n```text\nfor line in command.logs():\n print(line.stream, line.data, end=\"\")\n```\n\nExample:\n```text\nfinished = await command.wait()\nprint(finished.exit_code)\n```\n\nExample:\n```text\nfinished = command.wait()\nprint(finished.exit_code)\n```\n\nExample:\n```text\nprint(await command.output(stream=\"both\"))\n```\n\nExample:\n```text\nprint(command.output(stream=\"both\"))\n```\n\nExample:\n```text\nprint(await command.stdout())\n```\n\nExample:\n```text\nprint(command.stdout())\n```\n\nExample:\n```text\nprint(await command.stderr())\n```\n\nExample:\n```text\nprint(command.stderr())\n```\n\nExample:\n```text\nawait command.kill(signal=15)\n```\n\nExample:\n```text\ncommand.kill(signal=15)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox\n \n \nasync def main() -> None:\n async with await AsyncSandbox.create(timeout=60_000) as sandbox:\n command = await sandbox.run_command_detached(\n \"bash\",\n [\"-lc\", \"for i in 1 2 3; do echo $i; sleep 1; done\"],\n )\n \n async for line in command.logs():\n print(line.stream, line.data, end=\"\")\n \n finished = await command.wait()\n print(finished.exit_code)\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Sandbox\n \nwith Sandbox.create(timeout=60_000) as sandbox:\n command = sandbox.run_command_detached(\n \"bash\",\n [\"-lc\", \"for i in 1 2 3; do echo $i; sleep 1; done\"],\n )\n \n for line in command.logs():\n print(line.stream, line.data, end=\"\")\n \n finished = command.wait()\n print(finished.exit_code)\n```\n\nExample:\n```text\nif result.exit_code == 0:\n print(\"Command succeeded\")\n```\n\nExample:\n```text\nprint(snapshot.snapshot_id)\n```\n\nExample:\n```text\nprint(snapshot.source_sandbox_id)\n```\n\nExample:\n```text\nprint(snapshot.status)\n```\n\nExample:\n```text\nprint(snapshot.size_bytes)\n```\n\nExample:\n```text\nprint(snapshot.created_at)\n```\n\nExample:\n```text\nprint(snapshot.expires_at)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSnapshot\n \n \nasync def main() -> None:\n snapshot = await AsyncSnapshot.get(snapshot_id=\"snp_123\")\n print(snapshot.status)\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Snapshot\n \nsnapshot = Snapshot.get(snapshot_id=\"snp_123\")\nprint(snapshot.status)\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSnapshot\n \n \nasync def main() -> None:\n page = await AsyncSnapshot.list(limit=10)\n \n async for snapshot in page:\n print(snapshot.snapshot_id)\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import Snapshot\n \npage = Snapshot.list(limit=10)\n \nfor snapshot in page:\n print(snapshot.snapshot_id)\n```\n\nExample:\n```text\nawait snapshot.delete()\n```\n\nExample:\n```text\nsnapshot.delete()\n```\n\nExample:\n```text\nimport asyncio\n \nfrom vercel.sandbox import AsyncSandbox, MIN_SNAPSHOT_EXPIRATION_MS\n \n \nasync def main() -> None:\n async with await AsyncSandbox.create(timeout=120_000) as sandbox:\n await sandbox.write_files(\n [{\"path\": \"config.json\", \"content\": b'{\"env\": \"prod\"}'}]\n )\n snapshot = await sandbox.snapshot(\n expiration=MIN_SNAPSHOT_EXPIRATION_MS\n )\n \n async with await AsyncSandbox.create(\n source={\"type\": \"snapshot\", \"snapshot_id\": snapshot.snapshot_id},\n timeout=120_000,\n ) as restored:\n print(await restored.read_file(\"config.json\"))\n \n \nasyncio.run(main())\n```\n\nExample:\n```text\nfrom vercel.sandbox import MIN_SNAPSHOT_EXPIRATION_MS, Sandbox\n \nwith Sandbox.create(timeout=120_000) as sandbox:\n sandbox.write_files(\n [{\"path\": \"config.json\", \"content\": b'{\"env\": \"prod\"}'}]\n )\n snapshot = sandbox.snapshot(expiration=MIN_SNAPSHOT_EXPIRATION_MS)\n \nwith Sandbox.create(\n source={\"type\": \"snapshot\", \"snapshot_id\": snapshot.snapshot_id},\n timeout=120_000,\n) as restored:\n print(restored.read_file(\"config.json\"))\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:50.980Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":77,"totalLines":633,"estimatedTokens":2920}}526{"id":"doc-test_run_lifecycle_guide_vitest-af7aec3e","source":"documentation","title":"Test Run Lifecycle | Guide | Vitest","url":"https://vitest.dev/guide/lifecycle","text":"Example:\n```text\nexport function setup(project) {\n // Runs once before all tests\n console.log('Global setup')\n\n // Share data with tests\n project.provide('apiUrl', 'http://localhost:3000')\n}\n\nexport function teardown() {\n // Runs once after all tests\n console.log('Global teardown')\n}\n```\n\nExample:\n```text\nimport { afterEach } from 'vitest'\n\n// Runs before each test file\nconsole.log('Setup file executing')\n\n// Register hooks that apply to all tests\nafterEach(() => {\n cleanup()\n})\n```\n\nExample:\n```text\n// This runs immediately (collection phase)\nconsole.log('File loaded')\n\ndescribe('User API', () => {\n // This runs immediately (collection phase)\n console.log('Suite defined')\n\n aroundAll(async (runSuite) => {\n // Wraps around all tests in this suite\n console.log('aroundAll before')\n await runSuite()\n console.log('aroundAll after')\n })\n\n beforeAll(() => {\n // Runs once before all tests in this suite\n console.log('beforeAll')\n })\n\n aroundEach(async (runTest) => {\n // Wraps around each test\n console.log('aroundEach before')\n await runTest()\n console.log('aroundEach after')\n })\n\n beforeEach(() => {\n // Runs before each test\n console.log('beforeEach')\n })\n\n test('creates user', () => {\n // Test executes\n console.log('test 1')\n })\n\n test('updates user', () => {\n // Test executes\n console.log('test 2')\n })\n\n afterEach(() => {\n // Runs after each test\n console.log('afterEach')\n })\n\n afterAll(() => {\n // Runs once after all tests in this suite\n console.log('afterAll')\n })\n})\n\n// Output:\n// File loaded\n// Suite defined\n// aroundAll before\n// beforeAll\n// aroundEach before\n// beforeEach\n// test 1\n// afterEach\n// aroundEach after\n// aroundEach before\n// beforeEach\n// test 2\n// afterEach\n// aroundEach after\n// afterAll\n// aroundAll after\n```\n\nExample:\n```text\ndescribe('outer', () => {\n aroundAll(async (runSuite) => {\n console.log('outer aroundAll before')\n await runSuite()\n console.log('outer aroundAll after')\n })\n\n beforeAll(() => console.log('outer beforeAll'))\n\n aroundEach(async (runTest) => {\n console.log('outer aroundEach before')\n await runTest()\n console.log('outer aroundEach after')\n })\n\n beforeEach(() => console.log('outer beforeEach'))\n\n test('outer test', () => console.log('outer test'))\n\n describe('inner', () => {\n aroundAll(async (runSuite) => {\n console.log('inner aroundAll before')\n await runSuite()\n console.log('inner aroundAll after')\n })\n\n beforeAll(() => console.log('inner beforeAll'))\n\n aroundEach(async (runTest) => {\n console.log('inner aroundEach before')\n await runTest()\n console.log('inner aroundEach after')\n })\n\n beforeEach(() => console.log('inner beforeEach'))\n\n test('inner test', () => console.log('inner test'))\n\n afterEach(() => console.log('inner afterEach'))\n afterAll(() => console.log('inner afterAll'))\n })\n\n afterEach(() => console.log('outer afterEach'))\n afterAll(() => console.log('outer afterAll'))\n})\n\n// Output:\n// outer aroundAll before\n// outer beforeAll\n// outer aroundEach before\n// outer beforeEach\n// outer test\n// outer afterEach\n// outer aroundEach after\n// inner aroundAll before\n// inner beforeAll\n// outer aroundEach before\n// inner aroundEach before\n// outer beforeEach\n// inner beforeEach\n// inner test\n// inner afterEach\n// outer afterEach\n// inner aroundEach after\n// outer aroundEach after\n// inner afterAll\n// inner aroundAll after\n// outer afterAll\n// outer aroundAll after\n```\n\nExample:\n```text\nexport function teardown() {\n // Clean up global resources\n console.log('Global teardown complete')\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.924Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":184,"estimatedTokens":956}}527{"id":"doc-parallelism_guide_vitest-31b179d1","source":"documentation","title":"Parallelism | Guide | Vitest","url":"https://vitest.dev/guide/parallelism","text":"Example:\n```text\nimport { expect, test } from 'vitest'\n\ntest.concurrent('fetches user profile', async () => {\n const user = await fetchUser(1)\n expect(user.name).toBe('Alice')\n})\n\ntest.concurrent('fetches user posts', async () => {\n const posts = await fetchPosts(1)\n expect(posts).toHaveLength(3)\n})\n```\n\nExample:\n```text\n// These run one after another despite `concurrent`,\n// because there is nothing to await\ntest.concurrent('the first test', () => {\n expect(1).toBe(1)\n})\n\ntest.concurrent('the second test', () => {\n expect(2).toBe(2)\n})\n```\n\nExample:\n```text\nimport { describe, expect, test } from 'vitest'\n\ndescribe.concurrent('user API', () => {\n test('fetches profile', async () => {\n const user = await fetchUser(1)\n expect(user.name).toBe('Alice')\n })\n\n test('fetches posts', async () => {\n const posts = await fetchPosts(1)\n expect(posts).toHaveLength(3)\n })\n})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.925Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":46,"estimatedTokens":229}}528{"id":"doc-tailwindcss_svelte_cli_docs-dcf8a847","source":"documentation","title":"tailwindcss • Svelte CLI Docs","url":"https://svelte.dev/docs/cli/tailwind","text":"Example:\n```text\nnpx sv add tailwindcss\n```\n\nExample:\n```text\nnpx sv add tailwindcss=\"plugins:typography\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.149Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":2,"totalLines":11,"estimatedTokens":31}}529{"id":"doc-svelte_action_svelte_docs-056f22a4","source":"documentation","title":"svelte/action • Svelte Docs","url":"https://svelte.dev/docs/svelte/svelte-action","text":"Example:\n```text\nexport const const myAction: Action<HTMLDivElement, {\n someProperty: boolean;\n} | undefined>myAction: type Action = /*unresolved*/ anyAction<HTMLDivElement, { someProperty: booleansomeProperty: boolean } | undefined> = (node: anynode, param: {\n someProperty: boolean;\n}param = { someProperty: booleansomeProperty: true }) => {\n\t// ...\n}const myAction: Action<HTMLDivElement, {\n someProperty: boolean;\n} | undefined>const myAction: Action<HTMLDivElement, {\n someProperty: boolean;\n} | undefined>type Action = /*unresolved*/ anysomeProperty: booleannode: anyparam: {\n someProperty: boolean;\n}param: {\n someProperty: boolean;\n}someProperty: boolean\n```\n\nExample:\n```text\nconst myAction: Action<HTMLDivElement, {\n someProperty: boolean;\n} | undefined>\n```\n\nExample:\n```text\nparam: {\n someProperty: boolean;\n}\n```\n\nExample:\n```text\ninterface Action<\n\tElement = HTMLElement,\n\tParameter = undefined,\n\tAttributes extends Record<string, any> = Record<\n\t\tnever,\n\t\tany\n\t>\n> {…}\n```\n\nExample:\n```text\n<Node extends Element>(\n\t...args: undefined extends Parameter\n\t\t? [node: Node, parameter?: Parameter]\n\t\t: [node: Node, parameter: Parameter]\n): void | ActionReturn<Parameter, Attributes>;\n```\n\nExample:\n```text\ninterface Attributes {\n\tAttributes.newprop?: string | undefinednewprop?: string;\n\t'on:event': (e: CustomEvent<boolean>e: interface CustomEvent<T = any>The CustomEvent interface can be used to attach custom data to an event generated by an application.\nMDN Reference\nCustomEvent<boolean>) => void;\n}\n\nexport function function myAction(node: HTMLElement, parameter: Parameter): ActionReturn<Parameter, Attributes>myAction(node: HTMLElementnode: HTMLElement, parameter: Parameterparameter: type Parameter = /*unresolved*/ anyParameter): type ActionReturn = /*unresolved*/ anyActionReturn<type Parameter = /*unresolved*/ anyParameter, Attributes> {\n\t// ...\n\treturn {\n\t\tupdate: (updatedParameter: any) => voidupdate: (updatedParameter: anyupdatedParameter) => {...},\n\t\tdestroy: () => {...}\n\t};\n}Attributes.newprop?: string | undefinede: CustomEvent<boolean>interface CustomEvent<T = any>CustomEventfunction myAction(node: HTMLElement, parameter: Parameter): ActionReturn<Parameter, Attributes>node: HTMLElementparameter: Parametertype Parameter = /*unresolved*/ anytype ActionReturn = /*unresolved*/ anytype Parameter = /*unresolved*/ anyupdate: (updatedParameter: any) => voidupdatedParameter: any\n```\n\nExample:\n```text\ninterface ActionReturn<\n\tParameter = undefined,\n\tAttributes extends Record<string, any> = Record<\n\t\tnever,\n\t\tany\n\t>\n> {…}\n```\n\nExample:\n```text\nupdate?: (parameter: Parameter) => void;\n```\n\nExample:\n```text\ndestroy?: () => void;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.152Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":94,"estimatedTokens":676}}530{"id":"doc-svelte_4_migration_guide_svelte_docs-663b6689","source":"documentation","title":"Svelte 4 migration guide • Svelte Docs","url":"https://svelte.dev/docs/svelte/v4-migration-guide","text":"Example:\n```text\nimport { function createEventDispatcher<EventMap extends Record<string, any> = any>(): EventDispatcher<EventMap>Creates an event dispatcher that can be used to dispatch component events.\nEvent dispatchers are functions that can take two arguments: name and detail.\nComponent events created with createEventDispatcher create a\nCustomEvent.\nThese events do not bubble.\nThe detail argument corresponds to the CustomEvent.detail\nproperty and can contain any type of data.\nThe event dispatcher can be typed to narrow the allowed event names and the type of the detail argument:\nconst const dispatch: anydispatch = createEventDispatcher<{\n loaded: nullloaded: null; // does not take a detail argument\n change: stringchange: string; // takes a detail argument of type string, which is required\n optional: number | nulloptional: number | null; // takes an optional detail argument of type number\n}>();@deprecatedUse callback props and/or the $host() rune instead — see migration guidereferencecreateEventDispatcher } from 'svelte';\n\nconst const dispatch: EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>dispatch = createEventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>(): EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>Creates an event dispatcher that can be used to dispatch component events.\nEvent dispatchers are functions that can take two arguments: name and detail.\nComponent events created with createEventDispatcher create a\nCustomEvent.\nThese events do not bubble.\nThe detail argument corresponds to the CustomEvent.detail\nproperty and can contain any type of data.\nThe event dispatcher can be typed to narrow the allowed event names and the type of the detail argument:\nconst const dispatch: anydispatch = createEventDispatcher<{\n loaded: nullloaded: null; // does not take a detail argument\n change: stringchange: string; // takes a detail argument of type string, which is required\n optional: number | nulloptional: number | null; // takes an optional detail argument of type number\n}>();@deprecatedUse callback props and/or the $host() rune instead — see migration guidereferencecreateEventDispatcher<{\n\toptional: number | nulloptional: number | null;\n\trequired: stringrequired: string;\n\tnoArgument: nullnoArgument: null;\n}>();\n\n// Svelte version 3:\nconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => booleandispatch('optional');\nconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => booleandispatch('required'); // I can still omit the detail argument\nconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => booleandispatch('noArgument', 'surprise'); // I can still add a detail argument\n\n// Svelte version 4 using TypeScript strict mode:\nconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => booleandispatch('optional');\nconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => booleandispatch('required'); // error, missing argument\nconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => booleandispatch('noArgument', 'surprise'); // error, cannot pass an argumentfunction createEventDispatcher<EventMap extends Record<string, any> = any>(): EventDispatcher<EventMap>namedetailcreateEventDispatcherdetaildetailconst const dispatch: anydispatch = createEventDispatcher<{\n loaded: nullloaded: null; // does not take a detail argument\n change: stringchange: string; // takes a detail argument of type string, which is required\n optional: number | nulloptional: number | null; // takes an optional detail argument of type number\n}>();const dispatch: anyloaded: nullchange: stringoptional: number | null$host()const dispatch: EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>const dispatch: EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>createEventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>(): EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>createEventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>(): EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>namedetailcreateEventDispatcherdetaildetailconst const dispatch: anydispatch = createEventDispatcher<{\n loaded: nullloaded: null; // does not take a detail argument\n change: stringchange: string; // takes a detail argument of type string, which is required\n optional: number | nulloptional: number | null; // takes an optional detail argument of type number\n}>();const dispatch: anyloaded: nullchange: stringoptional: number | null$host()optional: number | nullrequired: stringnoArgument: nullconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => booleanconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => boolean\n```\n\nExample:\n```text\nconst const dispatch: anydispatch = createEventDispatcher<{\n loaded: nullloaded: null; // does not take a detail argument\n change: stringchange: string; // takes a detail argument of type string, which is required\n optional: number | nulloptional: number | null; // takes an optional detail argument of type number\n}>();const dispatch: anyloaded: nullchange: stringoptional: number | null\n```\n\nExample:\n```text\nconst dispatch: EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>\n```\n\nExample:\n```text\ncreateEventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>(): EventDispatcher<{\n optional: number | null;\n required: string;\n noArgument: null;\n}>\n```\n\nExample:\n```text\nconst dispatch: EventDispatcher\n<\"optional\">(type: \"optional\", parameter?: number | null | undefined, options?: DispatchOptions | undefined) => boolean\n```\n\nExample:\n```text\nconst dispatch: EventDispatcher\n<\"required\">(type: \"required\", parameter: string, options?: DispatchOptions | undefined) => boolean\n```\n\nExample:\n```text\nconst dispatch: EventDispatcher\n<\"noArgument\">(type: \"noArgument\", parameter?: null | undefined, options?: DispatchOptions | undefined) => boolean\n```\n\nExample:\n```text\nconst action: Action = (node, params) => { ... } // this is now an error if you use params in any way\nconst const action: Action<HTMLElement, string>action: type Action = /*unresolved*/ anyAction<HTMLElement, string> = (node: anynode, params: anyparams) => { ... } // params is of type stringconst action: Action<HTMLElement, string>type Action = /*unresolved*/ anynode: anyparams: any\n```\n\nExample:\n```text\n// Example where this change reveals an actual bug\nonMount(\n\t// someCleanup() not called because function handed to onMount is async\n\tasync () => {\n\t\tconst something = await foo();\n \t// someCleanup() is called because function handed to onMount is sync\n\t() => {\n\t\tfoo().then(something: anysomething => {...});\n\t\t// ...\n\t\treturn () => someCleanup();\n\t}\n);something: any\n```\n\nExample:\n```text\n<svelte:options tag=\"my-component\" />\n<svelte:options customElement=\"my-component\" />\n```\n\nExample:\n```text\nimport { SvelteComponentTyped } from 'svelte';\nimport { class SvelteComponent<Props extends Record<string, any> = Record<string, any>, Events extends Record<string, any> = any, Slots extends Record<string, any> = any>This was the base class for Svelte components in Svelte 4. Svelte 5+ components\nare completely different under the hood. For typing, use Component instead.\nTo instantiate components, use mount instead.\nSee migration guide for more info.\nreferenceSvelteComponent } from 'svelte';\n\nexport class Foo extends SvelteComponentTyped<{ aProp: string }> {}\nexport class class FooFoo extends class SvelteComponent<Props extends Record<string, any> = Record<string, any>, Events extends Record<string, any> = any, Slots extends Record<string, any> = any>This was the base class for Svelte components in Svelte 4. Svelte 5+ components\nare completely different under the hood. For typing, use Component instead.\nTo instantiate components, use mount instead.\nSee migration guide for more info.\nreferenceSvelteComponent<{ aProp: stringaProp: string }> {}class SvelteComponent<Props extends Record<string, any> = Record<string, any>, Events extends Record<string, any> = any, Slots extends Record<string, any> = any>Componentmountclass Fooclass SvelteComponent<Props extends Record<string, any> = Record<string, any>, Events extends Record<string, any> = any, Slots extends Record<string, any> = any>ComponentmountaProp: string\n```\n\nExample:\n```text\n<script>\n\timport ComponentA from './ComponentA.svelte';\n\timport ComponentB from './ComponentB.svelte';\n\timport { SvelteComponent } from 'svelte';\n\n\tlet component: typeof SvelteComponent<any>;\n\n\tfunction choseRandomly() {\n\t\tcomponent = Math.random() > 0.5 ? ComponentA : ComponentB;\n\t}\n</script>\n\n<button on:click={choseRandomly}>random</button>\n<svelte:element this={component} />\n```\n\nExample:\n```text\n{#if show}\n\t...\n\t{#if success}\n\t\t<p in:slide>Success</p>\n\t{/each}\n{/if}\n```\n\nExample:\n```text\n<script>\n\timport Nested from './Nested.svelte';\n</script>\n\n<Nested let:count>\n\t<p>\n\t\tcount in default slot — is available: {count}\n\t</p>\n\t<p slot=\"bar\">\n\t\tcount in bar slot — is not available: {count}\n\t</p>\n</Nested>\n```\n\nExample:\n```text\nimport { function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed>The preprocess function provides convenient hooks for arbitrarily transforming component source code.\nFor example, it can be used to convert a <style lang=\"sass\"> block into vanilla CSS.\nreferencepreprocess } from 'svelte/compiler';\n\nconst { const code: stringThe new code\ncode } = await function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed>The preprocess function provides convenient hooks for arbitrarily transforming component source code.\nFor example, it can be used to convert a <style lang=\"sass\"> block into vanilla CSS.\nreferencepreprocess(\n\tsource,\n\t[\n\t\t{\n\t\t\tPreprocessorGroup.markup?: MarkupPreprocessor | undefinedmarkup: () => {\n\t\t\t\tvar console: ConsoleThe console module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.\nThe module exports two specific components:\n\nA Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.\nA global console instance configured to write to process.stdout and\nprocess.stderr. The global console can be used without importing the node:console module.\n\nWarning: The global console object’s methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the note on process I/O for\nmore information.\nExample using the global console:\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrExample using the Console class:\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err@seesourceconsole.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)Prints to stdout with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to printf(3)\n(the arguments are all passed to util.format()).\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoutSee util.format() for more information.\n@sincev0.1.100log('markup-1');\n\t\t\t},\n\t\t\tPreprocessorGroup.script?: Preprocessor | undefinedscript: () => {\n\t\t\t\tvar console: ConsoleThe console module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.\nThe module exports two specific components:\n\nA Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.\nA global console instance configured to write to process.stdout and\nprocess.stderr. The global console can be used without importing the node:console module.\n\nWarning: The global console object’s methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the note on process I/O for\nmore information.\nExample using the global console:\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrExample using the Console class:\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err@seesourceconsole.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)Prints to stdout with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to printf(3)\n(the arguments are all passed to util.format()).\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoutSee util.format() for more information.\n@sincev0.1.100log('script-1');\n\t\t\t},\n\t\t\tPreprocessorGroup.style?: Preprocessor | undefinedstyle: () => {\n\t\t\t\tvar console: ConsoleThe console module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.\nThe module exports two specific components:\n\nA Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.\nA global console instance configured to write to process.stdout and\nprocess.stderr. The global console can be used without importing the node:console module.\n\nWarning: The global console object’s methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the note on process I/O for\nmore information.\nExample using the global console:\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrExample using the Console class:\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err@seesourceconsole.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)Prints to stdout with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to printf(3)\n(the arguments are all passed to util.format()).\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoutSee util.format() for more information.\n@sincev0.1.100log('style-1');\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\tPreprocessorGroup.markup?: MarkupPreprocessor | undefinedmarkup: () => {\n\t\t\t\tvar console: ConsoleThe console module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.\nThe module exports two specific components:\n\nA Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.\nA global console instance configured to write to process.stdout and\nprocess.stderr. The global console can be used without importing the node:console module.\n\nWarning: The global console object’s methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the note on process I/O for\nmore information.\nExample using the global console:\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrExample using the Console class:\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err@seesourceconsole.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)Prints to stdout with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to printf(3)\n(the arguments are all passed to util.format()).\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoutSee util.format() for more information.\n@sincev0.1.100log('markup-2');\n\t\t\t},\n\t\t\tPreprocessorGroup.script?: Preprocessor | undefinedscript: () => {\n\t\t\t\tvar console: ConsoleThe console module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.\nThe module exports two specific components:\n\nA Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.\nA global console instance configured to write to process.stdout and\nprocess.stderr. The global console can be used without importing the node:console module.\n\nWarning: The global console object’s methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the note on process I/O for\nmore information.\nExample using the global console:\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrExample using the Console class:\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err@seesourceconsole.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)Prints to stdout with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to printf(3)\n(the arguments are all passed to util.format()).\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoutSee util.format() for more information.\n@sincev0.1.100log('script-2');\n\t\t\t},\n\t\t\tPreprocessorGroup.style?: Preprocessor | undefinedstyle: () => {\n\t\t\t\tvar console: ConsoleThe console module provides a simple debugging console that is similar to the\nJavaScript console mechanism provided by web browsers.\nThe module exports two specific components:\n\nA Console class with methods such as console.log(), console.error() and console.warn() that can be used to write to any Node.js stream.\nA global console instance configured to write to process.stdout and\nprocess.stderr. The global console can be used without importing the node:console module.\n\nWarning: The global console object’s methods are neither consistently\nsynchronous like the browser APIs they resemble, nor are they consistently\nasynchronous like all other Node.js streams. See the note on process I/O for\nmore information.\nExample using the global console:\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrExample using the Console class:\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err@seesourceconsole.Console.log(message?: any, ...optionalParams: any[]): void (+1 overload)Prints to stdout with newline. Multiple arguments can be passed, with the\nfirst used as the primary message and all additional used as substitution\nvalues similar to printf(3)\n(the arguments are all passed to util.format()).\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoutSee util.format() for more information.\n@sincev0.1.100log('style-2');\n\t\t\t}\n\t\t}\n\t],\n\t{\n\t\tfilename?: string | undefinedfilename: 'App.svelte'\n\t}\n);\n\n// Svelte 3 logs:\n// markup-1\n// markup-2\n// script-1\n// script-2\n// style-1\n// style-2\n\n// Svelte 4 logs:\n// markup-1\n// script-1\n// style-1\n// markup-2\n// script-2\n// style-2function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed>function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed><style lang=\"sass\">const code: stringfunction preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed>function preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed><style lang=\"sass\">PreprocessorGroup.markup?: MarkupPreprocessor | undefinedvar console: ConsoleconsoleConsoleconsole.log()console.error()console.warn()consoleprocess.stdoutprocess.stderrconsolenode:consolenote on process I/Oconsoleconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrConsoleconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to errConsole.log(message?: any, ...optionalParams: any[]): void (+1 overload)stdoutprintf(3)util.format()const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoututil.format()PreprocessorGroup.script?: Preprocessor | undefinedvar console: ConsoleconsoleConsoleconsole.log()console.error()console.warn()consoleprocess.stdoutprocess.stderrconsolenode:consolenote on process I/Oconsoleconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrConsoleconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to errConsole.log(message?: any, ...optionalParams: any[]): void (+1 overload)stdoutprintf(3)util.format()const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoututil.format()PreprocessorGroup.style?: Preprocessor | undefinedvar console: ConsoleconsoleConsoleconsole.log()console.error()console.warn()consoleprocess.stdoutprocess.stderrconsolenode:consolenote on process I/Oconsoleconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrConsoleconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to errConsole.log(message?: any, ...optionalParams: any[]): void (+1 overload)stdoutprintf(3)util.format()const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoututil.format()PreprocessorGroup.markup?: MarkupPreprocessor | undefinedvar console: ConsoleconsoleConsoleconsole.log()console.error()console.warn()consoleprocess.stdoutprocess.stderrconsolenode:consolenote on process I/Oconsoleconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrConsoleconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to errConsole.log(message?: any, ...optionalParams: any[]): void (+1 overload)stdoutprintf(3)util.format()const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoututil.format()PreprocessorGroup.script?: Preprocessor | undefinedvar console: ConsoleconsoleConsoleconsole.log()console.error()console.warn()consoleprocess.stdoutprocess.stderrconsolenode:consolenote on process I/Oconsoleconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrConsoleconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to errConsole.log(message?: any, ...optionalParams: any[]): void (+1 overload)stdoutprintf(3)util.format()const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoututil.format()PreprocessorGroup.style?: Preprocessor | undefinedvar console: ConsoleconsoleConsoleconsole.log()console.error()console.warn()consoleprocess.stdoutprocess.stderrconsolenode:consolenote on process I/Oconsoleconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderrConsoleconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to errConsole.log(message?: any, ...optionalParams: any[]): void (+1 overload)stdoutprintf(3)util.format()const count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdoututil.format()filename?: string | undefined\n```\n\nExample:\n```text\nfunction preprocess(source: string, preprocessor: PreprocessorGroup | PreprocessorGroup[], options?: {\n filename?: string;\n} | undefined): Promise<Processed>\n```\n\nExample:\n```text\nconsole.log('hello world');\n// Prints: hello world, to stdout\nconsole.log('hello %s', 'world');\n// Prints: hello world, to stdout\nconsole.error(new Error('Whoops, something bad happened'));\n// Prints error message and stack trace to stderr:\n// Error: Whoops, something bad happened\n// at [eval]:5:15\n// at Script.runInThisContext (node:vm:132:18)\n// at Object.runInThisContext (node:vm:309:38)\n// at node:internal/process/execution:77:19\n// at [eval]-wrapper:6:22\n// at evalScript (node:internal/process/execution:76:60)\n// at node:internal/main/eval_string:23:3\n\nconst name = 'Will Robinson';\nconsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to stderr\n```\n\nExample:\n```text\nconst out = getStreamSomehow();\nconst err = getStreamSomehow();\nconst myConsole = new console.Console(out, err);\n\nmyConsole.log('hello world');\n// Prints: hello world, to out\nmyConsole.log('hello %s', 'world');\n// Prints: hello world, to out\nmyConsole.error(new Error('Whoops, something bad happened'));\n// Prints: [Error: Whoops, something bad happened], to err\n\nconst name = 'Will Robinson';\nmyConsole.warn(`Danger ${name}! Danger!`);\n// Prints: Danger Will Robinson! Danger!, to err\n```\n\nExample:\n```text\nconst count = 5;\nconsole.log('count: %d', count);\n// Prints: count: 5, to stdout\nconsole.log('count:', count);\n// Prints: count: 5, to stdout\n```\n\nExample:\n```text\npreprocess: [\n\tvitePreprocess(),\n\tmdsvex(mdsvexConfig)\n\tmdsvex(mdsvexConfig),\n\tvitePreprocess()\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.170Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":20,"totalLines":903,"estimatedTokens":10154}}531{"id":"doc-https_svelte_dev_docs_kit_app_env_llms_txt-a13c7e01","source":"documentation","title":"https://svelte.dev/docs/kit/$app-env/llms.txt","url":"https://svelte.dev/docs/kit/$app-env/llms.txt","text":"```dts const ```\n\n```dts const ```\n\n```dts const ```\n\n```dts const ```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.222Z","totalSectionsIncluded":4,"totalCodeBlocksIncluded":0,"totalLines":9,"estimatedTokens":21}}532{"id":"doc-service_workers_sveltekit_docs-b80ddc5b","source":"documentation","title":"Service workers • SvelteKit Docs","url":"https://svelte.dev/docs/kit/service-workers","text":"Example:\n```text\n// Disables access to DOM typings like `HTMLElement` which are not available\n// inside a service worker and instantiates the correct globals\n/// <reference no-default-lib=\"true\"/>\n/// <reference lib=\"esnext\" />\n/// <reference lib=\"webworker\" />\n\n// Ensures that the `$service-worker` import has proper type definitions\n/// <reference types=\"@sveltejs/kit\" />\n\n// Only necessary if you have an import from `$env/static/public`\n/// <reference types=\"../.svelte-kit/ambient.d.ts\" />\n\nimport { const build: string[]An array of URL strings representing the files generated by Vite, suitable for caching with cache.addAll(build).\nDuring development, this is an empty array.\nreferencebuild, const files: string[]An array of URL strings representing the files in your static directory, or whatever directory is specified by config.kit.files.assets. You can customize which files are included from static directory using config.kit.serviceWorker.files\nreferencefiles, const version: stringSee config.kit.version. It’s useful for generating unique cache names inside your service worker, so that a later deployment of your app can invalidate old caches.\nreferenceversion } from '$service-worker';\n\n// This gives `self` the correct types\nconst const self: ServiceWorkerGlobalScopeself = /** @type {ServiceWorkerGlobalScope} */ (/** @type {unknown} */ (module globalThisglobalThis.var self: Window & typeof globalThisThe Window.self read-only property returns the window itself, as a WindowProxy. It can be used with dot notation on a window object (that is, window.self) or standalone (self). The advantage of the standalone notation is that a similar notation exists for non-window contexts, such as in Web Workers. By using self, you can refer to the global scope in a way that will work not only in a window context (self will resolve to window.self) but also in a worker context (self will then resolve to WorkerGlobalScope.self).\nMDN Reference\nThe self read-only property of the WorkerGlobalScope interface returns a reference to the WorkerGlobalScope itself. Most of the time it is a specific scope like DedicatedWorkerGlobalScope, SharedWorkerGlobalScope, or ServiceWorkerGlobalScope.\nMDN Reference\nself));\n\n// Create a unique cache name for this deployment\nconst const CACHE: stringCACHE = `cache-${const version: stringSee config.kit.version. It’s useful for generating unique cache names inside your service worker, so that a later deployment of your app can invalidate old caches.\nreferenceversion}`;\n\nconst const ASSETS: string[]ASSETS = [\n\t...const build: string[]An array of URL strings representing the files generated by Vite, suitable for caching with cache.addAll(build).\nDuring development, this is an empty array.\nreferencebuild, // the app itself\n\t...const files: string[]An array of URL strings representing the files in your static directory, or whatever directory is specified by config.kit.files.assets. You can customize which files are included from static directory using config.kit.serviceWorker.files\nreferencefiles // everything in `static`\n];\n\nconst self: ServiceWorkerGlobalScopeself.ServiceWorkerGlobalScope.addEventListener<\"install\">(type: \"install\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\nMDN Reference\naddEventListener('install', (event: ExtendableEventevent) => {\n\t// Create a new cache and add all files to it\n\tasync function function (local function) addFilesToCache(): Promise<void>addFilesToCache() {\n\t\tconst const cache: Cachecache = await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)The open() method of the CacheStorage interface returns a Promise that resolves to the Cache object matching the cacheName.\nMDN Reference\nopen(const CACHE: stringCACHE);\n\t\tawait const cache: Cachecache.Cache.addAll(requests: Iterable<RequestInfo>): Promise<void> (+3 overloads)The addAll() method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache. The request objects created during retrieval become keys to the stored response operations.\nMDN Reference\naddAll(const ASSETS: string[]ASSETS);\n\t}\n\n\tevent: ExtendableEventevent.ExtendableEvent.waitUntil(f: Promise<any>): voidThe ExtendableEvent.waitUntil() method tells the event dispatcher that work is ongoing. It can also be used to detect whether that work was successful. In service workers, waitUntil() tells the browser that work is ongoing until the promise settles, and it shouldn’t terminate the service worker if it wants that work to complete.\nMDN Reference\nwaitUntil(function (local function) addFilesToCache(): Promise<void>addFilesToCache());\n});\n\nconst self: ServiceWorkerGlobalScopeself.ServiceWorkerGlobalScope.addEventListener<\"activate\">(type: \"activate\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\nMDN Reference\naddEventListener('activate', (event: ExtendableEventevent) => {\n\t// Remove previous cached data from disk\n\tasync function function (local function) deleteOldCaches(): Promise<void>deleteOldCaches() {\n\t\tfor (const const key: stringkey of await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.keys(): Promise<string[]> (+1 overload)The keys() method of the CacheStorage interface returns a Promise that will resolve with an array containing strings corresponding to all of the named Cache objects tracked by the CacheStorage object in the order they were created. Use this method to iterate over a list of all Cache objects.\nMDN Reference\nkeys()) {\n\t\t\tif (const key: stringkey !== const CACHE: stringCACHE) await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.delete(cacheName: string): Promise<boolean> (+1 overload)The delete() method of the CacheStorage interface finds the Cache object matching the cacheName, and if found, deletes the Cache object and returns a Promise that resolves to true. If no Cache object is found, it resolves to false.\nMDN Reference\ndelete(const key: stringkey);\n\t\t}\n\t}\n\n\tevent: ExtendableEventevent.ExtendableEvent.waitUntil(f: Promise<any>): voidThe ExtendableEvent.waitUntil() method tells the event dispatcher that work is ongoing. It can also be used to detect whether that work was successful. In service workers, waitUntil() tells the browser that work is ongoing until the promise settles, and it shouldn’t terminate the service worker if it wants that work to complete.\nMDN Reference\nwaitUntil(function (local function) deleteOldCaches(): Promise<void>deleteOldCaches());\n});\n\nconst self: ServiceWorkerGlobalScopeself.ServiceWorkerGlobalScope.addEventListener<\"fetch\">(type: \"fetch\", listener: (this: ServiceWorkerGlobalScope, ev: FetchEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\nMDN Reference\naddEventListener('fetch', (event: FetchEventevent) => {\n\t// ignore POST requests etc\n\tif (event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest.Request.method: stringThe method read-only property of the Request interface contains the request’s method (GET, POST, etc.)\nMDN Reference\nmethod !== 'GET') return;\n\n\tasync function function (local function) respond(): Promise<Response>respond() {\n\t\tconst const url: URLurl = new var URL: new (url: string | URL, base?: string | URL) => URLThe URL interface is used to parse, construct, normalize, and encode URLs. It works by providing properties which allow you to easily read and modify the components of a URL.\nMDN Reference\nURL class is a global reference for import { URL } from 'url'\nhttps://nodejs.org/api/url.html#the-whatwg-url-api\n@sincev10.0.0URL(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest.Request.url: stringThe url read-only property of the Request interface contains the URL of the request.\nMDN Reference\nurl);\n\t\tconst const cache: Cachecache = await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)The open() method of the CacheStorage interface returns a Promise that resolves to the Cache object matching the cacheName.\nMDN Reference\nopen(const CACHE: stringCACHE);\n\n\t\t// `build`/`files` can always be served from the cache\n\t\tif (const ASSETS: string[]ASSETS.Array<string>.includes(searchElement: string, fromIndex?: number): booleanDetermines whether an array includes a certain element, returning true or false as appropriate.\n@paramsearchElement The element to search for.@paramfromIndex The position in this array at which to begin searching for searchElement.includes(const url: URLurl.URL.pathname: stringThe pathname property of the URL interface represents a location in a hierarchical structure. It is a string constructed from a list of path segments, each of which is prefixed by a / character.\nMDN Reference\npathname)) {\n\t\t\tconst const response: Response | undefinedresponse = await const cache: Cachecache.Cache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)The match() method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object. If no match is found, the Promise resolves to undefined.\nMDN Reference\nmatch(const url: URLurl.URL.pathname: stringThe pathname property of the URL interface represents a location in a hierarchical structure. It is a string constructed from a list of path segments, each of which is prefixed by a / character.\nMDN Reference\npathname);\n\n\t\t\tif (const response: Response | undefinedresponse) {\n\t\t\t\treturn const response: Responseresponse;\n\t\t\t}\n\t\t}\n\n\t\t// for everything else, try the network first, but\n\t\t// fall back to the cache if we're offline\n\t\ttry {\n\t\t\tconst const response: Responseresponse = await function fetch(input: string | URL | Request, init?: RequestInit): Promise<Response> (+2 overloads)MDN Reference\nfetch(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest);\n\n\t\t\t// if we're offline, fetch can return a value that is not a Response\n\t\t\t// instead of throwing - and we can't pass this non-Response to respondWith\n\t\t\tif (!(const response: Responseresponse instanceof var Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}The Response interface of the Fetch API represents the response to a request.\nMDN Reference\nResponse)) {\n\t\t\t\tthrow new var Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)Error('invalid response from fetch');\n\t\t\t}\n\n\t\t\tif (const response: Responseresponse.Response.status: numberThe status read-only property of the Response interface contains the HTTP status codes of the response.\nMDN Reference\nstatus === 200 && !const response: Responseresponse.Response.headers: HeadersThe headers read-only property of the Response interface contains the Headers object associated with the response.\nMDN Reference\nheaders.Headers.get(name: string): string | null (+1 overload)The get() method of the Headers interface returns a byte string of all the values of a header within a Headers object with a given name. If the requested header doesn’t exist in the Headers object, it returns null.\nMDN Reference\nget('cache-control')?.String.includes(searchString: string, position?: number): booleanReturns true if searchString appears as a substring of the result of converting this\nobject to a String, at one or more positions that are\ngreater than or equal to position; otherwise, returns false.\n@paramsearchString search string@paramposition If position is undefined, 0 is assumed, so as to search all of the String.includes('no-store')) {\n\t\t\t\tconst cache: Cachecache.Cache.put(request: RequestInfo | URL, response: Response): Promise<void> (+1 overload)The put() method of the Cache interface allows key/value pairs to be added to the current Cache object.\nMDN Reference\nput(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest, const response: Responseresponse.Response.clone(): Response (+1 overload)The clone() method of the Response interface creates a clone of a response object, identical in every way, but stored in a different variable.\nMDN Reference\nclone());\n\t\t\t}\n\n\t\t\treturn const response: Responseresponse;\n\t\t} catch (function (local var) err: unknownerr) {\n\t\t\tconst const response: Response | undefinedresponse = await const cache: Cachecache.Cache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)The match() method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object. If no match is found, the Promise resolves to undefined.\nMDN Reference\nmatch(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest);\n\n\t\t\tif (const response: Response | undefinedresponse) {\n\t\t\t\treturn const response: Responseresponse;\n\t\t\t}\n\n\t\t\t// if there's no cache, then just error out\n\t\t\t// as there is nothing we can do to respond to this request\n\t\t\tthrow function (local var) err: unknownerr;\n\t\t}\n\t}\n\n\tevent: FetchEventevent.FetchEvent.respondWith(r: Response | PromiseLike<Response>): voidThe respondWith() method of FetchEvent prevents the browser’s default fetch handling, and allows you to provide a promise for a Response yourself.\nMDN Reference\nrespondWith(function (local function) respond(): Promise<Response>respond());\n});const build: string[]cache.addAll(build)const files: string[]config.kit.files.assetsstaticconfig.kit.serviceWorker.filesconst version: stringconfig.kit.versionconst self: ServiceWorkerGlobalScopemodule globalThisvar self: Window & typeof globalThisWindow.selfselfconst CACHE: stringconst version: stringconfig.kit.versionconst ASSETS: string[]const build: string[]cache.addAll(build)const files: string[]config.kit.files.assetsstaticconfig.kit.serviceWorker.filesconst self: ServiceWorkerGlobalScopeServiceWorkerGlobalScope.addEventListener<\"install\">(type: \"install\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener()event: ExtendableEventfunction (local function) addFilesToCache(): Promise<void>const cache: Cachevar caches: CacheStorageCacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)open()const CACHE: stringconst cache: CacheCache.addAll(requests: Iterable<RequestInfo>): Promise<void> (+3 overloads)addAll()const ASSETS: string[]event: ExtendableEventExtendableEvent.waitUntil(f: Promise<any>): voidExtendableEvent.waitUntil()function (local function) addFilesToCache(): Promise<void>const self: ServiceWorkerGlobalScopeServiceWorkerGlobalScope.addEventListener<\"activate\">(type: \"activate\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener()event: ExtendableEventfunction (local function) deleteOldCaches(): Promise<void>const key: stringvar caches: CacheStorageCacheStorage.keys(): Promise<string[]> (+1 overload)keys()const key: stringconst CACHE: stringvar caches: CacheStorageCacheStorage.delete(cacheName: string): Promise<boolean> (+1 overload)delete()const key: stringevent: ExtendableEventExtendableEvent.waitUntil(f: Promise<any>): voidExtendableEvent.waitUntil()function (local function) deleteOldCaches(): Promise<void>const self: ServiceWorkerGlobalScopeServiceWorkerGlobalScope.addEventListener<\"fetch\">(type: \"fetch\", listener: (this: ServiceWorkerGlobalScope, ev: FetchEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener()event: FetchEventevent: FetchEventFetchEvent.request: RequestrequestRequest.method: stringmethodfunction (local function) respond(): Promise<Response>const url: URLvar URL: new (url: string | URL, base?: string | URL) => URLURLURLimport { URL } from 'url'event: FetchEventFetchEvent.request: RequestrequestRequest.url: stringurlconst cache: Cachevar caches: CacheStorageCacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)open()const CACHE: stringconst ASSETS: string[]Array<string>.includes(searchElement: string, fromIndex?: number): booleanconst url: URLURL.pathname: stringpathnameconst response: Response | undefinedconst cache: CacheCache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)match()const url: URLURL.pathname: stringpathnameconst response: Response | undefinedconst response: Responseconst response: Responsefunction fetch(input: string | URL | Request, init?: RequestInit): Promise<Response> (+2 overloads)event: FetchEventFetchEvent.request: Requestrequestconst response: Responsevar Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}var Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}Responsevar Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)var Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)const response: ResponseResponse.status: numberstatusconst response: ResponseResponse.headers: HeadersheadersHeaders.get(name: string): string | null (+1 overload)get()String.includes(searchString: string, position?: number): booleanconst cache: CacheCache.put(request: RequestInfo | URL, response: Response): Promise<void> (+1 overload)put()event: FetchEventFetchEvent.request: Requestrequestconst response: ResponseResponse.clone(): Response (+1 overload)clone()const response: Responsefunction (local var) err: unknownconst response: Response | undefinedconst cache: CacheCache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)match()event: FetchEventFetchEvent.request: Requestrequestconst response: Response | undefinedconst response: Responsefunction (local var) err: unknownevent: FetchEventFetchEvent.respondWith(r: Response | PromiseLike<Response>): voidrespondWith()function (local function) respond(): Promise<Response>\n```\n\nExample:\n```text\nvar Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}\n```\n\nExample:\n```text\nvar Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)\n```\n\nExample:\n```text\n// Disables access to DOM typings like `HTMLElement` which are not available\n// inside a service worker and instantiates the correct globals\n/// <reference no-default-lib=\"true\"/>\n/// <reference lib=\"esnext\" />\n/// <reference lib=\"webworker\" />\n\n// Ensures that the `$service-worker` import has proper type definitions\n/// <reference types=\"@sveltejs/kit\" />\n\n// Only necessary if you have an import from `$env/static/public`\n/// <reference types=\"../.svelte-kit/ambient.d.ts\" />\n\nimport { const build: string[]An array of URL strings representing the files generated by Vite, suitable for caching with cache.addAll(build).\nDuring development, this is an empty array.\nreferencebuild, const files: string[]An array of URL strings representing the files in your static directory, or whatever directory is specified by config.kit.files.assets. You can customize which files are included from static directory using config.kit.serviceWorker.files\nreferencefiles, const version: stringSee config.kit.version. It’s useful for generating unique cache names inside your service worker, so that a later deployment of your app can invalidate old caches.\nreferenceversion } from '$service-worker';\n\n// This gives `self` the correct types\nconst const self: ServiceWorkerGlobalScopeself = module globalThisglobalThis.var self: Window & typeof globalThisThe Window.self read-only property returns the window itself, as a WindowProxy. It can be used with dot notation on a window object (that is, window.self) or standalone (self). The advantage of the standalone notation is that a similar notation exists for non-window contexts, such as in Web Workers. By using self, you can refer to the global scope in a way that will work not only in a window context (self will resolve to window.self) but also in a worker context (self will then resolve to WorkerGlobalScope.self).\nMDN Reference\nThe self read-only property of the WorkerGlobalScope interface returns a reference to the WorkerGlobalScope itself. Most of the time it is a specific scope like DedicatedWorkerGlobalScope, SharedWorkerGlobalScope, or ServiceWorkerGlobalScope.\nMDN Reference\nself as unknown as ServiceWorkerGlobalScope;\n\n// Create a unique cache name for this deployment\nconst const CACHE: stringCACHE = `cache-${const version: stringSee config.kit.version. It’s useful for generating unique cache names inside your service worker, so that a later deployment of your app can invalidate old caches.\nreferenceversion}`;\n\nconst const ASSETS: string[]ASSETS = [\n\t...const build: string[]An array of URL strings representing the files generated by Vite, suitable for caching with cache.addAll(build).\nDuring development, this is an empty array.\nreferencebuild, // the app itself\n\t...const files: string[]An array of URL strings representing the files in your static directory, or whatever directory is specified by config.kit.files.assets. You can customize which files are included from static directory using config.kit.serviceWorker.files\nreferencefiles // everything in `static`\n];\n\nconst self: ServiceWorkerGlobalScopeself.ServiceWorkerGlobalScope.addEventListener<\"install\">(type: \"install\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\nMDN Reference\naddEventListener('install', (event: ExtendableEventevent) => {\n\t// Create a new cache and add all files to it\n\tasync function function (local function) addFilesToCache(): Promise<void>addFilesToCache() {\n\t\tconst const cache: Cachecache = await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)The open() method of the CacheStorage interface returns a Promise that resolves to the Cache object matching the cacheName.\nMDN Reference\nopen(const CACHE: stringCACHE);\n\t\tawait const cache: Cachecache.Cache.addAll(requests: Iterable<RequestInfo>): Promise<void> (+3 overloads)The addAll() method of the Cache interface takes an array of URLs, retrieves them, and adds the resulting response objects to the given cache. The request objects created during retrieval become keys to the stored response operations.\nMDN Reference\naddAll(const ASSETS: string[]ASSETS);\n\t}\n\n\tevent: ExtendableEventevent.ExtendableEvent.waitUntil(f: Promise<any>): voidThe ExtendableEvent.waitUntil() method tells the event dispatcher that work is ongoing. It can also be used to detect whether that work was successful. In service workers, waitUntil() tells the browser that work is ongoing until the promise settles, and it shouldn’t terminate the service worker if it wants that work to complete.\nMDN Reference\nwaitUntil(function (local function) addFilesToCache(): Promise<void>addFilesToCache());\n});\n\nconst self: ServiceWorkerGlobalScopeself.ServiceWorkerGlobalScope.addEventListener<\"activate\">(type: \"activate\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\nMDN Reference\naddEventListener('activate', (event: ExtendableEventevent) => {\n\t// Remove previous cached data from disk\n\tasync function function (local function) deleteOldCaches(): Promise<void>deleteOldCaches() {\n\t\tfor (const const key: stringkey of await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.keys(): Promise<string[]> (+1 overload)The keys() method of the CacheStorage interface returns a Promise that will resolve with an array containing strings corresponding to all of the named Cache objects tracked by the CacheStorage object in the order they were created. Use this method to iterate over a list of all Cache objects.\nMDN Reference\nkeys()) {\n\t\t\tif (const key: stringkey !== const CACHE: stringCACHE) await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.delete(cacheName: string): Promise<boolean> (+1 overload)The delete() method of the CacheStorage interface finds the Cache object matching the cacheName, and if found, deletes the Cache object and returns a Promise that resolves to true. If no Cache object is found, it resolves to false.\nMDN Reference\ndelete(const key: stringkey);\n\t\t}\n\t}\n\n\tevent: ExtendableEventevent.ExtendableEvent.waitUntil(f: Promise<any>): voidThe ExtendableEvent.waitUntil() method tells the event dispatcher that work is ongoing. It can also be used to detect whether that work was successful. In service workers, waitUntil() tells the browser that work is ongoing until the promise settles, and it shouldn’t terminate the service worker if it wants that work to complete.\nMDN Reference\nwaitUntil(function (local function) deleteOldCaches(): Promise<void>deleteOldCaches());\n});\n\nconst self: ServiceWorkerGlobalScopeself.ServiceWorkerGlobalScope.addEventListener<\"fetch\">(type: \"fetch\", listener: (this: ServiceWorkerGlobalScope, ev: FetchEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)The addEventListener() method of the EventTarget interface sets up a function that will be called whenever the specified event is delivered to the target.\nMDN Reference\naddEventListener('fetch', (event: FetchEventevent) => {\n\t// ignore POST requests etc\n\tif (event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest.Request.method: stringThe method read-only property of the Request interface contains the request’s method (GET, POST, etc.)\nMDN Reference\nmethod !== 'GET') return;\n\n\tasync function function (local function) respond(): Promise<Response>respond() {\n\t\tconst const url: URLurl = new var URL: new (url: string | URL, base?: string | URL) => URLThe URL interface is used to parse, construct, normalize, and encode URLs. It works by providing properties which allow you to easily read and modify the components of a URL.\nMDN Reference\nURL class is a global reference for import { URL } from 'url'\nhttps://nodejs.org/api/url.html#the-whatwg-url-api\n@sincev10.0.0URL(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest.Request.url: stringThe url read-only property of the Request interface contains the URL of the request.\nMDN Reference\nurl);\n\t\tconst const cache: Cachecache = await var caches: CacheStorageAvailable only in secure contexts.\nMDN Reference\ncaches.CacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)The open() method of the CacheStorage interface returns a Promise that resolves to the Cache object matching the cacheName.\nMDN Reference\nopen(const CACHE: stringCACHE);\n\n\t\t// `build`/`files` can always be served from the cache\n\t\tif (const ASSETS: string[]ASSETS.Array<string>.includes(searchElement: string, fromIndex?: number): booleanDetermines whether an array includes a certain element, returning true or false as appropriate.\n@paramsearchElement The element to search for.@paramfromIndex The position in this array at which to begin searching for searchElement.includes(const url: URLurl.URL.pathname: stringThe pathname property of the URL interface represents a location in a hierarchical structure. It is a string constructed from a list of path segments, each of which is prefixed by a / character.\nMDN Reference\npathname)) {\n\t\t\tconst const response: Response | undefinedresponse = await const cache: Cachecache.Cache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)The match() method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object. If no match is found, the Promise resolves to undefined.\nMDN Reference\nmatch(const url: URLurl.URL.pathname: stringThe pathname property of the URL interface represents a location in a hierarchical structure. It is a string constructed from a list of path segments, each of which is prefixed by a / character.\nMDN Reference\npathname);\n\n\t\t\tif (const response: Response | undefinedresponse) {\n\t\t\t\treturn const response: Responseresponse;\n\t\t\t}\n\t\t}\n\n\t\t// for everything else, try the network first, but\n\t\t// fall back to the cache if we're offline\n\t\ttry {\n\t\t\tconst const response: Responseresponse = await function fetch(input: string | URL | Request, init?: RequestInit): Promise<Response> (+2 overloads)MDN Reference\nfetch(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest);\n\n\t\t\t// if we're offline, fetch can return a value that is not a Response\n\t\t\t// instead of throwing - and we can't pass this non-Response to respondWith\n\t\t\tif (!(const response: Responseresponse instanceof var Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}The Response interface of the Fetch API represents the response to a request.\nMDN Reference\nResponse)) {\n\t\t\t\tthrow new var Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)Error('invalid response from fetch');\n\t\t\t}\n\n\t\t\tif (const response: Responseresponse.Response.status: numberThe status read-only property of the Response interface contains the HTTP status codes of the response.\nMDN Reference\nstatus === 200 && !const response: Responseresponse.Response.headers: HeadersThe headers read-only property of the Response interface contains the Headers object associated with the response.\nMDN Reference\nheaders.Headers.get(name: string): string | null (+1 overload)The get() method of the Headers interface returns a byte string of all the values of a header within a Headers object with a given name. If the requested header doesn’t exist in the Headers object, it returns null.\nMDN Reference\nget('cache-control')?.String.includes(searchString: string, position?: number): booleanReturns true if searchString appears as a substring of the result of converting this\nobject to a String, at one or more positions that are\ngreater than or equal to position; otherwise, returns false.\n@paramsearchString search string@paramposition If position is undefined, 0 is assumed, so as to search all of the String.includes('no-store')) {\n\t\t\t\tconst cache: Cachecache.Cache.put(request: RequestInfo | URL, response: Response): Promise<void> (+1 overload)The put() method of the Cache interface allows key/value pairs to be added to the current Cache object.\nMDN Reference\nput(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest, const response: Responseresponse.Response.clone(): Response (+1 overload)The clone() method of the Response interface creates a clone of a response object, identical in every way, but stored in a different variable.\nMDN Reference\nclone());\n\t\t\t}\n\n\t\t\treturn const response: Responseresponse;\n\t\t} catch (function (local var) err: unknownerr) {\n\t\t\tconst const response: Response | undefinedresponse = await const cache: Cachecache.Cache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)The match() method of the Cache interface returns a Promise that resolves to the Response associated with the first matching request in the Cache object. If no match is found, the Promise resolves to undefined.\nMDN Reference\nmatch(event: FetchEventevent.FetchEvent.request: RequestThe request read-only property of the FetchEvent interface returns the Request that triggered the event handler.\nMDN Reference\nrequest);\n\n\t\t\tif (const response: Response | undefinedresponse) {\n\t\t\t\treturn const response: Responseresponse;\n\t\t\t}\n\n\t\t\t// if there's no cache, then just error out\n\t\t\t// as there is nothing we can do to respond to this request\n\t\t\tthrow function (local var) err: unknownerr;\n\t\t}\n\t}\n\n\tevent: FetchEventevent.FetchEvent.respondWith(r: Response | PromiseLike<Response>): voidThe respondWith() method of FetchEvent prevents the browser’s default fetch handling, and allows you to provide a promise for a Response yourself.\nMDN Reference\nrespondWith(function (local function) respond(): Promise<Response>respond());\n});const build: string[]cache.addAll(build)const files: string[]config.kit.files.assetsstaticconfig.kit.serviceWorker.filesconst version: stringconfig.kit.versionconst self: ServiceWorkerGlobalScopemodule globalThisvar self: Window & typeof globalThisWindow.selfselfconst CACHE: stringconst version: stringconfig.kit.versionconst ASSETS: string[]const build: string[]cache.addAll(build)const files: string[]config.kit.files.assetsstaticconfig.kit.serviceWorker.filesconst self: ServiceWorkerGlobalScopeServiceWorkerGlobalScope.addEventListener<\"install\">(type: \"install\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener()event: ExtendableEventfunction (local function) addFilesToCache(): Promise<void>const cache: Cachevar caches: CacheStorageCacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)open()const CACHE: stringconst cache: CacheCache.addAll(requests: Iterable<RequestInfo>): Promise<void> (+3 overloads)addAll()const ASSETS: string[]event: ExtendableEventExtendableEvent.waitUntil(f: Promise<any>): voidExtendableEvent.waitUntil()function (local function) addFilesToCache(): Promise<void>const self: ServiceWorkerGlobalScopeServiceWorkerGlobalScope.addEventListener<\"activate\">(type: \"activate\", listener: (this: ServiceWorkerGlobalScope, ev: ExtendableEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener()event: ExtendableEventfunction (local function) deleteOldCaches(): Promise<void>const key: stringvar caches: CacheStorageCacheStorage.keys(): Promise<string[]> (+1 overload)keys()const key: stringconst CACHE: stringvar caches: CacheStorageCacheStorage.delete(cacheName: string): Promise<boolean> (+1 overload)delete()const key: stringevent: ExtendableEventExtendableEvent.waitUntil(f: Promise<any>): voidExtendableEvent.waitUntil()function (local function) deleteOldCaches(): Promise<void>const self: ServiceWorkerGlobalScopeServiceWorkerGlobalScope.addEventListener<\"fetch\">(type: \"fetch\", listener: (this: ServiceWorkerGlobalScope, ev: FetchEvent) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener()event: FetchEventevent: FetchEventFetchEvent.request: RequestrequestRequest.method: stringmethodfunction (local function) respond(): Promise<Response>const url: URLvar URL: new (url: string | URL, base?: string | URL) => URLURLURLimport { URL } from 'url'event: FetchEventFetchEvent.request: RequestrequestRequest.url: stringurlconst cache: Cachevar caches: CacheStorageCacheStorage.open(cacheName: string): Promise<Cache> (+1 overload)open()const CACHE: stringconst ASSETS: string[]Array<string>.includes(searchElement: string, fromIndex?: number): booleanconst url: URLURL.pathname: stringpathnameconst response: Response | undefinedconst cache: CacheCache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)match()const url: URLURL.pathname: stringpathnameconst response: Response | undefinedconst response: Responseconst response: Responsefunction fetch(input: string | URL | Request, init?: RequestInit): Promise<Response> (+2 overloads)event: FetchEventFetchEvent.request: Requestrequestconst response: Responsevar Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}var Response: {\n new (body?: BodyInit | null, init?: ResponseInit): Response;\n prototype: Response;\n error(): Response;\n json(data: any, init?: ResponseInit): Response;\n redirect(url: string | URL, status?: number): Response;\n}Responsevar Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)var Error: ErrorConstructor\nnew (message?: string, options?: ErrorOptions) => Error (+1 overload)const response: ResponseResponse.status: numberstatusconst response: ResponseResponse.headers: HeadersheadersHeaders.get(name: string): string | null (+1 overload)get()String.includes(searchString: string, position?: number): booleanconst cache: CacheCache.put(request: RequestInfo | URL, response: Response): Promise<void> (+1 overload)put()event: FetchEventFetchEvent.request: Requestrequestconst response: ResponseResponse.clone(): Response (+1 overload)clone()const response: Responsefunction (local var) err: unknownconst response: Response | undefinedconst cache: CacheCache.match(request: RequestInfo | URL, options?: CacheQueryOptions): Promise<Response | undefined> (+1 overload)match()event: FetchEventFetchEvent.request: Requestrequestconst response: Response | undefinedconst response: Responsefunction (local var) err: unknownevent: FetchEventFetchEvent.respondWith(r: Response | PromiseLike<Response>): voidrespondWith()function (local function) respond(): Promise<Response>\n```\n\nExample:\n```text\nimport { const dev: booleanWhether the dev server is running. This is not guaranteed to correspond to NODE_ENV or MODE.\nreferencedev } from '$app/environment';\n\nif ('serviceWorker' in var navigator: NavigatorThe Window.navigator read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.\nMDN Reference\nnavigator) {\n\tfunction addEventListener<\"load\">(type: \"load\", listener: (this: Window, ev: Event) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)addEventListener('load', function () {\n\t\tvar navigator: NavigatorThe Window.navigator read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.\nMDN Reference\nnavigator.Navigator.serviceWorker: ServiceWorkerContainerThe serviceWorker read-only property of the Navigator interface returns the ServiceWorkerContainer object for the associated document, which provides access to registration, removal, upgrade, and communication with the ServiceWorker.\nAvailable only in secure contexts.\nMDN Reference\nserviceWorker.ServiceWorkerContainer.register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>The register() method of the ServiceWorkerContainer interface creates or updates a ServiceWorkerRegistration for the given scope.\nMDN Reference\nregister('./path/to/service-worker.js', {\n\t\t\tRegistrationOptions.type?: WorkerType | undefinedtype: const dev: booleanWhether the dev server is running. This is not guaranteed to correspond to NODE_ENV or MODE.\nreferencedev ? 'module' : 'classic'\n\t\t});\n\t});\n}const dev: booleanNODE_ENVMODEvar navigator: NavigatorWindow.navigatorfunction addEventListener<\"load\">(type: \"load\", listener: (this: Window, ev: Event) => any, options?: boolean | AddEventListenerOptions): void (+1 overload)var navigator: NavigatorWindow.navigatorNavigator.serviceWorker: ServiceWorkerContainerserviceWorkerServiceWorkerContainer.register(scriptURL: string | URL, options?: RegistrationOptions): Promise<ServiceWorkerRegistration>register()RegistrationOptions.type?: WorkerType | undefinedconst dev: booleanNODE_ENVMODE\n```\n\nExample:\n```text\nimport { function afterNavigate(callback: (navigation: import(\"@sveltejs/kit\").AfterNavigate) => void): voidA lifecycle function that runs the supplied callback when the current component mounts, and also whenever we navigate to a URL.\nafterNavigate must be called during a component initialization. It remains active as long as the component is mounted.\nreferenceafterNavigate } from '$app/navigation';\n\nfunction afterNavigate(callback: (navigation: import(\"@sveltejs/kit\").AfterNavigate) => void): voidA lifecycle function that runs the supplied callback when the current component mounts, and also whenever we navigate to a URL.\nafterNavigate must be called during a component initialization. It remains active as long as the component is mounted.\nreferenceafterNavigate(async () => {\n\tif ('serviceWorker' in var navigator: NavigatorThe Window.navigator read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.\nMDN Reference\nnavigator) {\n\t\tconst const registration: ServiceWorkerRegistration | undefinedregistration = await var navigator: NavigatorThe Window.navigator read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.\nMDN Reference\nnavigator.Navigator.serviceWorker: ServiceWorkerContainerThe serviceWorker read-only property of the Navigator interface returns the ServiceWorkerContainer object for the associated document, which provides access to registration, removal, upgrade, and communication with the ServiceWorker.\nAvailable only in secure contexts.\nMDN Reference\nserviceWorker.ServiceWorkerContainer.getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>The getRegistration() method of the ServiceWorkerContainer interface gets a ServiceWorkerRegistration object whose scope URL matches the provided client URL. The method returns a Promise that resolves to a ServiceWorkerRegistration or undefined.\nMDN Reference\ngetRegistration();\n\t\tawait const registration: ServiceWorkerRegistration | undefinedregistration?.ServiceWorkerRegistration.update(): Promise<ServiceWorkerRegistration>The update() method of the ServiceWorkerRegistration interface attempts to update the service worker. It fetches the worker’s script URL, and if the new worker is not byte-by-byte identical to the current worker, it installs the new worker. The fetch of the worker bypasses any browser caches if the previous fetch occurred over 24 hours ago.\nMDN Reference\nupdate();\n\t}\n});function afterNavigate(callback: (navigation: import(\"@sveltejs/kit\").AfterNavigate) => void): voidcallbackafterNavigatefunction afterNavigate(callback: (navigation: import(\"@sveltejs/kit\").AfterNavigate) => void): voidcallbackafterNavigatevar navigator: NavigatorWindow.navigatorconst registration: ServiceWorkerRegistration | undefinedvar navigator: NavigatorWindow.navigatorNavigator.serviceWorker: ServiceWorkerContainerserviceWorkerServiceWorkerContainer.getRegistration(clientURL?: string | URL): Promise<ServiceWorkerRegistration | undefined>getRegistration()const registration: ServiceWorkerRegistration | undefinedServiceWorkerRegistration.update(): Promise<ServiceWorkerRegistration>update()\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.293Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":477,"estimatedTokens":11374}}533{"id":"doc-https_svelte_dev_docs_kit_app_forms_llms_txt-601b5fcc","source":"documentation","title":"https://svelte.dev/docs/kit/$app-forms/llms.txt","url":"https://svelte.dev/docs/kit/$app-forms/llms.txt","text":"```dts function applyAction< Success extends Record | undefined, Failure extends Record | undefined >( ('@sveltejs/kit').ActionResult< Success, Failure > ): Promise; ```\n\n```dts function deserialize< Success extends Record | undefined, Failure extends Record | undefined >( ): import('@sveltejs/kit').ActionResult; ```\n\n` element that otherwise would work without JavaScript. The `submit` function is called upon submission with the given FormData and the `action` that should be triggered. If `cancel` is called, the form will not be submitted. You can use the abort `controller` to cancel the submission in case another one starts. If a function is returned, that function is called with the response from the server. If nothing is returned, the fallback will be used. If this function or its return value isn't set, it - falls back to updating the `form` prop with the returned data if the action is on the same page as the form - updates `page.status` - resets the `` element and invalidates all data in case of successful submission with no redirect response - redirects in case of a redirect response - redirects to the nearest error page in case of an unexpected error If you provide a custom function with a callback and want to use the default behavior, invoke `update` in your callback. It accepts an options object - `reset: false` if you don't want the `` values to be reset after a successful submission - `invalidateAll: false` if you don't want the action to call `invalidateAll` after submission ```dts function enhance< Success extends Record | undefined, Failure extends Record | undefined >( , submit?: import('@sveltejs/kit').SubmitFunction< Success, Failure > ): { destroy(): void; }; ```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:46.313Z","totalSectionsIncluded":3,"totalCodeBlocksIncluded":0,"totalLines":7,"estimatedTokens":431}}534{"id":"doc-performance_best_practices_surrealdb-3d29f908","source":"documentation","title":"Performance best practices | SurrealDB","url":"https://surrealdb.com/docs/learn/querying/performance/performance-best-practices","text":"Example:\n```text\ndocker run --rm --pull always -p 8000:8000 surrealdb/surrealdb:latest start --log info rocksdb://path/to/mydatabase\n```\n\nExample:\n```text\nsurreal start --log info rocksdb://path/to/mydatabase\n```\n\nExample:\n```text\n[profile.release]\ncodegen-units = 1\nlto = true\nopt-level = 3\npanic = 'abort'\nstrip = true\n```\n\nExample:\n```text\nsurrealdb = { version = \"2\", features = [\"allocator\", \"storage-mem\", \\\n \"storage-surrealkv\", \"storage-rocksdb\", \"protocol-http\", \\\n \"protocol-ws\", \"rustls\"] }\n```\n\nExample:\n```text\ntokio = { version = \"1.49.0\", features = [\"sync\", \"rt-multi-thread\"] }\n```\n\nExample:\n```text\nfn main() {\n\ttokio::runtime::Builder::new_multi_thread()\n .enable_all()\n .thread_stack_size(10 * 1024 * 1024) // 10MiB\n .build()\n .unwrap()\n .block_on(async {\n // Your application code\n })\n}\n```\n\nExample:\n```text\n{\n\t\"plugins\": {\n\t\t\"logger\": {\n\t\t\t\"enabled\": false\n\t\t\t}\n\t}\n}\n```\n\nExample:\n```text\nTAURI_LOG_LEVEL=off cargo tauri build\n```\n\nExample:\n```text\nSELECT *\nFROM user\nWHERE id = 19374837491;\n```\n\nExample:\n```text\nSELECT *\nFROM user\nWHERE id = user:19374837491;\n```\n\nExample:\n```text\nSELECT *\nFROM user:19374837491;\n```\n\nExample:\n```text\n-- Selecting individual IDs\nSELECT *\nFROM user\nWHERE id = 19374837491\n OR id = 12647931632;\n```\n\nExample:\n```text\n-- Selecting a range of IDs\nSELECT *\nFROM user\nWHERE id >= 12647931632\n AND id <= 19374837491;\n```\n\nExample:\n```text\n-- Selecing indiviudal IDs\nSELECT *\nFROM user:19374837491, user:12647931632;\n```\n\nExample:\n```text\n-- Selecting a range of IDs\nSELECT *\nFROM user:12647931632..=19374837491;\n```\n\nExample:\n```text\nDEFINE FIELD data_length ON person VALUE random_data.len();\nDEFINE FIELD is_short ON person VALUE random_data.len() < 10;\n\n-- Fill up the database a bit with 10,000 records\nCREATE |person:10000|\n SET random_data = rand::string(1000) RETURN NONE;\n-- Add one outlier with short random_data\nCREATE person:one SET random_data = \"HI!\" RETURN NONE;\n\n-- Function call + compare operation: slowest\nSELECT * FROM person WHERE random_data.len() < 10;\n-- Compare operation: much faster\nSELECT * FROM person WHERE data_length < 10;\n-- Boolean check: even faster\nSELECT * FROM person WHERE is_short;\n-- Direct record access: almost instantaneous\nSELECT * FROM person:one;\n```\n\nExample:\n```text\nUPDATE (SELECT id FROM user WHERE age < 18)\nSET adult = false;\n```\n\nExample:\n```text\nDELETE (SELECT id FROM user WHERE age < 18);\n```\n\nExample:\n```text\nSELECT *\nFROM user\nWHERE age < 18\nEXPLAIN;\n```\n\nExample:\n```text\n[\n\t{\n\t\tdetail: {\n\t\t\ttable: 'user'\n\t\t},\n\t\toperation: 'Iterate Table'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t}\n]\n```\n\nExample:\n```text\nDEFINE INDEX idx_user_age ON user FIELDS age;\n\nSELECT age\nFROM user\nWHERE age > 18\nEXPLAIN;\n```\n\nExample:\n```text\n[\n\t{\n\t\tdetail: {\n\t\t\tplan: {\n\t\t\t\tfrom: {\n\t\t\t\t\tinclusive: false,\n\t\t\t\t\tvalue: 18\n\t\t\t\t},\n\t\t\t\tindex: 'idx_user_age',\n\t\t\t\tto: {\n\t\t\t\t\tinclusive: false,\n\t\t\t\t\tvalue: NONE\n\t\t\t\t}\n\t\t\t},\n\t\t\ttable: 'user'\n\t\t},\n\t\toperation: 'Iterate Index'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t}\n]\n```\n\nExample:\n```text\nSELECT age\nFROM user\nWHERE age < 7\n OR age > 77\nEXPLAIN;\n```\n\nExample:\n```text\n[\n\t{\n\t\tdetail: {\n\t\t\tplan: {\n\t\t\t\tfrom: {\n\t\t\t\t\tinclusive: false,\n\t\t\t\t\tvalue: NONE\n\t\t\t\t},\n\t\t\t\tindex: 'idx_user_age',\n\t\t\t\tto: {\n\t\t\t\t\tinclusive: false,\n\t\t\t\t\tvalue: 7\n\t\t\t\t}\n\t\t\t},\n\t\t\ttable: 'user'\n\t\t},\n\t\toperation: 'Iterate Index'\n\t},\n\t{\n\t\tdetail: {\n\t\t\tplan: {\n\t\t\t\tfrom: {\n\t\t\t\t\tinclusive: false,\n\t\t\t\t\tvalue: 77\n\t\t\t\t},\n\t\t\t\tindex: 'idx_user_age',\n\t\t\t\tto: {\n\t\t\t\t\tinclusive: false,\n\t\t\t\t\tvalue: NONE\n\t\t\t\t}\n\t\t\t},\n\t\t\ttable: 'user'\n\t\t},\n\t\toperation: 'Iterate Index'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t}\n]\n```\n\nExample:\n```text\nDEFINE INDEX email_index ON user FIELDS email UNIQUE;\n\nCREATE user SET email = \"bob@bob.com\";\nCREATE user SET email = \"bob@bob.com\";\n```\n\nExample:\n```text\n\"Database index `email_index` already contains 'bob@bob.com',\n with record `user:g7s070gqvh3lj7fdp26w`\"\n```\n\nExample:\n```text\nDEFINE INDEX email_index ON user FIELDS email UNIQUE;\n\nCREATE user SET email = \"bob@bob.com\";\n\n-- Checks index, finds existing user via email \"bob@bob.com\", modifies it\nUPSERT user SET email = \"bob@bob.com\", name = \"Bob Bobson\";\n\n-- Checks index, fails as a new `user:bob` cannot be created with the same email\nUPSERT user:bob SET email = \"bob@bob.com\", name = \"Bob Bobson\";\n```\n\nExample:\n```text\nDEFINE INDEX email_index ON user FIELDS email UNIQUE;\n\n-- Create 50,000 users to fill up the database\nCREATE |user:50000| RETURN NONE;\n\n-- Create Bob\nCREATE user SET email = \"bob@bob.com\";\n\n-- Don't do this: full table scan to find and update a record\nUPDATE user SET name = \"Bob Bobson\" WHERE email = \"bob@bob.com\";\n\n-- Do this instead: use the index instead to go directly to the record, no table scan\nUPSERT user SET name = \"Bob Bobson\", email = \"bob@bob.com\";\n```\n\nExample:\n```text\nDEFINE FIELD user ON TABLE access TYPE record<user>;\n\nCREATE user:1 SET name = 'foo', role = 'admin';\nCREATE user:2 SET name = 'bar', role = 'admin';\n\nCREATE access:A SET user = user:1;\nCREATE access:B SET user = user:2;\n\nSELECT *\nFROM access\nWHERE user.role = 'admin'\n```\n\nExample:\n```text\n[\n\t{\n\t\tid: access:A,\n\t\tuser: user:1\n\t},\n\t{\n\t\tid: access:B,\n\t\tuser: user:2\n\t}\n]\n```\n\nExample:\n```text\nDEFINE INDEX idx_user_role ON TABLE user FIELDS role;\nDEFINE INDEX idx_access_user ON TABLE access FIELDS user;\n\nSELECT *\nFROM access\nWHERE user.role = 'admin' \nEXPLAIN;\n```\n\nExample:\n```text\n[\n\t{\n\t\tdetail: {\n\t\t\tplan: {\n\t\t\t\tindex: 'idx_access_user',\n\t\t\t\tjoins: [\n\t\t\t\t\t{\n\t\t\t\t\t\tindex: 'idx_user_role',\n\t\t\t\t\t\toperator: '=',\n\t\t\t\t\t\tvalue: 'admin'\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\toperator: 'join'\n\t\t\t},\n\t\t\ttable: 'access'\n\t\t},\n\t\toperation: 'Iterate Index'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t}\n]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.229Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":32,"totalLines":380,"estimatedTokens":1455}}535{"id":"doc-delete_surrealdb-cb16b90c","source":"documentation","title":"delete | SurrealDB","url":"https://surrealdb.com/docs/reference/mojo/methods/delete","text":"Example:\n```text\nclient.delete(thing, session, txn)\n```\n\nExample:\n```text\n# Delete a specific record\nvar resp = client.delete(\"person:chiru\")\n\n# Delete every record in a table\nvar cleared = client.delete(\"person\")\n```\n\nExample:\n```text\nDELETE $thing;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.256Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":20,"estimatedTokens":67}}536{"id":"doc-fields_and_validation_surrealdb-b5d702dc","source":"documentation","title":"Fields and validation | SurrealDB","url":"https://surrealdb.com/docs/learn/schema-management/tables-and-fields/fields-and-validation","text":"Example:\n```text\n-- Declare the name of a field.\nDEFINE FIELD email ON TABLE user;\n```\n\nExample:\n```text\n-- Define nested object property types\nDEFINE FIELD emails.address ON TABLE user TYPE string;\nDEFINE FIELD emails.primary ON TABLE user TYPE bool;\n\n-- Define individual fields on an array\nDEFINE FIELD metadata[0] ON person TYPE datetime;\nDEFINE FIELD metadata[1] ON person TYPE int;\n```\n\nExample:\n```text\n-- Set a field to have the string data type\nDEFINE FIELD email ON TABLE user TYPE string;\n\n-- Set a field to have the datetime data type\nDEFINE FIELD created ON TABLE user TYPE datetime;\n\n-- Set a field to have the bool data type\nDEFINE FIELD locked ON TABLE user TYPE bool;\n\n-- Set a field to have the number data type\nDEFINE FIELD login_attempts ON TABLE user TYPE number;\n```\n\nExample:\n```text\n-- Set a field to have either the uuid or int type\nDEFINE FIELD user_id ON TABLE user TYPE uuid|int;\n```\n\nExample:\n```text\n-- Set a field to have the array data type\nDEFINE FIELD roles ON TABLE user TYPE array<string>;\n\n-- Set a field to have the array data type, equivalent to `array<any>`\nDEFINE FIELD posts ON TABLE user TYPE array;\n\n-- Set a field to have the array object data type\nDEFINE FIELD emails ON TABLE user TYPE array<object>;\n\n-- Set a field that holds exactly 640 bytes\nDEFINE FIELD bytes ON TABLE data TYPE array<int, 640> ASSERT $value.all(|$val| $val IN 0..=255);\n\n-- Field for a block in a game showing the possible distinct directions a character can move next.\n-- The array can contain no more than four directions\nDEFINE FIELD next_paths ON TABLE block \n TYPE array<\"north\" | \"east\" | \"south\" | \"west\"> \n VALUE $value.distinct() \n ASSERT $value.len() <= 4;\n```\n\nExample:\n```text\n-- A user may enter a biography, but it is not required.\n-- By using the option type you also allow for NONE values.\nDEFINE FIELD biography ON TABLE user TYPE option<string>;\n```\n\nExample:\n```text\nDEFINE FIELD user ON TABLE post TYPE option<record<user>>;\n```\n\nExample:\n```text\nDEFINE TABLE user SCHEMAFULL;\nDEFINE FIELD name ON TABLE user TYPE string;\nDEFINE FIELD metadata ON TABLE user TYPE object FLEXIBLE;\nDEFINE FIELD metadata.user_id ON TABLE user TYPE int;\n```\n\nExample:\n```text\nCREATE ONLY user SET\n name = \"User1\",\n metadata = {\n user_id: 8876687,\n country_code: \"ee\",\n time_zone: \"EEST\",\n age: 25\n};\n```\n\nExample:\n```text\n{\n\tid: user:lsdk473e279oik1k484b,\n\tmetadata: {\n\t\tage: 25,\n\t\tcountry_code: 'ee',\n\t\ttime_zone: 'EEST',\n\t\tuser_id: 8876687\n\t},\n\tname: 'User1'\n}\n```\n\nExample:\n```text\n-- A user is not locked by default.\nDEFINE FIELD locked ON TABLE user TYPE bool\n-- Set a default value if empty\n DEFAULT false;\n```\n\nExample:\n```text\nDEFINE TABLE product SCHEMAFULL;\n-- Set a default value of 123.456 for the primary field\nDEFINE FIELD primary ON product TYPE number DEFAULT ALWAYS 123.456;\n```\n\nExample:\n```text\n-- This will return an error\nCREATE product:test SET primary = NULL;\n\n-- result \n\"Couldn't coerce value for field `primary` of `product:test`: Expected `number` but found `NULL`\"\n```\n\nExample:\n```text\n-- This will set the value of the `primary` field to `123.456`\nCREATE product:test;\n\n-- This will set the value of the `primary` field to `463.456`\nUPSERT product:test SET primary = 463.456;\n\n-- This will set the value of the `primary` field to `123.456`\nUPSERT product:test SET primary = NONE;\n```\n\nExample:\n```text\nDEFINE FIELD updated ON TABLE user DEFAULT time::now();\n\n-- Set `updated` to the year 1900\nCREATE user SET updated = d\"1900-01-01\";\n-- Then set to the year 1910\nUPDATE user SET updated = d\"1910-01-01\";\n```\n\nExample:\n```text\nDEFINE FIELD updated ON TABLE user VALUE time::now();\n\n-- Ignores 1900 date, sets `updated` to current time\nCREATE user SET updated = d\"1900-01-01\";\n-- Ignores again, updates to current time\nUPDATE user SET updated = d\"1900-01-01\";\n```\n\nExample:\n```text\nDEFINE FIELD updated ON TABLE user VALUE time::now();\n\nCREATE user:one;\nSELECT * FROM ONLY user:one;\n-- Sleep for one second\nSLEEP 1s;\n-- `updated` is still the same\nSELECT * FROM ONLY user:one;\n```\n\nExample:\n```text\nDEFINE FIELD accessed_at ON TABLE user COMPUTED time::now();\n\nCREATE user:one;\nSELECT * FROM ONLY user:one;\n-- Sleep for one second\nSLEEP 1s;\n-- `accessed_at` is a different value now\nSELECT * FROM ONLY user:one;\n```\n\nExample:\n```text\n-- Ensure that an email address is always stored in lowercase characters\nDEFINE FIELD email ON TABLE user TYPE string\n VALUE string::lowercase($value);\n```\n\nExample:\n```text\n-- Give the user table an email field. Store it in a string\nDEFINE FIELD email ON TABLE user TYPE string\n -- Check if the value is a properly formatted email address\n ASSERT string::is_email($value);\n```\n\nExample:\n```text\nDEFINE FIELD num ON data TYPE int ASSERT {\n IF $input % 2 = 0 {\n RETURN true\n } ELSE {\n THROW \"Tried to make a \" + <string>$this + \" but `num` field requires an even number\"\n }\n};\n\nCREATE data:one SET num = 11;\n```\n\nExample:\n```text\n'An error occurred: Tried to make a { id: data:one, num: 11 } but `num` field requires an even number'\n```\n\nExample:\n```text\nDEFINE FIELD created ON resource VALUE time::now() READONLY;\n```\n\nExample:\n```text\nDEFINE FIELD some_info ON TABLE some_table TYPE string;\nINFO FOR TABLE some_table;\n```\n\nExample:\n```text\n{\n\tevents: {},\n\tfields: {\n\t\tinfo: 'DEFINE FIELD info ON some_table TYPE string PERMISSIONS FULL'\n\t},\n\tindexes: {},\n\tlives: {},\n\ttables: {}\n}\n```\n\nExample:\n```text\n/[test]\n\n[[test.results]]\nvalue = \"NONE\"\n\n*/\n\n-- Set permissions for the email field\nDEFINE FIELD email ON TABLE user\n PERMISSIONS\n FOR select WHERE published=true OR user=$auth.id\n FOR update WHERE user=$auth.id OR $auth.role=\"admin\";\n```\n\nExample:\n```text\nDEFINE TABLE person SCHEMAFULL;\n\nDEFINE FIELD first_name\n ON TABLE person TYPE string VALUE string::lowercase($value);\nDEFINE FIELD last_name \n ON TABLE person TYPE string VALUE string::lowercase($value);\nDEFINE FIELD full_name \n ON TABLE person VALUE first_name + ' ' + last_name;\n\n// Creates a `person` with `full_name` of \"bob BOBSON\", not \"bob bobson\"\nCREATE person SET first_name = \"Bob\", last_name = \"BOBSON\";\n```\n\nExample:\n```text\nDEFINE FIELD coffee\n ON TABLE order TYPE \"regular\" | \"large\" | { special_order: string };\n\nCREATE order:good SET coffee = { special_order: \"Venti Quadruple Ristretto Half-Decaf Soy Latte with 4 pumps of sugar-free vanilla syrup\" };\nCREATE order:bad SET coffee = \"small\";\n```\n\nExample:\n```text\n-------- Query --------\n\n[\n\t{\n\t\tcoffee: {\n\t\t\tspecial_order: 'Venti Quadruple Ristretto Half-Decaf Soy Latte with 4 pumps of sugar-free vanilla syrup'\n\t\t},\n\t\tid: order:good\n\t}\n]\n\n-------- Query --------\n\"Found 'small' for field `coffee`, with record `order:bad`, but expected a 'regular' | 'large' | { special_order: string }\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.259Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":29,"totalLines":301,"estimatedTokens":1699}}537{"id":"doc-value_surrealdb-b1bd01a4","source":"documentation","title":"Value | SurrealDB","url":"https://surrealdb.com/docs/reference/java/api/values/value","text":"Example:\n```text\n<T> T get(Class<T> type)\n```\n\nExample:\n```text\npublic class Person {\n public RecordId id;\n public String name;\n public long age;\n}\n\nResponse response = db.query(\"SELECT * FROM person:tobie\");\nValue value = response.take(0);\nPerson person = value.get(Person.class);\n```\n\nExample:\n```text\narray.get(idx)\n```\n\nExample:\n```text\narray.len()\n```\n\nExample:\n```text\narray.iterator()\n```\n\nExample:\n```text\narray.iterator(clazz)\n```\n\nExample:\n```text\narray.synchronizedIterator()\n```\n\nExample:\n```text\narray.synchronizedIterator(clazz)\n```\n\nExample:\n```text\nResponse response = db.query(\"SELECT * FROM person\");\nValue result = response.take(0);\nArray array = result.getArray();\n\nfor (Value item : array) {\n String name = item.getObject().get(\"name\").getString();\n}\n\nIterator<Person> people = array.iterator(Person.class);\nwhile (people.hasNext()) {\n Person person = people.next();\n}\n```\n\nExample:\n```text\nobject.get(key)\n```\n\nExample:\n```text\nobject.len()\n```\n\nExample:\n```text\nobject.iterator()\n```\n\nExample:\n```text\nobject.synchronizedIterator()\n```\n\nExample:\n```text\nResponse response = db.query(\"SELECT * FROM person:tobie\");\nValue result = response.take(0);\nObject obj = result.getObject();\n\nValue name = obj.get(\"name\");\nint fieldCount = obj.len();\n\nfor (Entry entry : obj) {\n String key = entry.getKey();\n Value value = entry.getValue();\n}\n```\n\nExample:\n```text\nentry.getKey()\n```\n\nExample:\n```text\nentry.getValue()\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.262Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":16,"totalLines":110,"estimatedTokens":367}}538{"id":"doc-fix_surrealdb-625f20be","source":"documentation","title":"fix | SurrealDB","url":"https://surrealdb.com/docs/reference/cli/surrealdb-cli/commands/fix","text":"Example:\n```text\nsurreal fix surrealkv://mydatabase.db\n\nsurreal fix rocksdb:somedatabase\n```\n\nExample:\n```text\nsurreal fix --help\n```\n\nExample:\n```text\nFix database storage issues\n\nUsage: surreal fix [OPTIONS] [PATH]\n\nArguments:\n [PATH] Database path used for storing data [env: SURREAL_PATH=] [default: memory]\n\nOptions:\n -h, --help Print help\n\nLogging:\n -l, --log <LOG> The logging level for the command-line tool [env: SURREAL_LOG=] [default: info] [possible values: none, full, error, warn, info, debug, trace]\n --log-format <LOG_FORMAT> The format for terminal log output [env: SURREAL_LOG_FORMAT=] [default: text] [possible values: text, json]\n --log-socket <LOG_SOCKET> Send logs to the specified host:port [env: SURREAL_LOG_SOCKET=]\n --log-file-level <LOG_FILE_LEVEL> Override the logging level for file output [env: SURREAL_LOG_FILE_LEVEL=] [possible values: none, full, error, warn, info, debug, trace]\n --log-otel-level <LOG_OTEL_LEVEL> Override the logging level for OpenTelemetry output [env: SURREAL_LOG_OTEL_LEVEL=] [possible values: none, full, error, warn, info, debug, trace]\n --log-socket-level <LOG_SOCKET_LEVEL> Override the logging level for unix socket output [env: SURREAL_LOG_SOCKET_LEVEL=] [possible values: none, full, error, warn, info, debug, trace]\n --log-socket-format <LOG_SOCKET_FORMAT> The format for socket output [env: SURREAL_LOG_SOCKET_FORMAT=] [default: text] [possible values: text, json]\n --log-file-enabled Whether to enable log file output [env: SURREAL_LOG_FILE_ENABLED=]\n --log-file-path <LOG_FILE_PATH> The directory where log files will be stored [env: SURREAL_LOG_FILE_PATH=] [default: logs]\n --log-file-name <LOG_FILE_NAME> The name of the log file [env: SURREAL_LOG_FILE_NAME=] [default: surrealdb.log]\n --log-file-format <LOG_FILE_FORMAT> The format for log file output [env: SURREAL_LOG_FILE_FORMAT=] [default: text] [possible values: text, json]\n --log-file-rotation <LOG_FILE_ROTATION> The log file rotation interval [env: SURREAL_LOG_FILE_ROTATION=] [default: daily] [possible values: daily, hourly, never]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.284Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":3,"totalLines":40,"estimatedTokens":566}}539{"id":"doc-query_surrealdb-2ce3b303","source":"documentation","title":"Query | SurrealDB","url":"https://surrealdb.com/docs/reference/javascript/api/queries/query","text":"Example:\n```text\nquery.collect<T>(...queryIndexes?)\n```\n\nExample:\n```text\nconst result = await db.query('SELECT * FROM users').collect();\nconsole.log(result); // [{ success: true, result: [...] }]\n```\n\nExample:\n```text\nconst [users, posts] = await db.query<[User[], Post[]]>(`\n SELECT * FROM users;\n SELECT * FROM posts;\n`).collect();\n```\n\nExample:\n```text\nconst [users] = await db.query(`\n SELECT * FROM users;\n SELECT * FROM posts;\n SELECT * FROM comments;\n`).collect<[User[]]>(0); // Only collect first query\n```\n\nExample:\n```text\nconst result = await db.query(\n 'SELECT * FROM users WHERE age > $age',\n { age: 18 }\n).collect();\n```\n\nExample:\n```text\nquery.stream()\n```\n\nExample:\n```text\nfor await (const frame of db.query('SELECT * FROM users').stream()) {\n if (frame.type === 'value') {\n console.log('Received data:', frame.value);\n } else if (frame.type === 'error') {\n console.error('Query error:', frame.error);\n } else if (frame.type === 'done') {\n console.log('Query complete');\n }\n}\n```\n\nExample:\n```text\nlet count = 0;\nfor await (const frame of db.query('SELECT * FROM large_table').stream()) {\n if (frame.type === 'value') {\n await processRecord(frame.value);\n count++;\n }\n}\nconsole.log(`Processed ${count} records`);\n```\n\nExample:\n```text\nquery.responses<T>(...queries?)\n```\n\nExample:\n```text\nconst responses = await db.query(`\n SELECT * FROM users;\n INVALID QUERY;\n SELECT * FROM posts;\n`).responses();\n\nfor (const [index, response] of responses.entries()) {\n if (response.success) {\n console.log(`Query ${index} succeeded:`, response.result);\n } else {\n console.error(`Query ${index} failed:`, response.error.message);\n }\n}\n```\n\nExample:\n```text\nconst responses = await db.query('SELECT * FROM users').responses();\n\nfor (const response of responses) {\n if (response.success && response.stats) {\n console.log('Records scanned:', response.stats.recordsScanned);\n console.log('Duration:', response.stats.duration);\n }\n}\n```\n\nExample:\n```text\nquery.retry(options?)\n```\n\nExample:\n```text\nconst [n] = await db\n .query<[number]>('UPDATE counter:c SET n += 1 RETURN n')\n .retry({ attempts: 3 })\n .collect();\n```\n\nExample:\n```text\nconst result = await db\n .query('UPDATE counter:c SET n += 1 RETURN n')\n .retry({ attempts: 5, retryable: (error) => error.message.includes('conflict') })\n .collect();\n```\n\nExample:\n```text\nquery.json()\n```\n\nExample:\n```text\nconst jsonResults = await db.query('SELECT * FROM users').json().collect();\nconsole.log(typeof jsonResults[0]); // 'string'\n```\n\nExample:\n```text\nimport { Surreal } from 'surrealdb';\n\nconst db = new Surreal();\nawait db.connect('ws://localhost:8000');\n\n// Simple query\nconst result = await db.query('SELECT * FROM users').collect();\nconsole.log(result[0]); // Array of users\n\n// With await (same as .collect())\nconst result = await db.query('SELECT * FROM users');\n```\n\nExample:\n```text\n// Using bindings object\nconst result = await db.query(\n 'SELECT * FROM users WHERE age > $age AND status = $status',\n { age: 18, status: 'active' }\n).collect();\n\n// Using surql template\nimport { surql } from 'surrealdb';\n\nconst minAge = 18;\nconst result = await db.query(\n surql`SELECT * FROM users WHERE age > ${minAge}`\n).collect();\n```\n\nExample:\n```text\nconst [users, posts, comments] = await db.query<[User[], Post[], Comment[]]>(`\n SELECT * FROM users;\n SELECT * FROM posts WHERE published = true;\n SELECT * FROM comments WHERE approved = true;\n`).collect();\n\nconsole.log('Users:', users);\nconsole.log('Posts:', posts);\nconsole.log('Comments:', comments);\n```\n\nExample:\n```text\nconst query = db.query('SELECT * FROM large_table');\n\nfor await (const frame of query.stream()) {\n if (frame.type === 'value') {\n // Process each chunk as it arrives\n await processChunk(frame.value);\n } else if (frame.type === 'error') {\n console.error('Error:', frame.error);\n break;\n }\n}\n```\n\nExample:\n```text\nconst responses = await db.query(`\n CREATE users:john SET name = 'John';\n CREATE users:john SET name = 'Duplicate';\n SELECT * FROM users:john;\n`).responses();\n\nfor (const [i, response] of responses.entries()) {\n if (response.success) {\n console.log(`Query ${i} OK:`, response.result);\n } else {\n console.log(`Query ${i} failed:`, response.error.message);\n }\n}\n```\n\nExample:\n```text\nconst txn = await db.beginTransaction();\n\ntry {\n const [created, updated] = await txn.query<[User, User]>(`\n CREATE users:new SET name = 'New User';\n UPDATE users:john SET updated_at = time::now();\n `).collect();\n \n await txn.commit();\n} catch (error) {\n await txn.cancel();\n}\n```\n\nExample:\n```text\nconst responses = await db.query(`\n SELECT * FROM users WHERE age > 18;\n SELECT count() FROM users GROUP BY status;\n`).responses();\n\nfor (const response of responses) {\n if (response.success && response.stats) {\n console.log('Execution time:', response.stats.duration);\n console.log('Records scanned:', response.stats.recordsScanned);\n console.log('Bytes received:', response.stats.bytesReceived);\n }\n}\n```\n\nExample:\n```text\nconst status = 'active';\nconst minAge = 18;\n\nconst result = await db.query(\n surql`\n LET $active_users = SELECT * FROM users WHERE status = ${status};\n LET $adult_users = SELECT * FROM users WHERE age >= ${minAge};\n RETURN {\n active: $active_users,\n adults: $adult_users,\n both: SELECT * FROM $active_users WHERE age >= ${minAge}\n };\n `\n).collect();\n```\n\nExample:\n```text\n// Batch update with query\nconst migration = await db.query(`\n -- Add new field to all users\n UPDATE users SET new_field = 'default_value';\n \n -- Migrate data format\n UPDATE users SET profile = {\n bio: bio,\n avatar: avatar_url\n };\n \n -- Remove old fields\n UPDATE users UNSET bio, avatar_url;\n`).collect();\n\nconsole.log('Migration complete');\n```\n\nExample:\n```text\nlet totalRecords = 0;\nlet queriesCompleted = 0;\n\nfor await (const frame of db.query('SELECT * FROM users; SELECT * FROM posts;').stream()) {\n if (frame.type === 'value') {\n totalRecords += frame.value.length;\n console.log(`Received ${frame.value.length} records`);\n } else if (frame.type === 'done') {\n queriesCompleted++;\n console.log(`Query ${frame.query} completed`);\n }\n}\n\nconsole.log(`Total: ${totalRecords} records from ${queriesCompleted} queries`);\n```\n\nExample:\n```text\n// Good: Parameterised\nconst result = await db.query(\n 'SELECT * FROM users WHERE name = $name',\n { name: userName }\n).collect();\n\n// Better: Use surql template\nconst result = await db.query(\n surql`SELECT * FROM users WHERE name = ${userName}`\n).collect();\n\n// Avoid: String concatenation (SQL injection risk)\nconst result = await db.query(\n `SELECT * FROM users WHERE name = '${userName}'`\n).collect();\n```\n\nExample:\n```text\n// Good: Check individual responses\nconst responses = await db.query(multiStatementQuery).responses();\n\nfor (const response of responses) {\n if (!response.success) {\n handleError(response.error);\n }\n}\n\n// Simple: Use collect with try-catch\ntry {\n const results = await db.query(query).collect();\n} catch (error) {\n // First error stops execution\n}\n```\n\nExample:\n```text\n// Good: Stream large datasets\nfor await (const frame of db.query('SELECT * FROM large_table').stream()) {\n if (frame.type === 'value') {\n await processChunk(frame.value);\n }\n}\n\n// Avoid: Loading everything into memory\nconst [large] = await db.query('SELECT * FROM large_table').collect();\n// May cause memory issues\n```\n\nExample:\n```text\n// Good: Type-safe results\nconst [users, posts] = await db.query<[User[], Post[]]>(`\n SELECT * FROM users;\n SELECT * FROM posts;\n`).collect();\n\n// Now TypeScript knows the types\nusers[0].name; // string\nposts[0].title; // string\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.295Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":30,"totalLines":363,"estimatedTokens":2009}}540{"id":"doc-fetch_surrealdb-aa04be21","source":"documentation","title":"FETCH | SurrealDB","url":"https://surrealdb.com/docs/reference/query-language/clauses/fetch","text":"Example:\n```text\n-- Using FETCH syntax\nSELECT * FROM person FETCH posts;\n\n-- Using .*\nSELECT *, posts.* FROM person;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.316Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":34}}541{"id":"doc-select_surrealdb-9c09a506","source":"documentation","title":"SELECT | SurrealDB","url":"https://surrealdb.com/docs/reference/query-language/statements/select","text":"Example:\n```text\nSELECT \n VALUE @field | @fields [ AS @alias ] [ OMIT @fields ... ]\n FROM [ ONLY ] @targets\n [ WITH [ NOINDEX | INDEX @indexes ... ]]\n [ WHERE @conditions ]\n [ SPLIT [ ON ] @field, ... ]\n [ \n\t\tGROUP [ ALL | [ BY ] @field, ... ] | \n\t\tORDER [ BY ] RAND() | @field [ COLLATE ] [ NUMERIC ] [ ASC | DESC ], ...\n\t]\n [ LIMIT [ BY ] @limit ]\n [ START [ AT ] @start 0 ]\n [ FETCH @fields ... ]\n [ TIMEOUT @duration ]\n [ TEMPFILES ]\n [ EXPLAIN [ FULL ] ]\n;\n```\n\nExample:\n```text\nCREATE person:tobie SET\n\tname.first = \"Tobie\",\n\taddress = \"1 Bagshot Row\",\n\temail = \"tobie@surrealdb.com\";\n\n-- Select all fields from a table\nSELECT * FROM person;\n\n-- Select specific fields from a table\nSELECT name, address, email FROM person;\n\n-- Select all fields from a specific record\nSELECT * FROM person:tobie;\n\n-- Select specific fields from a specific record\nSELECT name, address, email FROM person:tobie;\n\n-- Select just a single record\n-- Using the ONLY keyword, just an object\n-- for the record in question will be returned.\n-- This, instead of an array with a single object.\nSELECT * FROM ONLY person:tobie;\n```\n\nExample:\n```text\nSELECT * FROM person;\n\n-- Field `address` now shows up as \"string::uppercase\"\n-- name.first structure now flattened into a simple field\nSELECT\n\tname.first AS user_name,\n\tstring::uppercase(address)\nFROM person;\n\n-- \"Morgan Hitchcock\" added to `name` field structure,\n-- `angry_address` for field name instead of automatically\n-- generated \"string::uppercase(address) + '!!!'\"\nSELECT\n\tname.first,\n\t\"Morgan Hitchcock\" AS name.last,\n\tstring::uppercase(address) + \"!!!\" AS angry_address\nFROM person;\n```\n\nExample:\n```text\n-------- Query --------\n\n[\n\t{\n\t\taddress: '1 Bagshot Row',\n\t\temail: 'tobie@surrealdb.com',\n\t\tid: person:tobie,\n\t\tname: {\n\t\t\tfirst: 'Tobie'\n\t\t}\n\t}\n]\n\n-------- Query --------\n\n[\n\t{\n\t\t\"string::uppercase\": '1 BAGSHOT ROW',\n\t\tuser_name: 'Tobie'\n\t}\n]\n\n-------- Query --------\n\n[\n\t{\n\t\tangry_address: '1 BAGSHOT ROW!!!',\n\t\tname: {\n\t\t\tfirst: 'Tobie',\n\t\t\tlast: 'Morgan Hitchcock'\n\t\t}\n\t}\n]\n```\n\nExample:\n```text\n-- Select the values of a single field from a table\nSELECT VALUE name FROM person;\n\n-- Select the values of a single field from a specific record\nSELECT VALUE name FROM person:00e1nc508h9f7v63x72O;\n```\n\nExample:\n```text\n-- Select nested objects/values\nSELECT address.city FROM person;\n\n-- Select all nested array values\n-- note the .* syntax works to select everything from an array or object-like values\nSELECT address.*.coordinates AS coordinates FROM person;\n-- Equivalent to\nSELECT address.coordinates AS coordinates FROM person;\n\n-- Select one item from an array\nSELECT address.coordinates[0] AS latitude FROM person;\n\n-- Select unique values from an array\nSELECT array::distinct(tags) FROM article;\n\n-- Select unique values from a nested array across an entire table\nSELECT array::group(tags) AS tags FROM article GROUP ALL;\n\n-- Use mathematical calculations in a select expression\nSELECT\n\t(( celsius * 1.8 ) + 32) AS fahrenheit\n\tFROM temperature;\n\n-- Return boolean expressions with an alias\nSELECT rating >= 4 as positive FROM review;\n\n-- Select manually generated object structure\nSELECT\n\t{ weekly: false, monthly: true } AS `marketing settings`\nFROM user;\n\n-- Select filtered nested array values\nSELECT address[WHERE active = true] FROM person;\n\n-- Select a person who has reacted to a post using a celebration\n-- Path can be conceptualized as:\n-- person->(reacted_to WHERE type='celebrate')->post\nSELECT * FROM person WHERE ->(reacted_to WHERE type='celebrate')->post;\n\n-- Select a remote field from connected out graph edges\nSELECT ->likes->friend.name AS friends FROM person:tobie;\n\n-- Use the result of a subquery as a returned field\nSELECT *, (SELECT * FROM events\n WHERE type = 'activity' LIMIT 5) AS history FROM user;\n\n-- Restructure objects in a select expression after `.` operator\nSELECT address.{city, country} FROM person;\n```\n\nExample:\n```text\n-- Store the subquery result in a variable and query that result.\nLET $avg_price = (\n\tSELECT math::mean(price) AS avg_price FROM product GROUP ALL\n).avg_price;\n\n-- Find the name of the product where the price is higher than the avg price\nSELECT name FROM product\nWHERE [price] > $avg_price;\n\n-- Use the parent instance's field in a subquery (predefined variable)\nSELECT *, (SELECT * FROM events\n WHERE host == $parent.id) AS hosted_events FROM user;\n```\n\nExample:\n```text\nDELETE person;\nCREATE |person:20000| SET age = (rand::float() * 120).round() RETURN NONE;\n\n-- Assign output to a parameter so the SELECT output is not displayed\nLET $_ = SELECT * FROM person WHERE age > 18 AND age < 65;\nLET $_ = SELECT * FROM person WHERE age in 18..=65;\n```\n\nExample:\n```text\nSELECT * FROM person WHERE age >= 18 AND age <= 65;\nSELECT * FROM person WHERE age IN 18..=65;\n```\n\nExample:\n```text\n-- Select all person records with IDs between the given range\nSELECT * FROM person:1..1000;\n-- Select all records for a particular location, inclusive\nSELECT * FROM temperature:['London', NONE]..=['London', time::now()];\n-- Select all temperature records with IDs less than a maximum value\nSELECT * FROM temperature:..['London', '2022-08-29T08:09:31'];\n-- Select all temperature records with IDs greater than a minimum value\nSELECT * FROM temperature:['London', '2022-08-29T08:03:39']..;\n-- Select all temperature records with IDs between the specified range\nSELECT * FROM temperature:['London', '2022-08-29T08:03:39']..['London', '2022-08-29T08:09:31'];\n```\n\nExample:\n```text\n-- Create 5000 `person` records\nCREATE |person:1..5000| RETURN NONE;\n\n-- Set the starting time\nLET $now = time::now();\n-- Put the output somewhere so it won't clutter the screen\nLET $_ = SELECT * FROM person:1..5000;\n-- Get the elapsed time\nLET $time1 = time::now() - $now;\n\nLET $now = time::now();\nLET $_ = SELECT * FROM person WHERE id >= 1 and id <= 5000;\nLET $time2 = time::now() - $now;\nRETURN [$time1, $time2];\n```\n\nExample:\n```text\nCREATE person:tobie SET\n\tname = 'Tobie',\n\tpassword = '123456',\n\topts.security = 'secure',\n\topts.enabled = true;\nCREATE person:jaime SET\n\tname = 'Jaime',\n\tpassword = 'asdfgh',\n\topts.security = 'secure',\n\topts.enabled = false;\n\nSELECT * FROM person;\n-- Omit the password field and security field in the options object\nSELECT * OMIT password, opts.security FROM person;\n\n-- Using destructuring syntax\nSELECT * OMIT password, opts.{ security, enabled } FROM person;\n```\n\nExample:\n```text\n-- Selects all records from both 'user' and 'admin' tables.\nSELECT * FROM user, admin;\n\n-- Selects all records from the table named in the variable '$table',\n-- but only if the 'admin' field of those records is true.\n-- Equivalent to 'SELECT * FROM user WHERE admin = true'.\nLET $table = \"user\";\nSELECT * FROM type::table($table) WHERE admin = true;\n\n-- Selects a single record from:\n-- * the table named in the variable '$table',\n-- * and the identifier named in the variable '$id'.\n-- This query is equivalent to 'SELECT * FROM user:admin'.\nLET $table = \"user\";\nLET $id = \"admin\";\nSELECT * FROM type::record($table, $id);\n\n-- Selects all records for specific users 'tobie' and 'jaime',\n-- as well as all records for the company 'surrealdb'.\nSELECT * FROM user:tobie, user:jaime, company:surrealdb;\n\n-- Selects records from a list of identifiers. The identifiers can be numerical,\n-- string, or specific records such as 'person:lrym5gur8hzws72ux5fa'.\nSELECT * FROM [3648937, \"test\", person:lrym5gur8hzws72ux5fa, person:4luro9170uwcv1xrfvby];\n\n-- Selects data from an object that includes a 'person' key,\n-- which is associated with a specific person record, and an 'embedded' key set to true.\nSELECT * FROM { person: person:lrym5gur8hzws72ux5fa, embedded: true };\n\n-- This command first performs a subquery, which selects all 'user' records and adds a\n-- computed 'adult' field that is true if the user's 'age' is 18 or older.\n-- The main query then selects all records from this subquery where 'adult' is true.\nSELECT * FROM (SELECT age >= 18 AS adult FROM user) WHERE adult = true;\n```\n\nExample:\n```text\n-- Simple conditional filtering\nSELECT * FROM article WHERE published = true;\n\n-- Conditional filtering based on graph edges\nSELECT * FROM profile WHERE count(->experience->organisation) > 3;\n\n-- Conditional filtering based on graph edge properties\nSELECT * FROM person WHERE ->(reaction WHERE type='celebrate')->post;\n\n-- Conditional filtering with boolean logic\nSELECT * FROM user WHERE (admin AND active) OR owner = true;\n\n-- Select filtered nested array values\nSELECT address[WHERE active = true] FROM person;\n\n-- Select names for 'person' records as long as 'name' is present\n-- and not an empty string \"\"\nSELECT name FROM person WHERE name;\n```\n\nExample:\n```text\nCREATE user SET\n name = \"Name\",\n emails = [\"me@me.com\", \"longer_email@other_service.com\"];\n\n-- Split the results by each value in an array\nSELECT * FROM user SPLIT emails;\n```\n\nExample:\n```text\n[\n\t{\n\t\temails: 'me@me.com',\n\t\tid: user:tr5sxe8iygdco05faoh0,\n\t\tname: 'Name'\n\t},\n\t{\n\t\temails: 'longer_email@other_service.com',\n\t\tid: user:tr5sxe8iygdco05faoh0,\n\t\tname: 'Name'\n\t}\n]\n```\n\nExample:\n```text\n-- Split the results by each value in a nested array\nSELECT * FROM country SPLIT locations.cities;\n\n-- Filter the result of a subquery\nSELECT * FROM (SELECT * FROM person SPLIT loggedin)\n WHERE loggedin > '2023-05-01';\n```\n\nExample:\n```text\n-- Group records by a single field\nSELECT country FROM user GROUP BY country;\n\n-- Group results by a nested field\nSELECT settings.published FROM article GROUP BY settings.published;\n\n-- Group results by multiple fields\nSELECT gender, country, city FROM person GROUP BY gender, country, city;\n\n-- Use an aggregate function to select unique values from a nested array across an entire table\nSELECT array::group(tags) AS tags FROM article GROUP ALL;\n```\n\nExample:\n```text\nINSERT INTO person [\n { gender: \"M\", age: 20, country: \"Japan\" },\n { gender: \"M\", age: 25, country: \"Japan\" },\n { gender: \"F\", age: 23, country: \"US\" },\n { gender: \"F\", age: 30, country: \"US\" },\n { gender: \"F\", age: 25, country: \"Korea\" },\n { gender: \"F\", age: 45, country: \"UK\" },\n];\n\nSELECT\n\tcount() AS total,\n\tmath::mean(age) AS average_age,\n\tgender,\n\tcountry\nFROM person\nGROUP BY gender, country;\n\n-- Get the total number of records in a table\nSELECT count() AS number_of_records FROM person GROUP ALL;\n```\n\nExample:\n```text\n-------- Query --------\n\n[\n\t{\n\t\taverage_age: 25,\n\t\tcountry: 'Korea',\n\t\tgender: 'F',\n\t\ttotal: 1\n\t},\n\t{\n\t\taverage_age: 45,\n\t\tcountry: 'UK',\n\t\tgender: 'F',\n\t\ttotal: 1\n\t},\n\t{\n\t\taverage_age: 26,\n\t\tcountry: 'US',\n\t\tgender: 'F',\n\t\ttotal: 2\n\t},\n\t{\n\t\taverage_age: 22,\n\t\tcountry: 'Japan',\n\t\tgender: 'M',\n\t\ttotal: 2\n\t}\n]\n\n-------- Query --------\n\n[\n\t{\n\t\tnumber_of_records: 6\n\t}\n]\n```\n\nExample:\n```text\n-- count() with explicit GROUP ALL\nSELECT count() AS number_of_records FROM person GROUP ALL;\n\n-- From 3.2.5, equivalent when the projection is only bare count()\nSELECT count() AS number_of_records FROM person;\n```\n\nExample:\n```text\nSELECT * FROM person SPLIT name GROUP BY name;\n```\n\nExample:\n```text\n'Parse error: SPLIT and GROUP are mutually exclusive\n --> [6:22]\n |\n6 | SELECT * FROM person SPLIT name GROUP BY name;\n | ^^^^^^^^^^ SPLIT cannot be used with GROUP\n --> [6:33]\n |\n6 | SELECT * FROM person SPLIT name GROUP BY name;\n | ^^^^^^^^^^^^^ GROUP cannot be used with SPLIT\n'\n```\n\nExample:\n```text\nCREATE user SET\n name = \"Jack\",\n emails = [\"my@firstemail.com\", \"another@builder.com\"],\n age = 37;\n\nCREATE user SET\n name = \"Ellen\",\n emails = [\"ruler@forest.com\", \"wife@tom.com\"],\n age = 50;\n\nCREATE user SET\n name = \"Phillip\",\n emails = [\"prior@kingsbridge.com\", \"boss@remigius.com\"],\n age = 50;\n\nSELECT age, emails FROM (SELECT * FROM user SPLIT emails) GROUP BY age;\n\nSELECT age, emails\nFROM (\n SELECT age, array::group(emails) AS emails\n FROM user\n GROUP BY age\n)\nSPLIT emails;\n```\n\nExample:\n```text\nDEFINE INDEX person_count ON person COUNT;\nSELECT count() AS number_of_records FROM person GROUP ALL;\n```\n\nExample:\n```text\nDEFINE TABLE person SCHEMALESS;\nDEFINE TABLE person_stats AS\n\tSELECT\n\t\tcount(),\n\t\tage,\n\t\tmath::stddev(score) AS score_stddev,\n\t\tmath::variance(score) AS score_variance\n\tFROM person\n\tGROUP BY age;\n\nINSERT INTO person [\n { id: person:alice, age: 25, score: 80 },\n { id: person:alices_rival, age: 25, score: 88 },\n { id: person:bob, age: 24, score: 90 },\n { id: person:bobs_rival, age: 24, score: 99 },\n { id: person:charlie, age: 23, score: 70 },\n { id: person:charlies_rival, age: 23, score: 77 }\n];\n\nSELECT * FROM person_stats WHERE age >= 24;\n```\n\nExample:\n```text\n[\n\t{\n\t\tage: 24,\n\t\tcount: 2,\n\t\tid: person_stats:[\n\t\t\t24\n\t\t],\n\t\tscore_stddev: 6.363961030678927719607599259dec,\n\t\tscore_variance: 40.50dec\n\t},\n\t{\n\t\tage: 25,\n\t\tcount: 2,\n\t\tid: person_stats:[\n\t\t\t25\n\t\t],\n\t\tscore_stddev: 5.656854249492380195206754897dec,\n\t\tscore_variance: 32dec\n\t}\n]\n```\n\nExample:\n```text\n-- Return only event and subject, ordered by a field that is not selected\nSELECT event, subject FROM audit_log ORDER BY at DESC;\n```\n\nExample:\n```text\n-- Order records randomly\nSELECT * FROM user ORDER BY rand();\n\n-- Order records descending by a single field\nSELECT * FROM song ORDER BY rating DESC;\n\n-- Order records by multiple fields independently\nSELECT * FROM song ORDER BY artist ASC, rating DESC;\n\n-- Order text fields with Unicode collation\nSELECT * FROM article ORDER BY title COLLATE ASC;\n\n-- Order text fields with which include numeric values\nSELECT * FROM article ORDER BY title NUMERIC ASC;\n```\n\nExample:\n```text\n-- Select only the top 50 records from the person table\nSELECT * FROM person LIMIT 50;\n```\n\nExample:\n```text\n-- Start at record 50 and select the following 50 records\nSELECT * FROM user LIMIT 50 START 50;\n```\n\nExample:\n```text\n-- Record IDs are unique so guaranteed to be no more than 1\nSELECT * FROM ONLY person:jamie;\n\n-- Error because no guarantee that this will return a single record\nSELECT * FROM ONLY person WHERE name = \"Jaime\";\n\n-- Add `LIMIT 1` to ensure that only up to one record will be returned\nSELECT * FROM ONLY person WHERE name = \"Jaime\" LIMIT 1;\n```\n\nExample:\n```text\n-- Select the first 5 records from the array\nSELECT * FROM [1,2,3,4,5,6,7,8,9,10] LIMIT 5 START 4;\n```\n\nExample:\n```text\n[\n\t5,\n\t6,\n\t7,\n\t8,\n\t9\n]\n```\n\nExample:\n```text\n-- Select all the review information\n-- and the artist's email from the artist table\nSELECT *, artist.email FROM review FETCH artist;\n\n-- Select all the article information\n-- only if the author's age (from the author table) is under 30.\nSELECT * FROM article WHERE author.age < 30 FETCH author;\n```\n\nExample:\n```text\n-- Cancel this conditional filtering based on graph edge properties\n-- if it's not finished within 5 seconds\nSELECT * FROM person\n WHERE ->knows->person->(knows\n WHERE influencer = true) TIMEOUT 5s;\n```\n\nExample:\n```text\n-- Select every person and order them by name using temporary files rather than memory.\nSELECT * FROM person ORDER BY name TEMPFILES;\n```\n\nExample:\n```text\nCREATE person:tobie SET\n\tname = \"Tobie\",\n\taddress = \"1 Bagshot Row\",\n\temail = \"tobie@surrealdb.com\";\n\nSELECT * FROM person WHERE email='tobie@surrealdb.com' EXPLAIN;\nSELECT * FROM person WHERE email='tobie@surrealdb.com' EXPLAIN FULL;\n```\n\nExample:\n```text\n-------- Query --------\n\n[\n\t{\n\t\tdetail: {\n\t\t\ttable: 'person'\n\t\t},\n\t\toperation: 'Iterate Table'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t}\n]\n\n-------- Query --------\n\n[\n\t{\n\t\tdetail: {\n\t\t\ttable: 'person'\n\t\t},\n\t\toperation: 'Iterate Table'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t},\n\t{\n\t\tdetail: {\n\t\t\tcount: 1\n\t\t},\n\t\toperation: 'Fetch'\n\t}\n]\n```\n\nExample:\n```text\nDEFINE INDEX fast_email ON TABLE person FIELDS email;\n\nCREATE person:tobie SET\n\tname = \"Tobie\",\n\taddress = \"1 Bagshot Row\",\n\temail = \"tobie@surrealdb.com\";\n\nSELECT * FROM person WHERE email='tobie@surrealdb.com' EXPLAIN;\nSELECT * FROM person WHERE email='tobie@surrealdb.com' EXPLAIN FULL;\n```\n\nExample:\n```text\n-------- Query --------\n\n[\n\t{\n\t\tdetail: {\n\t\t\tplan: {\n\t\t\t\tindex: 'fast_email',\n\t\t\t\toperator: '=',\n\t\t\t\tvalue: 'tobie@surrealdb.com'\n\t\t\t},\n\t\t\ttable: 'person'\n\t\t},\n\t\toperation: 'Iterate Index'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t}\n]\n\n-------- Query --------\n\n[\n\t{\n\t\tdetail: {\n\t\t\tplan: {\n\t\t\t\tindex: 'fast_email',\n\t\t\t\toperator: '=',\n\t\t\t\tvalue: 'tobie@surrealdb.com'\n\t\t\t},\n\t\t\ttable: 'person'\n\t\t},\n\t\toperation: 'Iterate Index'\n\t},\n\t{\n\t\tdetail: {\n\t\t\ttype: 'Memory'\n\t\t},\n\t\toperation: 'Collector'\n\t},\n\t{\n\t\tdetail: {\n\t\t\tcount: 1\n\t\t},\n\t\toperation: 'Fetch'\n\t}\n]\n```\n\nExample:\n```text\n-- forces the query planner to use the specified index(es):\nSELECT * FROM person\nWITH INDEX ft_email\nWHERE\n\temail = 'tobie@surrealdb.com' AND\n\tcompany = 'SurrealDB';\n\n-- forces the usage of the table iterator\nSELECT name FROM person WITH NOINDEX WHERE job = 'engineer'\n AND gender = 'm';\n```\n\nExample:\n```text\nSELECT * FROM ONLY person:john;\n```\n\nExample:\n```text\n-- Fails\nSELECT * FROM ONLY table_name;\n-- Succeeds\nSELECT * FROM ONLY table_name LIMIT 1;\n```\n\nExample:\n```text\n# Start with a versioned in-memory datastore with a root user\nsurreal start --user root --pass secret \"mem://?versioned=true\"\n\n# Or disable authentication for quick anonymous access\nsurreal start --unauthenticated \"mem://?versioned=true\"\n\n# Start with a versioned RocksDB datastore with a root user\nsurreal start --user root --pass secret \"rocksdb://my_db?versioned=true\"\n```\n\nExample:\n```text\nCREATE user:john SET name = 'John';\n\n-- user:john did not exist two days ago, returns empty array\nSELECT * FROM user:john VERSION time::now() - 2d;\n\n-- Slee for five seconds\nSLEEP 5s;\n\n-- Returns user:john as the record existed three seconds ago\nSELECT * FROM user:john VERSION time::now() - 3s;\n```\n\nExample:\n```text\nDEFINE FUNCTION fn::yesterday() { time::now() - 1d };\n\nCREATE user:john SET name = 'John';\n\nSELECT * FROM user VERSION fn::yesterday();\n```\n\nExample:\n```text\n-- Note: 1..4 used to be inclusive until SurrealDB 3.0.0\n-- Now creates 1 up to but not including 4\nCREATE |person:1..4|;\n\nRELATE person:1->likes->person:2 SET like_strength = 20, know_in_person = true;\nRELATE person:1->likes->person:3 SET like_strength = 5, know_in_person = false;\nRELATE person:2->likes->person:1 SET like_strength = 10, know_in_person = true;\nRELATE person:2->likes->person:3 SET like_strength = 12, know_in_person = false;\nRELATE person:3->likes->person:1 SET like_strength = 2, know_in_person = false;\nRELATE person:3->likes->person:2 SET like_strength = 9, know_in_person = false;\n\nSELECT ->likes AS likes FROM person;\nSELECT ->(SELECT like_strength FROM likes) AS likes FROM person;\nSELECT ->(SELECT like_strength FROM likes\n WHERE like_strength > 10) AS likes FROM person;\nSELECT ->(likes WHERE like_strength > 10) AS likes FROM person;\nSELECT ->(SELECT like_strength, know_in_person\n FROM likes ORDER BY like_strength DESC) AS likes\n FROM person;\nSELECT ->(SELECT count() as count, know_in_person\n FROM likes GROUP BY know_in_person) AS likes\n FROM person;\nSELECT ->(likes LIMIT 1) AS likes FROM person;\nSELECT ->(likes START 1) AS likes FROM person;\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.320Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":48,"totalLines":836,"estimatedTokens":4803}}542{"id":"doc-vector_surrealdb-981dbffd","source":"documentation","title":"Vector | SurrealDB","url":"https://surrealdb.com/docs/reference/query-language/functions/database-functions/vector","text":"Example:\n```text\nvector::add(array, $other: array) -> array\n```\n\nExample:\n```text\nRETURN vector::add([1, 2, 3], [1, 2, 3]);\n\n-- [2, 4, 6]\n```\n\nExample:\n```text\nvector::angle(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::angle([5, 10, 15], [10, 5, 20]);\n\n-- 0.36774908225917935f\n```\n\nExample:\n```text\nvector::cross(array, $other: array) -> array\n```\n\nExample:\n```text\nRETURN vector::cross([1, 2, 3], [4, 5, 6]);\n\n[-3, 6, -3]\n```\n\nExample:\n```text\nvector::divide(array, $other: array) -> array\n```\n\nExample:\n```text\nRETURN vector::divide([4, 6], [2, 3]);\n\n-- [2, 2]\n```\n\nExample:\n```text\nvector::dot(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::dot([1, 2, 3], [1, 2, 3]);\n\n-- 14\n```\n\nExample:\n```text\nvector::magnitude(array) -> number\n```\n\nExample:\n```text\nRETURN vector::magnitude([ 1, 2, 3, 3, 3, 4, 5 ]);\n\n-- 8.54400374531753f\n```\n\nExample:\n```text\nvector::multiply(array, $other: array) -> array\n```\n\nExample:\n```text\nRETURN vector::multiply([1, 2, 3], [1, 2, 3]);\n\n-- [1, 4, 9]\n```\n\nExample:\n```text\nvector::normalize(array) -> array\n```\n\nExample:\n```text\nRETURN vector::normalize([ 4, 3 ]);\n\n-- [0.8f, 0.6f]\n```\n\nExample:\n```text\nvector::project(array, $other: array) -> array\n```\n\nExample:\n```text\nRETURN vector::project([1, 2, 3], [4, 5, 6]);\n\n-- [1.6623376623376624f, 2.077922077922078f, 2.4935064935064934f]\n```\n\nExample:\n```text\nvector::scale(array, $other: number) -> array\n```\n\nExample:\n```text\nRETURN vector::scale([3, 1, 5, -3, 7, 2], 5);\n\n-- [15,\t5, 25, -15, 35, 10]\n```\n\nExample:\n```text\nvector::sum(array<array<number>>) -> array | none\n```\n\nExample:\n```text\nRETURN vector::sum([[1, 2, 3], [4, 5, 6]]);\n-- [5, 7, 9]\n\nRETURN vector::sum([[1, 2], [3, 4], [5, 6]]);\n-- [9, 12]\n\nRETURN vector::sum([[1.5, 2.5], [1, 1]]);\n-- [2.5f, 3.5f]\n\nRETURN vector::sum([[], []]);\n-- []\n\nRETURN vector::sum([]);\n-- NONE\n\nRETURN [[1, 2], [3, 4]].vector_sum();\n-- [4, 6]\n```\n\nExample:\n```text\nCREATE engagement:1 SET user = 'alice', weight = 2, embedding = [1, 0, 0] RETURN NONE;\nCREATE engagement:2 SET user = 'alice', weight = 3, embedding = [0, 1, 0] RETURN NONE;\nCREATE engagement:3 SET user = 'bob', weight = 1, embedding = [0, 0, 4] RETURN NONE;\n\nSELECT\n\tuser,\n\tvector::scale(\n\t\tvector::sum(vector::scale(embedding, weight)),\n\t\t1.0 / math::sum(weight)\n\t) AS interest\nFROM engagement\nGROUP BY user\nORDER BY user;\n\n-- alice → [0.4f, 0.6000000000000001f, 0f]\n-- bob → [0f, 0f, 4f]\n\nSELECT user, vector::sum(embedding) AS total\nFROM engagement\nGROUP BY user\nORDER BY user;\n\n-- alice → [1, 1, 0]\n-- bob → [0, 0, 4]\n```\n\nExample:\n```text\nvector::subtract(array, $other: array) -> array\n```\n\nExample:\n```text\nRETURN vector::subtract([4, 5, 6], [3, 2, 1]);\n\n-- [1, 3, 5]\n```\n\nExample:\n```text\nvector::distance::chebyshev(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::distance::chebyshev([2, 4, 5, 3, 8, 2], [3, 1, 5, -3, 7, 2]);\n\n-- 6f\n```\n\nExample:\n```text\nvector::distance::euclidean(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::distance::euclidean([10, 50, 200], [400, 100, 20]);\n\n-- 432.43496620879307f\n```\n\nExample:\n```text\nvector::distance::hamming(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::distance::hamming([1, 2, 2], [1, 2, 3]);\n\n-- 1\n```\n\nExample:\n```text\nvector::distance::knn() -> number\n```\n\nExample:\n```text\nCREATE pts:1 SET point = [1,2,3,4];\nCREATE pts:2 SET point = [4,5,6,7];\nCREATE pts:3 SET point = [8,9,10,11];\nSELECT id, vector::distance::knn() AS dist FROM pts\n WHERE point <|2,EUCLIDEAN|> [2,3,4,5];\n```\n\nExample:\n```text\n[\n\t\t\t{\n\t\t\t\tid: pts:1,\n\t\t\t\tdist: 2f\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: pts:2,\n\t\t\t\tdist: 4f\n\t\t\t}\n]\n```\n\nExample:\n```text\nvector::distance::manhattan(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::distance::manhattan([10, 20, 15, 10, 5], [12, 24, 18, 8, 7]);\n\n-- 13\n```\n\nExample:\n```text\nvector::distance::mahalanobis(array, $other: array, $covariance: array<array<number>>) -> number\n```\n\nExample:\n```text\nRETURN vector::distance::mahalanobis([1, 2], [3, 4], [[1, 0], [0, 1]]);\n-- 2.8284271247461903f (same as euclidean for identity covariance)\n\nRETURN vector::distance::mahalanobis([1, 2], [3, 4], [[2, 1], [1, 2]]);\n-- 1.632993161855452f\n\nRETURN vector::distance::mahalanobis([1, 2], [1, 2], [[2, 1], [1, 2]]);\n-- 0f\n```\n\nExample:\n```text\nvector::distance::minkowski(array, $other: array, $p_value: number) -> number\n```\n\nExample:\n```text\nRETURN vector::distance::minkowski([10, 20, 15, 10, 5], [12, 24, 18, 8, 7], 3);\n\n-- 4.862944131094279f\n```\n\nExample:\n```text\nvector::similarity::cosine(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::similarity::cosine([10, 50, 200], [400, 100, 20]);\n\n-- 0.15258215962441316f\n```\n\nExample:\n```text\nvector::similarity::jaccard(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::similarity::jaccard([0,1,2,5,6], [0,2,3,4,5,7,9]);\n-- 0.3333333333333333f\n\nRETURN vector::similarity::jaccard([1, 2], [2, 2]);\n-- 0.5f (sets {1,2} and {2}; intersection 1, union 2)\n```\n\nExample:\n```text\nvector::similarity::pearson(array, array) -> number\n```\n\nExample:\n```text\nRETURN vector::similarity::pearson([1,2,3], [1,5,7]);\n\n-- 0.9819805060619659f\n```\n\nExample:\n```text\nvector::similarity::spearman(array, $other: array) -> number\n```\n\nExample:\n```text\nRETURN vector::similarity::spearman([1, 2, 3], [1, 10, 100]);\n-- 1f\n\nRETURN vector::similarity::spearman([1, 2, 3], [3, 2, 1]);\n-- -1f\n\nRETURN vector::similarity::spearman([1, 2, 2, 3], [1, 2, 3, 4]);\n-- 0.9486832980505138f (ties use average ranks)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.336Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":48,"totalLines":347,"estimatedTokens":1390}}543{"id":"doc-datetime_surrealdb-182aa54f","source":"documentation","title":"Datetime | SurrealDB","url":"https://surrealdb.com/docs/reference/python/api/values/datetime","text":"Example:\n```text\nfrom surrealdb import Datetime\n```\n\nExample:\n```text\nDatetime(dt)\n```\n\nExample:\n```text\ndt = Datetime(\"2025-01-15T10:30:00Z\")\n```\n\nExample:\n```text\ndt = Datetime(\"2025-06-01T14:00:00.000+02:00\")\n```\n\nExample:\n```text\ndt = Datetime(\"2025-01-15T10:30:00Z\")\nprint(dt.dt) # \"2025-01-15T10:30:00Z\"\n```\n\nExample:\n```text\nfrom surrealdb import Surreal, RecordID, Datetime\n\ndb = Surreal(\"ws://localhost:8000\")\ndb.connect()\ndb.use(\"my_ns\", \"my_db\")\ndb.signin({\"username\": \"root\", \"password\": \"root\"})\n\ndb.create(\"events\", {\n \"title\": \"Launch\",\n \"scheduled_at\": Datetime(\"2025-06-01T09:00:00Z\"),\n})\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.356Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":42,"estimatedTokens":158}}544{"id":"doc-use_surrealdb-10c1bc84","source":"documentation","title":"USE | SurrealDB","url":"https://surrealdb.com/docs/reference/query-language/statements/use","text":"Example:\n```text\nUSE [ NS @ns ] [ DB @db ];\n```\n\nExample:\n```text\nUSE NS test; -- Switch to the 'main' Namespace\n```\n\nExample:\n```text\nUSE DB test; -- Switch to the 'main' Database\n```\n\nExample:\n```text\nUSE NS test DB test; -- Switch to the 'main' Namespace and 'main' Database\n```\n\nExample:\n```text\nINFO FOR NS; -- Check the current Namespace\n```\n\nExample:\n```text\nINFO FOR DB; -- Check the current Database\n```\n\nExample:\n```text\nUSE NS ns; -- Output: NONE (success)\n(INFO FOR ROOT).namespaces; -- Output: { ns: 'DEFINE NAMESPACE ns' }\n```\n\nExample:\n```text\nUSE NS ns; -- Output: \"The namespace 'ns' does not exist\"\nDEFINE NS ns;\nUSE NS ns; -- Now defined, no error\n```\n\nExample:\n```text\nUSE NS main;\n```\n\nExample:\n```text\n{ database: 'main', namespace: 'main' }\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.379Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":10,"totalLines":54,"estimatedTokens":196}}545{"id":"doc-keywords_and_bm25_spectron-10b89488","source":"documentation","title":"Keywords and BM25 | Spectron","url":"https://surrealdb.com/docs/spectron/agent-memory/retrieve/keywords-and-bm25","text":"Example:\n```text\nfrom surrealdb import Spectron\n\nmemory = Spectron(context=\"acme-prod\", api_key=os.environ[\"SPECTRON_API_KEY\"])\n\nkeywords = await memory.documents.keywords.for_document(doc.id)\nfor kw in keywords:\n print(kw.text, kw.score)\n# RETURN POLICY 1.8\n# UNOPENED ITEMS 1.5\n# 30 DAYS 1.2\n# PURCHASE DATE 1.1\n# INTERNATIONAL ORDERS 0.9\n```\n\nExample:\n```text\nimport { Spectron } from \"@surrealdb/spectron\";\n\nconst memory = new Spectron({ context: \"acme-prod\", apiKey: process.env.SPECTRON_API_KEY });\n\nconst keywords = await memory.documents.keywords.forDocument(doc.id);\nfor (const kw of keywords) {\n console.log(kw.text, kw.score);\n}\n```\n\nExample:\n```text\n# Keywords that appear in at least 3 documents, sorted by frequency\nkeywords = await memory.documents.keywords.list(\n min_document_count=3,\n sort=\"-document_count\",\n)\nfor kw in keywords:\n print(kw.text, kw.document_count)\n```\n\nExample:\n```text\ndetail = await memory.documents.keywords.get(\"RETURN POLICY\")\nprint(detail.text) # RETURN POLICY\nprint(detail.score) # 1.8\nprint(detail.document_count) # 12\nprint([d.id for d in detail.documents])\n```\n\nExample:\n```text\nsimilar = await memory.documents.keywords.search(\"refund policies\", k=10)\nfor kw in similar:\n print(kw.text, kw.similarity)\n# RETURN POLICY 0.94\n# REFUND WINDOW 0.91\n# EXCHANGE POLICY 0.88\n```\n\nExample:\n```text\n# Pure BM25 – best for exact-term matching\nhits = await memory.documents.query(\n query=\"MLWK3LL/A MacBook Pro\",\n mode=\"bm25\",\n k=10,\n scope=[\"org/acme\"],\n)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:45.395Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":70,"estimatedTokens":400}}546{"id":"doc-grid_template_columns_flexbox_grid_tailwind_css-84785aea","source":"documentation","title":"grid-template-columns - Flexbox & Grid - Tailwind CSS","url":"https://tailwindcss.com/docs/grid-template-columns","text":"Example:\n```text\n<div class=\"grid grid-cols-4 gap-4\"> <div>01</div> <!-- ... --> <div>09</div></div>\n```\n\nExample:\n```text\n<div class=\"grid grid-cols-4 gap-4\"> <div>01</div> <!-- ... --> <div>05</div> <div class=\"col-span-3 grid grid-cols-subgrid gap-4\"> <div class=\"col-start-2\">06</div> </div></div>\n```\n\nExample:\n```text\n<div class=\"grid-cols-[200px_minmax(900px,_1fr)_100px] ...\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"grid-cols-(--my-grid-cols) ...\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"grid grid-cols-1 md:grid-cols-6 ...\"> <!-- ... --></div>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.149Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":5,"totalLines":26,"estimatedTokens":153}}547{"id":"doc-max_width_sizing_tailwind_css-fef00972","source":"documentation","title":"max-width - Sizing - Tailwind CSS","url":"https://tailwindcss.com/docs/max-width","text":"Example:\n```text\n<div class=\"w-full max-w-96 ...\">max-w-96</div><div class=\"w-full max-w-80 ...\">max-w-80</div><div class=\"w-full max-w-64 ...\">max-w-64</div><div class=\"w-full max-w-48 ...\">max-w-48</div><div class=\"w-full max-w-40 ...\">max-w-40</div><div class=\"w-full max-w-32 ...\">max-w-32</div><div class=\"w-full max-w-24 ...\">max-w-24</div>\n```\n\nExample:\n```text\n<div class=\"w-full max-w-9/10 ...\">max-w-9/10</div><div class=\"w-full max-w-3/4 ...\">max-w-3/4</div><div class=\"w-full max-w-1/2 ...\">max-w-1/2</div><div class=\"w-full max-w-1/3 ...\">max-w-1/3</div>\n```\n\nExample:\n```text\n<div class=\"max-w-md ...\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"container\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"container mx-auto px-4\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"max-w-[220px] ...\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"max-w-(--my-max-width) ...\"> <!-- ... --></div>\n```\n\nExample:\n```text\n<div class=\"max-w-sm md:max-w-lg ...\"> <!-- ... --></div>\n```\n\nExample:\n```text\n@theme { --spacing: 1px; }\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.154Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":9,"totalLines":46,"estimatedTokens":272}}548{"id":"doc-fill_svg_tailwind_css-62ee0211","source":"documentation","title":"fill - SVG - Tailwind CSS","url":"https://tailwindcss.com/docs/fill","text":"Example:\n```text\n<svg class=\"fill-blue-500 ...\"> <!-- ... --></svg>\n```\n\nExample:\n```text\n<button class=\"bg-white text-indigo-600 hover:bg-indigo-600 hover:text-white ...\"> <svg class=\"size-5 fill-current ...\"> <!-- ... --> </svg> Check for updates</button>\n```\n\nExample:\n```text\n<svg class=\"fill-[#243c5a] ...\"> <!-- ... --></svg>\n```\n\nExample:\n```text\n<svg class=\"fill-(--my-fill-color) ...\"> <!-- ... --></svg>\n```\n\nExample:\n```text\n<svg class=\"fill-cyan-500 md:fill-cyan-700 ...\"> <!-- ... --></svg>\n```\n\nExample:\n```text\n@theme { --color-regal-blue: #243c5a; }\n```\n\nExample:\n```text\n<svg class=\"fill-regal-blue\"> <!-- ... --></svg>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.167Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":7,"totalLines":36,"estimatedTokens":167}}549{"id":"doc-font_weight_typography_tailwind_css-b9c33b3a","source":"documentation","title":"font-weight - Typography - Tailwind CSS","url":"https://tailwindcss.com/docs/font-weight","text":"Example:\n```text\n<p class=\"font-light ...\">The quick brown fox ...</p><p class=\"font-normal ...\">The quick brown fox ...</p><p class=\"font-medium ...\">The quick brown fox ...</p><p class=\"font-semibold ...\">The quick brown fox ...</p><p class=\"font-bold ...\">The quick brown fox ...</p>\n```\n\nExample:\n```text\n<p class=\"font-[1000] ...\"> Lorem ipsum dolor sit amet...</p>\n```\n\nExample:\n```text\n<p class=\"font-(weight:--my-font-weight) ...\"> Lorem ipsum dolor sit amet...</p>\n```\n\nExample:\n```text\n<p class=\"font-normal md:font-bold ...\"> Lorem ipsum dolor sit amet...</p>\n```\n\nExample:\n```text\n@theme { --font-weight-extrablack: 1000; }\n```\n\nExample:\n```text\n<div class=\"font-extrablack\"> <!-- ... --></div>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.191Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":6,"totalLines":31,"estimatedTokens":183}}550{"id":"doc-font_variant_numeric_typography_tailwind_css-60f39cff","source":"documentation","title":"font-variant-numeric - Typography - Tailwind CSS","url":"https://tailwindcss.com/docs/font-variant-numeric","text":"Example:\n```text\n<p class=\"ordinal ...\">1st</p>\n```\n\nExample:\n```text\n<p class=\"slashed-zero ...\">0</p>\n```\n\nExample:\n```text\n<p class=\"lining-nums ...\">1234567890</p>\n```\n\nExample:\n```text\n<p class=\"oldstyle-nums ...\">1234567890</p>\n```\n\nExample:\n```text\n<p class=\"proportional-nums ...\">12121</p><p class=\"proportional-nums ...\">90909</p>\n```\n\nExample:\n```text\n<p class=\"tabular-nums ...\">12121</p><p class=\"tabular-nums ...\">90909</p>\n```\n\nExample:\n```text\n<p class=\"diagonal-fractions ...\">1/2 3/4 5/6</p>\n```\n\nExample:\n```text\n<p class=\"stacked-fractions ...\">1/2 3/4 5/6</p>\n```\n\nExample:\n```text\n<dl class=\"...\"> <dt class=\"...\">Subtotal</dt> <dd class=\"text-right slashed-zero tabular-nums ...\">$100.00</dd> <dt class=\"...\">Tax</dt> <dd class=\"text-right slashed-zero tabular-nums ...\">$14.50</dd> <dt class=\"...\">Total</dt> <dd class=\"text-right slashed-zero tabular-nums ...\">$114.50</dd></dl>\n```\n\nExample:\n```text\n<p class=\"slashed-zero tabular-nums md:normal-nums ...\"> <!-- ... --></p>\n```\n\nExample:\n```text\n<p class=\"proportional-nums md:tabular-nums ...\"> Lorem ipsum dolor sit amet...</p>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:47.193Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":11,"totalLines":56,"estimatedTokens":283}}551{"id":"doc-sandbox_firewall-275732f2","source":"documentation","title":"Sandbox firewall","url":"https://vercel.com/docs/sandbox/concepts/firewall","text":"Cross-link (/docs/sandbox/concepts/firewall)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesConcepts — Learn how Vercel Sandboxes provide on-demand, isolated compute environments for running untrusted code, testing applicatRuntimes — Detailed specifications for the Vercel Sandbox environment.Sandbox — Vercel Sandbox allows you to run arbitrary code in isolated, ephemeral Linux VMs.Examples — Task-oriented examples for common Vercel Sandbox operations in TypeScript and Python.Update network policyPrerequisitesSandbox — Vercel Sandbox allows you to run arbitrary code in isolated, ephemeral Linux VMs.Concepts — Learn how Vercel Sandboxes provide on-demand, isolated compute environments for running untrusted code, testing applicatThis page links to (5)Account Management — Learn how to manage your Vercel account and team members.Glossary — Learn about the terms and concepts used in Vercel's products and documentation.General Settings — Configure basic settings for your Vercel project, including the project name, build and development settings, root direcConcepts — Learn how Vercel Sandboxes provide on-demand, isolated compute environments for running untrusted code, testing applicatPersistence — Sandboxes automatically save their filesystem state when stopped and restore it when resumed. No manual snapshot managemPages that link here (7)By (1) · vercel-kb (1) · vercel-docs (5)From eveSecurity Model — eve's trust boundaries, where secrets live, how credentials reach hosts, and what fails closed by default.From vercel-kbHow to run a multi-step research agent on Vercel — An end-to-end architecture for production research agents on Vercel using Sandbox, Workflows, and AI Gateway with isolatFrom vercel-docsGlossary — Learn about the terms and concepts used in Vercel's products and documentation.Concepts — Learn how Vercel Sandboxes provide on-demand, isolated compute environments for running untrusted code, testing applicatRuntimes — Detailed specifications for the Vercel Sandbox environment.Mount Remote Storage — Mount an external object store such as Amazon S3 into a Vercel Sandbox with a FUSE driver, so code reads and writes remoJS SDK Reference — A comprehensive reference for the Vercel Sandbox JavaScript SDK, which lets you run code in a secure, isolated environme\n\nExample:\n```text\nimport { Sandbox } from '@vercel/sandbox';\n \n// Sandbox has access to everything, with credential brokering for two specific domains.\nconst sandbox = await Sandbox.create({\n networkPolicy: {\n allow: {\n \"ai-gateway.vercel.sh\": [{\n transform: [{ headers: { \"Authorization\": `Bearer ${process.env.AI_GATEWAY_TOKEN}` } }],\n }],\n \"*.github.com\": [{\n transform: [{ headers: { \"Authorization\": `Bearer ${process.env.GITHUB_TOKEN}` } }],\n }],\n // Allow traffic to all other domains. If unset only defined ones are reachable.\n \"*\": []\n }\n }\n});\n \n// Sandbox no longer has Internet or secure-compute access.\n// Credential brokering is deactivated.\nawait sandbox.update({ networkPolicy: 'deny-all' });\n \n// Reallow traffic only to ai-gateway, and use the same key.\nawait sandbox.update({\n networkPolicy: {\n allow: {\n \"ai-gateway.vercel.sh\": [{\n transform: [{ headers: { \"Authorization\": `Bearer ${process.env.AI_GATEWAY_TOKEN}` } }],\n }],\n },\n },\n});\n```\n\nExample:\n```text\nimport { Sandbox } from '@vercel/sandbox';\n \n// Sandbox has access to everything, with a proxy forwarding for *.github.com.\nconst sandbox = await Sandbox.create({\n networkPolicy: {\n allow: {\n \"*.github.com\": [{\n forwardURL: \"https://my-proxy.vercel.app/github\"\n }],\n // Allow traffic to all other domains. If unset only defined ones are reachable.\n \"*\": []\n }\n }\n});\n```\n\nExample:\n```text\nimport { defineSandboxProxy } from '@vercel/sandbox/proxy';\n \nconst proxy = defineSandboxProxy(async (request, { teamId, projectId, sandboxId, sandboxName }) => {\n // Perform additional validation, logging, or transformation here.\n return await fetch(request);\n})\n \n// Per-method Web Handler in Next.js or Vercel Function:\nexport const GET = proxy;\nexport const POST = proxy;\n \n// fetch Web Handler in Vercel Function, handles all methods:\nexport default {\n fetch: proxy\n}\n```\n\nExample:\n```text\nimport { Sandbox } from '@vercel/sandbox';\n \nconst sandbox = await Sandbox.create({\n networkPolicy: {\n allow: {\n \"ai-gateway.vercel.sh\": [{\n match: {\n path: { exact: \"/v1/chat/completions\" },\n method: [\"POST\"],\n queryString: [{ key: { exact: \"model\" }, value: { startsWith: \"gpt-\" } }],\n },\n transform: [{ headers: { \"Authorization\": `Bearer ${process.env.AI_GATEWAY_TOKEN}` } }],\n }],\n \"*.github.com\": [{\n match: {\n headers: [{\n key: { exact: \"Content-Type\" },\n value: { startsWith: \"application/\" }\n }],\n method: [\"GET\", \"POST\"]\n },\n forwardURL: \"https://my-proxy.vercel.app/github\"\n }]\n }\n }\n});\n```\n\nExample:\n```text\n# Sandbox has full Internet and secure-compute access (default).\nsandbox create --network-policy allow-all\n \n# Sandbox has no Internet or secure-compute access.\nsandbox create --network-policy deny-all\n \n# Sandbox only gets access to listed websites.\nsandbox create --allowed-domain \"*.google.com\" --allowed-domain ai-gateway.vercel.sh\n```\n\nExample:\n```text\nimport { Sandbox } from '@vercel/sandbox';\n \n// Sandbox has full Internet and secure-compute access (default).\nconst sandbox = await Sandbox.create({\n networkPolicy: 'allow-all'\n});\n \n// Sandbox has no Internet or secure-compute access.\nconst sandbox = await Sandbox.create({\n networkPolicy: 'deny-all'\n});\n \n// Sandbox only gets access to listed websites.\nconst sandbox = await Sandbox.create({\n networkPolicy: {\n allow: [\"*.google.com\", \"ai-gateway.vercel.sh\"]\n }\n});\n```\n\nExample:\n```text\nsandbox create --network-policy allow-all\n \n# Install packages\nsandbox exec my-sandbox -- npm install\n# Download data\nsandbox exec my-sandbox -- aws s3 cp s3://my-bucket/dataset .\n \n# Lockdown Internet access\nsandbox config network-policy my-sandbox --network-policy deny-all\n \n# Run untrusted workload, without exfiltration risk\nsandbox exec my-sandbox -- ./agent\n```\n\nExample:\n```text\nimport { Sandbox } from '@vercel/sandbox';\n \n// Start with Internet access (default)\nconst sandbox = await Sandbox.create();\n \n// Install dependencies, download data, configure environment, etc.\nawait sandbox.runCommand('npm', ['install']);\nawait sandbox.runCommand('aws', ['s3', 'cp', 's3://my-bucket/dataset', '.']);\n \n// Lockdown Internet access\nawait sandbox.update({ networkPolicy: 'deny-all' });\n \n// Run untrusted workload, without exfiltration risk\nawait sandbox.runCommand('./agent', []);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:50.990Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":8,"totalLines":174,"estimatedTokens":1741}}552{"id":"doc-usage_billing-b418b895","source":"documentation","title":"Usage & Billing","url":"https://vercel.com/docs/ai-gateway/observability-and-spend/usage?from=graph","text":"AI GatewayObservability and SpendUsage & Billing\n\nCross-link & Billing (/docs/ai-gateway/observability-and-spend/usage)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesObservability and Spend — Monitor AI Gateway requests and manage , custom reporting, usage and billing APIs, and spending budgPricing — Learn about pricing for AI Gateway.Observability — Learn how to monitor and debug your AI Gateway requests.Manage and Optimize Usage — Understand how to manage and optimize your usage on Vercel, learn how to track your usage, set up alerts, and optimize yLogs — Search, filter, and follow individual AI Gateway requests, inspect provider routing for one request, and export the resuPrerequisitesAI Gateway — AI Gateway provides a unified API to access hundreds of AI models through a single endpoint, with text, image, and videoObservability and Spend — Monitor AI Gateway requests and manage , custom reporting, usage and billing APIs, and spending budgThis page links to (2)Custom Reporting — Query AI Gateway usage data grouped by model, user, tag, provider, or credential type using the Custom Reporting API.REST API — Reference for AI Gateway REST , usage, generations, and reporting.Pages that link here (2)By (2)AI Gateway — AI Gateway provides a unified API to access hundreds of AI models through a single endpoint, with text, image, and videoObservability and Spend — Monitor AI Gateway requests and manage , custom reporting, usage and billing APIs, and spending budg\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.037Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":414}}553{"id":"doc-deploying_with_vercel_drop-093a9584","source":"documentation","title":"Deploying with Vercel Drop","url":"https://vercel.com/docs/drop","text":"Cross-link Drop (/docs/drop)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesVercel Drop vs Netlify Drop — Compare Vercel Drop and Netlify Drop for drag-and-drop builds, static sites, updates, size limits,Vercel Drop vs Cloudflare Direct Upload — Compare Vercel Drop and Cloudflare Direct builds, browser vs CLI workflows, file limits, Git integratiDeployments — Learn how to create and manage deployments on Vercel.Deploy a Bolt.new app with Vercel Drop — Export your Bolt.new project as a .zip and deploy it to Vercel with Vercel Drop. Vercel detects the framework and buildsDeploy a Google Stitch design with Vercel Drop — Download the HTML from your Google Stitch screens and deploy them to production with Vercel Drop, with no Git or CLI reqThis page links to (5)CLI — Learn how to use the Vercel command-line interface (CLI) to manage and configure your Vercel Projects from the commandEnvironments — Environments are for developing locally, testing changes in a pre-production environment, and serving end-users in produManaging Deployments — Learn how to manage your current and previously deployed projects to Vercel through the dashboard. You can redeploy at aGit Integrations — Vercel allows for automatic deployments on every branch push and merges onto the production branch of your GitHub, GitLaRest API — Learn about rest api on Vercel.Pages that link here (8)By (6) · vercel-docs (2)From vercel-kbDeploy a Bolt.new app with Vercel Drop — Export your Bolt.new project as a .zip and deploy it to Vercel with Vercel Drop. Vercel detects the framework and buildsDeploy a Claude Design project to Vercel — Publish a Claude Design project to Vercel for a live production URL with the Vercel connector, or by exporting a .zip toDeploy a Google Stitch design with Vercel Drop — Download the HTML from your Google Stitch screens and deploy them to production with Vercel Drop, with no Git or CLI reqVercel Drop vs Cloudflare Direct Upload — Compare Vercel Drop and Cloudflare Direct builds, browser vs CLI workflows, file limits, Git integratiVercel Drop vs Netlify Drop — Compare Vercel Drop and Netlify Drop for drag-and-drop builds, static sites, updates, size limits,Export your Webflow site and host it on Vercel — Learn how to export your Webflow site's code and host it on Vercel with Vercel Drop. Drag your .zip export into the browFrom vercel-docsDeployments — Learn how to create and manage deployments on Vercel.Lovable — Deploy your Lovable project to Vercel using GitHub sync and zero-configuration TanStack Start detection.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.198Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":679}}554{"id":"doc-deploying_git_repositories_with_vercel-9f089fee","source":"documentation","title":"Deploying Git Repositories with Vercel","url":"https://vercel.com/docs/git","text":"Cross-link Integrations (/docs/git)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesDeployments — Learn how to create and manage deployments on Vercel.Bitbucket — Vercel for Bitbucket automatically deploys your Bitbucket projects with Vercel, providing Preview Deployment URLs, andGitLab — Vercel for GitLab automatically deploys your GitLab projects with Vercel, providing Preview Deployment URLs, and automaGitHub — Vercel for GitHub automatically deploys your GitHub projects with Vercel, providing Preview Deployment URLs, and automatHow can I use GitLab Pipelines with Vercel? — Learn how to use GitLab Pipelines to deploy to Vercel including support for self-managed GitLab.This page links to (15)Account Management — Learn how to manage your Vercel account and team members.Configuring a Build — Vercel automatically configures the build settings for many front-end frameworks, but you can also customize the build aEnvironments — Environments are for developing locally, testing changes in a pre-production environment, and serving end-users in produGenerated URLs — When you create a new deployment, Vercel will automatically generate a unique URL which you can use to access that partiAssigning a Domain to a Git Branch — Learn how to assign a domain to a different Git branch with this guide.Environment Variables — Learn more about environment variables on Vercel.Azure DevOps — Vercel for Azure DevOps allows you to deploy from Azure Pipelines to Vercel automatically.Bitbucket — Vercel for Bitbucket automatically deploys your Bitbucket projects with Vercel, providing Preview Deployment URLs, andGitHub — Vercel for GitHub automatically deploys your GitHub projects with Vercel, providing Preview Deployment URLs, and automatGitLab — Vercel for GitLab automatically deploys your GitLab projects with Vercel, providing Preview Deployment URLs, and automaPro Plan — Learn about the Vercel Pro plan with credit-based billing, free viewer seats, and self-serve enterprise features for proHow can I use Bitbucket Pipelines with Vercel? — Learn how to use Bitbucket Pipelines to deploy to Vercel including support for Bitbucket Data Center.How can I use GitHub Actions with Vercel? — GitHub Actions with Vercel works best when you skip duplicate builds. Learn the 4-command CLI pattern, --prebuilt flag,How can I use GitLab Pipelines with Vercel? — Learn how to use GitLab Pipelines to deploy to Vercel including support for self-managed GitLab.How can I use the Vercel CLI for custom workflows? — You can use the Vercel CLI to deploy any application, including custom git providers and restricted source code.Pages that link here (49)By (13) · vercel-docs (36)From vercel-kbAvoiding duplicate-content SEO with vercel.app URLs and custom domains — Discover why search engines may treat your vercel.app URL and custom domain as separate pages, and how to consolidate raDeploy a Bolt.new app with Vercel Drop — Export your Bolt.new project as a .zip and deploy it to Vercel with Vercel Drop. Vercel detects the framework and buildsBuild commission-free iOS checkouts with Vercel and Paddle — A new ruling allows iOS apps to use external checkouts. Learn how to deploy a secure, high-performance external checkoutHow to use a non-default branch for production deployments on Vercel — Learn how to set a non-default branch for production on Vercel. Open the Production environment, change branch tracking,Can I use Vercel to deploy to a private cloud? — Learn about if it's possible to deploy to a private cloud with Vercel.Deploy a Claude Design project to Vercel — Publish a Claude Design project to Vercel for a live production URL with the Vercel connector, or by exporting a .zip toDeploy a Google Stitch design with Vercel Drop — Download the HTML from your Google Stitch screens and deploy them to production with Vercel Drop, with no Git or CLI reqHow do I disable Git Notifications from Deployments? — If your project is connected via a Git account to your deployment, you will receive email notifications whenever the depMigrate to Vercel from Cloudflare — Migrate your website's configuration from Cloudflare Pages or Workers to VercelVercel Drop vs Cloudflare Direct Upload — Compare Vercel Drop and Cloudflare Direct builds, browser vs CLI workflows, file limits, Git integratiVercel Drop vs Netlify Drop — Compare Vercel Drop and Netlify Drop for drag-and-drop builds, static sites, updates, size limits,Export your Webflow site and host it on Vercel — Learn how to export your Webflow site's code and host it on Vercel with Vercel Drop. Drag your .zip export into the browWhy do my Vercel deployments have multiple domains? — Learn about why Vercel auto generates URLs for your deployments.From vercel-docsCode Review — Get automatic AI-powered code reviews on your pull requestsGetting Started — Vercel Web Analytics provides you detailed insights into your website's visitors. This quickstart guide will help you geBuild Features — Learn how to customize your deployments using Vercel's build features.vercel alias — Learn how to apply custom domain aliases to your Vercel deployments using the vercel alias CLI command.vercel git — Learn how to manage your Git provider connections using the vercel git CLI command.vercel link — Learn how to link a local directory to a Vercel Project using the vercel link CLI command.Integrations — Learn how Comments integrates with Git providers like GitHub, GitLab, and BitBucket, as well as the Vercel app for SlackDeployments — Learn how to create and manage deployments on Vercel.Environments — Environments are for developing locally, testing changes in a pre-production environment, and serving end-users in produPromoting Deployments — Learn how to promote deployments to production on Vercel.Troubleshoot Build Errors — Learn how to resolve common scenarios you may encounter during the Build step, including build errors that cancel a deplTroubleshoot project collaboration — Learn about common reasons for deployment issues related to team member requirements and how to resolve them.Assigning a Domain to a Git Branch — Learn how to assign a domain to a different Git branch with this guide.Deploying & Redirecting Domains — Learn how to deploy your domains and set up domain redirects with this guide.Vercel Drop — Vercel Drop lets you deploy a file or folder by dragging it into your browser, with no Git or CLI required.Environment Variables — Learn more about environment variables on Vercel.Supported Frameworks — Vercel supports a wide range of the most popular frameworks, optimizing how your application builds and runs no matter wHono — Deploy Hono applications to Vercel with zero configuration. Learn about observability, ISR, and custom build configuratiNitro — Deploy Nitro applications to Vercel with zero configuration. Learn about observability, ISR, and custom build configuratContainer Images — Deploy OCI container images with a Dockerfile or Containerfile on Vercel Functions.Build System — Learn how Vercel transforms your source code into optimized assets ready to serve globally.Azure DevOps — Vercel for Azure DevOps allows you to deploy from Azure Pipelines to Vercel automatically.Bitbucket — Vercel for Bitbucket automatically deploys your Bitbucket projects with Vercel, providing Preview Deployment URLs, andGitHub — Vercel for GitHub automatically deploys your GitHub projects with Vercel, providing Preview Deployment URLs, and automatGitLab — Vercel for GitLab automatically deploys your GitLab projects with Vercel, providing Preview Deployment URLs, and automaKubernetes — Deploy your frontend on Vercel alongside your existing Kubernetes infrastructure.Lovable — Deploy your Lovable project to Vercel using GitHub sync and zero-configuration TanStack Start detection.Managing Microfrontends — Learn about managing microfrontends on Vercel.Monorepos — Vercel provides support for monorepos. Learn how to deploy a monorepo here.Plans — Learn about the different plans available on Vercel.Git Settings — Use the project settings to manage the Git connection, enable Git LFS, and create deploy hooks.Project Settings — Use the project settings, to configure custom domains, environment variables, Git, integrations, deployment protection,vercel.json — Learn how to use vercel.json to configure and override the default behavior of Vercel from within your project.Projects — A project is the application that you have deployed to Vercel.Managing projects — Learn how to manage your projects through the Vercel Dashboard.Getting Started — Vercel Speed Insights provides you detailed insights into your website's performance. This quickstart guide will help yo\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.213Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":0,"totalLines":3,"estimatedTokens":2210}}555{"id":"doc-container_registry_limits_and_pricing-49517463","source":"documentation","title":"Container Registry limits and pricing","url":"https://vercel.com/docs/container-registry/limits-and-pricing?from=graph","text":"Container RegistryLimits & Pricing\n\nCross-link & Pricing (/docs/container-registry/limits-and-pricing)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesContainer Registry — Store and manage Docker container images on Vercel. Push images built from a Dockerfile, then run them on Vercel FunctioContainer Images — Deploy OCI container images with a Dockerfile or Containerfile on Vercel Functions.How to use Vercel Container Registry — Push, store, and pull OCI container images with Vercel Container Registry, then deploy them to Vercel Functions and Vercvercel vcr — Manage Vercel Container Registry from the Vercel , inspect, create, and delete repositories, browse tags, and mLimits and Pricing — Learn about limits and pricing for Vercel Flags.PrerequisitesContainer Registry — Store and manage Docker container images on Vercel. Push images built from a Dockerfile, then run them on Vercel FunctioPages that link here (4)By (2) · vercel-docs (2)From vercel-kbHow to use Vercel Container Registry — Push, store, and pull OCI container images with Vercel Container Registry, then deploy them to Vercel Functions and VercHow to migrate from GHCR to Vercel Container Registry — Migrate container images from GitHub Container Registry (GHCR) to Vercel Container Registry (VCR), including authentFrom vercel-docsvercel vcr — Manage Vercel Container Registry from the Vercel , inspect, create, and delete repositories, browse tags, and mContainer Registry — Store and manage Docker container images on Vercel. Push images built from a Dockerfile, then run them on Vercel Functio\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.235Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":437}}556{"id":"doc-working_with_ssl_certificates-e314aa4b","source":"documentation","title":"Working with SSL Certificates","url":"https://vercel.com/docs/domains/working-with-ssl","text":"DomainsWorking with SSL\n\nCross-link with SSL (/docs/domains/working-with-ssl)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesCustom SSL Certificates — By default, Vercel provides all domains with a custom SSL certificates. However, Enterprise teams can upload their own cPre-Generate SSL Certificates — testEncryption & TLS — Learn how Vercel encrypts data in transit and at rest.Troubleshooting Domains — Learn about common reasons for domain misconfigurations and how to troubleshoot your domain on Vercel.Why is my domain not automatically generating an SSL/TLS certificate? — Information on why a domain may not be automatically generating an SSL/TLS certificate.PrerequisitesDomains — Learn the fundamentals of how domains, DNS, and nameservers work on Vercel.This page links to (2)Troubleshooting Domains — Learn about common reasons for domain misconfigurations and how to troubleshoot your domain on Vercel.When is the SSL Certificate on my Vercel Domain renewed? — Information about the when renewal of a Vercel Domain's SSL certificate will be processed.Pages that link here (5)By (2) · vercel-docs (3)From vercel-kbCan I use my domain on Vercel with A records? — Point your apex domain to Vercel with an A record (76.76.21.21 or your domain card's value), pair it with a www CNAME,Build a multi-tenant app with Next.js and Vercel — Create a Next.js application with multi-tenancy and custom domain support on Vercel.From vercel-docsDomains — Learn the fundamentals of how domains, DNS, and nameservers work on Vercel.Troubleshooting Domains — Learn about common reasons for domain misconfigurations and how to troubleshoot your domain on Vercel.Working with Domains — Learn how domains work and the options Vercel provides for managing them.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.255Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":482}}557{"id":"doc-native_integration_concepts-ba566734","source":"documentation","title":"Native integration concepts","url":"https://vercel.com/docs/integrations/create-integration/native-integration","text":"Create an IntegrationNative integration concepts\n\nCross-link integration concepts (/docs/integrations/create-integration/native-integration)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesAdd a Native Integration — Learn how you can add a product to your Vercel project through a native integration.Create a Native Integration — Learn how to create a product for your Vercel native integrationOverview — Learn how to extend Vercel's capabilities by integrating with your preferred providers for AI, databases, headless conteCreate an Integration — Learn how to create and manage your own integration for internal or public use with Vercel.Install an Integration — Learn how to pair Vercel's functionality with a third-party service to streamline observability, integrate with testingPrerequisitesOverview — Learn how to extend Vercel's capabilities by integrating with your preferred providers for AI, databases, headless conteCreate an Integration — Learn how to create and manage your own integration for internal or public use with Vercel.This page links to (6)Overview — Learn how to extend Vercel's capabilities by integrating with your preferred providers for AI, databases, headless conteCreate an Integration — Learn how to create and manage your own integration for internal or public use with Vercel.Using Integrations API — Learn how to authenticate and use the Integrations REST API to build your integration server.Native Integration Flows — Learn how information flows between the integration user, Vercel, and the integration provider for Vercel native integraCreate a Native Integration — Learn how to create a product for your Vercel native integrationRequirements for listing an Integration — Learn about all the requirements and guidelines needed when creating your Integration.Pages that link here (7)By (7)Overview — Learn how to extend Vercel's capabilities by integrating with your preferred providers for AI, databases, headless conteIntegration Approval Checklist — Review this checklist before submitting your native or connectable account integration for approval on the Vercel MarketDeployment integration actions — These actions allow integration providers to set up automated tasks with Vercel deployments.Using Integrations API — Learn how to authenticate and use the Integrations REST API to build your integration server.Marketplace Partner API — Learn about marketplace partner api on Vercel.Marketplace Vercel API — Learn about marketplace vercel api on Vercel.Secrets Rotation — Learn how to implement secrets rotation in your integration to allow users to rotate credentials securely.\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.351Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":699}}558{"id":"doc-implementing_secrets_rotation-4cc03b16","source":"documentation","title":"Implementing secrets rotation","url":"https://vercel.com/docs/integrations/create-integration/secrets-rotation","text":"Create an IntegrationSecrets Rotation\n\nCross-link Rotation (/docs/integrations/create-integration/secrets-rotation)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesRotating Environment Variables — Safely rotate API keys, tokens, and other secrets in your Vercel environment variables.Rotate Installation CredentialHow to rotate the secrets of your Supabase integration — Rotate Supabase API keys, JWT secrets, and database passwords.How to rotate the secrets of your Hypertune integration — Rotate Hypertune API keys with zero-downtime.How to rotate the secrets of your Clerk integration — Rotate Clerk API keysPrerequisitesOverview — Learn how to extend Vercel's capabilities by integrating with your preferred providers for AI, databases, headless conteCreate an Integration — Learn how to create and manage your own integration for internal or public use with Vercel.This page links to (1)Native integration concepts — As an integration provider, understanding how your service interacts with Vercel's platform will help you create and optPages that link here (1)By (1)Using Integrations API — Learn how to authenticate and use the Integrations REST API to build your integration server.\n\nExample:\n```text\nPOST /v1/installations/{installationId}/resources/{resourceId}/secrets/rotate\nAuthorization: Bearer <oidc-token>\n```\n\nExample:\n```text\n{\n \"reason\": \"Security audit requirement\",\n \"delayOldSecretsExpirationHours\": 3\n}\n```\n\nExample:\n```text\n{\n \"sync\": true,\n \"secrets\": [\n {\n \"name\": \"DATABASE_URL\",\n \"value\": \"postgresql://user:newpass@host:5432/db\"\n },\n {\n \"name\": \"API_KEY\",\n \"value\": \"rotated-key-value\"\n }\n ],\n \"partial\": false\n}\n```\n\nExample:\n```text\n{\n \"sync\": false\n}\n```\n\nExample:\n```text\nPUT https://api.vercel.com/v1/installations/{installationId}/resources/{resourceId}/secrets\n```\n\nExample:\n```text\n{\n \"secrets\": [\n {\n \"name\": \"DATABASE_URL\",\n \"value\": \"postgresql://user:newpass@host:5432/db\"\n }\n ],\n \"partial\": false\n}\n```\n\nExample:\n```text\nimport { verifyOIDCToken } from './auth';\n \nasync function handleSecretsRotation(req, res) {\n const { installationId, resourceId } = req.params;\n const { reason, delayOldSecretsExpirationHours = 0 } = req.body;\n \n // Verify authentication - Vercel sends an OIDC token (user or system authentication)\n const token = req.headers.authorization?.replace('Bearer ', '');\n const claims = await verifyOIDCToken(token);\n \n if (!claims || (claims.user_role && claims.user_role !== 'ADMIN')) {\n return res.status(401).json({ error: 'Invalid token' });\n }\n \n // Get resource from your database\n const resource = await getResource(resourceId);\n if (!resource) {\n return res.status(404).json({ error: 'Resource not found' });\n }\n \n // Rotate credentials in your system\n const newCredentials = await rotateResourceCredentials(resourceId);\n \n // Schedule old credentials expiration\n if (delayOldSecretsExpirationHours > 0) {\n await scheduleCredentialExpiration(\n resource.oldCredentials,\n delayOldSecretsExpirationHours\n );\n } else {\n // Expire old credentials immediately\n await expireCredentials(resource.oldCredentials);\n }\n \n // Return new secrets immediately\n return res.status(200).json({\n sync: true,\n secrets: [\n {\n name: 'DATABASE_URL',\n value: newCredentials.connectionString,\n },\n {\n name: 'DATABASE_PASSWORD',\n value: newCredentials.password,\n },\n ],\n partial: false\n });\n}\n```\n\nExample:\n```text\n// Resource not found\nres.status(404).json({ error: 'Resource not found' });\n \n// Invalid request body\nres.status(400).json({ error: 'Invalid delayOldSecretsExpirationHours' });\n \n// Insufficient permissions\nres.status(403).json({ error: 'User lacks permission to rotate secrets' });\n \n// Rotation temporarily unavailable\nres.status(503).json({ error: 'Rotation service unavailable, try again later' });\n \n// Internal error during rotation\nres.status(500).json({ error: 'Failed to rotate credentials' });\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.355Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":8,"totalLines":134,"estimatedTokens":1051}}559{"id":"doc-vercel_crons-715b13a0","source":"documentation","title":"vercel crons","url":"https://vercel.com/docs/cli/crons","text":"Cross-link crons (/docs/cli/crons)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesCron Jobs — Learn about cron jobs, how they work, and how to use them on Vercel.Getting Started — Learn how to schedule cron jobs to run at specific times or intervals.Managing Cron Jobs — Learn how to manage Cron Jobs effectively in Vercel. Explore cron job duration, error handling, deployments, concurrencyHow to Setup Cron Jobs on Vercel — Learn how to setup and use cron jobs on Vercelvercel vcr — Manage Vercel Container Registry from the Vercel , inspect, create, and delete repositories, browse tags, and mPrerequisitesCLI — Learn how to use the Vercel command-line interface (CLI) to manage and configure your Vercel Projects from the commandThis page links to (2)Cron Jobs — Learn about cron jobs, how they work, and how to use them on Vercel.Managing Cron Jobs — Learn how to manage Cron Jobs effectively in Vercel. Explore cron job duration, error handling, deployments, concurrencyPages that link here (1)By (1)CLI — Learn how to use the Vercel command-line interface (CLI) to manage and configure your Vercel Projects from the command\n\nExample:\n```text\nvercel crons [subcommand]\n```\n\nExample:\n```text\nvercel crons add\nvercel crons add --path /api/cron --schedule \"0 10 * * *\"\n```\n\nExample:\n```text\nvercel crons\nvercel crons ls\nvercel crons ls --format json\n```\n\nExample:\n```text\nvercel crons run /api/cron\n```\n\nExample:\n```text\nvercel crons add --path /api/cron/daily --schedule \"0 9 * * *\"\n```\n\nExample:\n```text\nvercel crons ls --format json\n```\n\nExample:\n```text\nvercel crons run /api/cron/daily\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.383Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":7,"totalLines":41,"estimatedTokens":443}}560{"id":"doc-vercel_logs-719724ca","source":"documentation","title":"vercel logs","url":"https://vercel.com/docs/cli/logs","text":"Cross-link logs (/docs/cli/logs)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesvercel activity — View activity events for your Vercel project or team, filtered by type, date range, and project.vercel list — Learn how to list out all recent deployments for the current Vercel Project using the vercel list CLI command.Runtime — Learn how to search, inspect, and share your runtime logs with the Logs tab.Logs — Use logs to find information on deployment builds, function executions, and more.Get logs for a deploymentPrerequisitesCLI — Learn how to use the Vercel command-line interface (CLI) to manage and configure your Vercel Projects from the commandPages that link here (6)By (6)Debug Cache Issues — Diagnose stale content and fix CDN cache, data cache, and build cache issues using the CLI.CLI — Learn how to use the Vercel command-line interface (CLI) to manage and configure your Vercel Projects from the commandPromote Preview to Production — Test a preview deployment and promote it to production using the CLI.Debug Slow Functions — Diagnose and fix slow Vercel Functions using CLI tools, logs, and timing analysis.Debug 500 Errors — Find, fix, and verify production 500 errors using the Vercel CLI.Rolling Release Deployment — Gradually roll out a production deployment using traffic stages, monitoring, and automated abort.\n\nExample:\n```text\n# Display recent request logs for the linked project\nvercel logs\n \n# Stream live logs for the current git branch\nvercel logs --follow\n \n# Filter logs by level and time range\nvercel logs --level error --since 1h\n```\n\nExample:\n```text\nvercel logs --project my-app\n```\n\nExample:\n```text\nvercel logs --deployment dpl_xxxxx\n```\n\nExample:\n```text\n# Stream logs for the current branch's latest deployment\nvercel logs --follow\n \n# Stream logs for a specific deployment\nvercel logs --follow --deployment dpl_xxxxx\n```\n\nExample:\n```text\nvercel logs --json | jq 'select(.level == \"error\")'\n```\n\nExample:\n```text\nvercel logs --expand\n```\n\nExample:\n```text\nvercel logs --limit 50\n```\n\nExample:\n```text\nvercel logs --environment production\n```\n\nExample:\n```text\nvercel logs --level error --level warning\n```\n\nExample:\n```text\nvercel logs --status-code 500\nvercel logs --status-code 5xx\n```\n\nExample:\n```text\nvercel logs --source edge-function --source serverless\n```\n\nExample:\n```text\nvercel logs --query \"timeout\"\n```\n\nExample:\n```text\nvercel logs --request-id req_xxxxx\n```\n\nExample:\n```text\nvercel logs --since 1h\nvercel logs --since 2026-01-15T10:00:00Z\n```\n\nExample:\n```text\nvercel logs --since 2h --until 1h\n```\n\nExample:\n```text\nvercel logs --branch feature-x\n```\n\nExample:\n```text\nvercel logs --level error --since 1h\n```\n\nExample:\n```text\nvercel logs --environment production --status-code 500 --json\n```\n\nExample:\n```text\nvercel logs --query \"timeout\" --json | jq '.message'\n```\n\nExample:\n```text\nvercel logs --expand --limit 20\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.395Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":20,"totalLines":116,"estimatedTokens":764}}561{"id":"doc-vercel_promote-bef3649d","source":"documentation","title":"vercel promote","url":"https://vercel.com/docs/cli/promote","text":"Example:\n```text\nvercel promote [deployment-id or url]\n```\n\nExample:\n```text\nvercel promote status [project]\n```\n\nExample:\n```text\n# Check status for the linked project\nvercel promote status\n \n# Check status for a specific project\nvercel promote status my-project\n \n# Check status with a custom timeout\nvercel promote status --timeout 30s\n```\n\nExample:\n```text\nvercel promote https://example-app-6vd6bhoqt.vercel.app --timeout=5m\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.412Z","totalSectionsIncluded":0,"totalCodeBlocksIncluded":4,"totalLines":28,"estimatedTokens":112}}562{"id":"doc-quickstart-e5f013a3","source":"documentation","title":"Quickstart","url":"https://vercel.com/docs/queues/quickstart","text":"Choose a framework to optimize documentation (/app)\n\napi/checkout.pyTypeScriptPythonNext.js (/app)FastAPIimport { send } from '@vercel/queue'; export async function POST(request: Request) { const order = await request.json(); const { messageId } = await send('orders', order); return Response.json({ messageId }); }from fastapi import FastAPI, Request from vercel.queue import send app = FastAPI() @app.post(\"/api/checkout\") async def checkout(request: Request): order = await request.json() message_id = await send(\"orders\", order) return {\"messageId\": message_id}\n\nworker.pyTypeScriptPythonNext.js (/app)FastAPIimport { handleCallback } from '@vercel/queue'; export const POST = handleCallback(async (order, metadata) => { // await chargePayment(order); // await sendConfirmationEmail(order); console.log('Fulfilling order', metadata.messageId, order); });from vercel.queue import Message, subscribe @subscribe(topic=\"orders\") async def fulfill_order(message: Message[dict[str, object]]) -> = message.payload # await charge_payment(order) # await send_confirmation_email(order) print(\"Fulfilling order\", message.message_id, order)\n\nvercel.jsonNext.js (/app)FastAPI{ \"functions\": { \"app/api/queues/fulfill-order/route.ts\": { \"experimentalTriggers\": [{ \"type\": \"queue/v2beta\", \"topic\": \"orders\" }] } } }[[tool.vercel.subscribers]] entrypoint = \"worker\"\n\napi/orders.pyTypeScriptPythonNext.js (/app)FastAPIawait send('orders', payload, { region: 'sfo1' });from vercel.queue import QueueClient queue = QueueClient(region=\"sfo1\") await queue.send(\"orders\", payload)\n\nCross-link (/docs/queues/quickstart)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesJS SDK Reference — Publish and consume messages with the @vercel/queue SDK.Queues — Durable event streaming for serverless. Publish messages to topics and process them reliably with managed consumer groupConcepts — Learn delivery, retries, visibility timeouts, and deployment isolation in Vercel Queues.Python SDK Reference — Publish and consume messages with the Vercel Queues Python SDK.Celery — Deploy Celery on Vercel. Learn how Celery workers use Vercel Queues and Vercel Functions to run background tasks withoutPrerequisitesQueues — Durable event streaming for serverless. Publish messages to topics and process them reliably with managed consumer groupThis page links to (8)CLI — Learn how to use the Vercel command-line interface (CLI) to manage and configure your Vercel Projects from the commandOIDC — Secure the access to your backend using OIDC Federation to enable auto-generated, short-lived, and non-persistent credenAPI Reference — HTTP API reference for Vercel Queues. Publish, consume, acknowledge, and manage messages.Poll Mode — Consume messages from Vercel Queues by polling on your own schedule, from any environment.Pricing and Limits — Understand how Vercel Queues billing works, what's included, and which service limits apply.Python SDK Reference — Publish and consume messages with the Vercel Queues Python SDK.JS SDK Reference — Publish and consume messages with the @vercel/queue SDK.Workflows — Vercel Workflows is a fully managed platform for building durable, reliable, and observable applications and AI agents wPages that link here (1)By (1)Queues — Durable event streaming for serverless. Publish messages to topics and process them reliably with managed consumer group\n\nChoose a framework to optimize documentation (/app)\n\nExample:\n```text\npnpm i @vercel/queue\n```\n\nExample:\n```text\nyarn add @vercel/queue\n```\n\nExample:\n```text\nnpm i @vercel/queue\n```\n\nExample:\n```text\nbun add @vercel/queue\n```\n\nExample:\n```text\nuv add vercel-queue\n```\n\nExample:\n```text\npip install vercel-queue\n```\n\nExample:\n```text\nvercel link\nvercel env pull\n```\n\nExample:\n```text\nimport { send } from '@vercel/queue';\n \nexport async function POST(request: Request) {\n const order = await request.json();\n const { messageId } = await send('orders', order);\n return Response.json({ messageId });\n}\n```\n\nExample:\n```text\nimport { handleCallback } from '@vercel/queue';\n \nexport const POST = handleCallback(async (order, metadata) => {\n // await chargePayment(order);\n // await sendConfirmationEmail(order);\n console.log('Fulfilling order', metadata.messageId, order);\n});\n```\n\nExample:\n```text\n{\n \"functions\": {\n \"app/api/queues/fulfill-order/route.ts\": {\n \"experimentalTriggers\": [{ \"type\": \"queue/v2beta\", \"topic\": \"orders\" }]\n }\n }\n}\n```\n\nExample:\n```text\nawait send('orders', payload, { region: 'sfo1' });\n```\n\nExample:\n```text\nfrom fastapi import FastAPI, Request\nfrom vercel.queue import send\n \napp = FastAPI()\n \n \n@app.post(\"/api/checkout\")\nasync def checkout(request: Request):\n order = await request.json()\n message_id = await send(\"orders\", order)\n return {\"messageId\": message_id}\n```\n\nExample:\n```text\nfrom vercel.queue import Message, subscribe\n \n \n@subscribe(topic=\"orders\")\nasync def fulfill_order(message: Message[dict[str, object]]) -> None:\n order = message.payload\n # await charge_payment(order)\n # await send_confirmation_email(order)\n print(\"Fulfilling order\", message.message_id, order)\n```\n\nExample:\n```text\n[[tool.vercel.subscribers]]\nentrypoint = \"worker\"\n```\n\nExample:\n```text\nfrom vercel.queue import QueueClient\n \nqueue = QueueClient(region=\"sfo1\")\nawait queue.send(\"orders\", payload)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.659Z","totalSectionsIncluded":7,"totalCodeBlocksIncluded":15,"totalLines":131,"estimatedTokens":1371}}563{"id":"doc-multi_project_platforms_concepts-408709cb","source":"documentation","title":"Multi-Project Platforms Concepts","url":"https://vercel.com/docs/platforms/multi-project-platforms/concepts","text":"Vercel for PlatformsMulti-Project PlatformsConcepts\n\nCross-link (/docs/platforms/multi-project-platforms/concepts)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesReference — API reference, error codes, troubleshooting, and FAQ for multi-project platforms on Vercel.Multi-Project Platforms — Give each customer its own Vercel project and deployment, created and managed programmatically with the Vercel SDK.Vercel for Platforms — Build platforms that serve multiple customers from a single codebase, with custom domains, wildcard subdomains, and autoQuickstart — Programmatically host code for user-generated or AI-generated applications on Vercel.Multi-Tenant Platforms — Serve multiple customers from a single codebase and deployment, routing each tenant by subdomain or custom domain.PrerequisitesVercel for Platforms — Build platforms that serve multiple customers from a single codebase, with custom domains, wildcard subdomains, and autoMulti-Project Platforms — Give each customer its own Vercel project and deployment, created and managed programmatically with the Vercel SDK.This page links to (2)Quickstart — Programmatically host code for user-generated or AI-generated applications on Vercel.Reference — API reference, error codes, troubleshooting, and FAQ for multi-project platforms on Vercel.Pages that link here (3)By (3)Vercel for Platforms — Build platforms that serve multiple customers from a single codebase, with custom domains, wildcard subdomains, and autoMulti-Project Platforms — Give each customer its own Vercel project and deployment, created and managed programmatically with the Vercel SDK.Reference — API reference, error codes, troubleshooting, and FAQ for multi-project platforms on Vercel.\n\nExample:\n```text\nimport { Vercel } from '@vercel/sdk';\n \nconst vercel = new Vercel({\n bearerToken: '<YOUR_BEARER_TOKEN_HERE>',\n});\n \nconst { value: project } = await vercel.projects.createProject({\n teamId: 'team_1234',\n requestBody: {\n name: `tenant-${tenantId}`,\n framework: 'nextjs',\n },\n});\n```\n\nExample:\n```text\nimport { Vercel } from '@vercel/sdk';\n \nconst vercel = new Vercel({\n bearerToken: '<YOUR_BEARER_TOKEN_HERE>',\n});\n \nconst { value: project } = await vercel.projects.createProject({\n teamId: 'team_1234',\n requestBody: {\n name: `tenant-${tenantId}`,\n gitRepository: {\n type: 'github',\n repo: 'your-org/tenant-template',\n },\n },\n});\n```\n\nExample:\n```text\nimport { Vercel } from '@vercel/sdk';\n \nconst vercel = new Vercel({\n bearerToken: '<YOUR_BEARER_TOKEN_HERE>',\n});\n \nawait vercel.projects.addProjectDomain({\n idOrName: project.id,\n requestBody: {\n name: 'tenant1.com',\n },\n});\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.675Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":58,"estimatedTokens":709}}564{"id":"doc-submit_billing_data_vercel_api-7b2eb03b","source":"documentation","title":"Submit Billing Data | Vercel API","url":"https://vercel.com/docs/integrations/create-integration/marketplace-api/reference/vercel/submit-billing-data","text":"This page is not in the current cross-link map.\n\nSubmit Billing Data | Vercel API\n\nExample:\n```typescript\n1const response = await fetch('https://api.vercel.com/v1/installations/integrationConfigurationId/billing', {2 method: 'POST',3 headers: {4 'Authorization': 'Bearer YOUR_ACCESS_TOKEN',5 'Content-Type': 'application/json',6 },7 body: JSON.stringify({8 \"timestamp\": \"2024-01-01T00:00:00Z\",9 \"eod\": \"2024-01-01T00:00:00Z\",10 \"period\": {11 \"start\": \"2024-01-01T00:00:00Z\",12 \"end\": \"2024-01-01T00:00:00Z\"13 },14 \"billing\": [15 {16 \"billingPlanId\": \"example_id\",17 \"resourceId\": \"example_id\",18 \"start\": \"2024-01-01T00:00:00Z\",19 \"end\": \"2024-01-01T00:00:00Z\",20 \"name\": \"Example Name\",21 \"details\": \"Example details\",22 \"price\": \"100.00\",23 \"quantity\": \"1\",24 \"units\": \"units\",25 \"total\": \"100.00\"26 }27 ],28 \"usage\": [29 {30 \"resourceId\": \"example_id\",31 \"name\": \"Example Name\",32 \"type\": \"total\",33 \"units\": \"units\",34 \"dayValue\": \"123\",35 \"periodValue\": \"123\",36 \"planValue\": \"123\"37 }38 ]39 }),40});41\n42const data = await response.json();43console.log(data);\n```\n\nExample:\n```json\n1{}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.747Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":2,"totalLines":16,"estimatedTokens":324}}565{"id":"doc-services-493bcf3e","source":"documentation","title":"Services","url":"https://vercel.com/docs/build-output-api/services","text":"Build Output APIServices\n\nCross-link (/docs/build-output-api/services)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesServices — Deploy multiple backends and frontends within a single Vercel project using services.Routing — Learn how Vercel routes public requests to services and how each service handles its own routes.The Complete Guide to Vercel Services — Vercel Services let you deploy multiple frontends and backends in one project on a shared domain. Learn how to define seService configuration reference — Options available for service configuration.Experimental Services — The experimentalServices configuration model for deploying multiple backends and frontends in a single Vercel project.PrerequisitesBuild Output API — The Build Output API is a file-system-based specification for a directory structure that can produce a Vercel deploymentThis page links to (4)Build Output Configuration — Learn about the Build Output Configuration file, which is used to configure the behavior of a Deployment.Services — Deploy multiple backends and frontends within a single Vercel project using services.Service bindings — Call one service from another using caller-declared service bindings.Routing — Learn how Vercel routes public requests to services and how each service handles its own routes.Pages that link here (3)By (3)Build Output API — The Build Output API is a file-system-based specification for a directory structure that can produce a Vercel deploymentBuild Output Configuration — Learn about the Build Output Configuration file, which is used to configure the behavior of a Deployment.Features — Learn how to implement common Vercel platform features through the Build Output API.\n\nExample:\n```text\n{\n \"version\": 3,\n \"services\": [\n { \"name\": \"web\", \"root\": \"web/\" },\n { \"name\": \"api\", \"root\": \"api/\", \"entrypoint\": \"main:app\" }\n ]\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:51.752Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":16,"estimatedTokens":509}}566{"id":"doc-sunionstore_docs-83da4502","source":"documentation","title":"SUNIONSTORE | Docs","url":"https://redis.io/docs/latest/commands/sunionstore/","text":"{\"acl_categories\":[\"@write\",\"@set\",\"@slow\"],\"arguments\":[{\"display_text\":\"destination\",\"key_spec_index\":0,\"name\":\"destination\",\"type\":\"key\"},{\"display_text\":\"key\",\"key_spec_index\":1,\"multiple\":true,\"name\":\"key\",\"type\":\"key\"}],\"arity\":-3,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"write\",\"denyoom\"],\"complexity\":\"O(N) where N is the total number of elements in all given sets.\",\"description\":\"Stores the union of multiple sets in a key.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"set\",\"key_specs\":[{\"OW\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"},\"update\":true},{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":2},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":-1,\"limit\":0},\"type\":\"range\"}}],\"location\":\"body\",\"since\":\"1.0.0\",\"syntax_fmt\":\"SUNIONSTORE destination key [key ...]\",\"title\":\"SUNIONSTORE\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"examples\",\"title\":\"Examples\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"},{\"id\":\"see-also\",\"title\":\"See also\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nSUNIONSTORE destination key [key ...]\n```\n\nExample:\n```text\nsunionstore(\n dest: KeyT,\n keys: List,\n *args: List\n) → Union[Awaitable[int], int]\n```\n\nExample:\n```text\nSUNIONSTORE(\n destination: RedisArgument,\n keys: RedisVariadicArgument\n) → Any\n```\n\nExample:\n```text\nsunionstore(\n dstkey: byte[],\n keys: byte[]...\n) → long // The number of elements in the resulting set\n\nsunionstore(\n dstkey: String,\n keys: String...\n) → long // The number of elements in the resulting set\n```\n\nExample:\n```text\nsunionstore(\n destination: K, // the destination type: key.\n keys: K... // the key.\n) → Long // Long integer-reply the number of elements in the resulting set.\n```\n\nExample:\n```text\nsunionstore(\n destination: K, // the destination type: key.\n keys: K... // the key.\n) → RedisFuture<Long> // Long integer-reply the number of elements in the resulting set.\n```\n\nExample:\n```text\nsunionstore(\n destination: K, // the destination type: key.\n keys: K... // the key.\n) → Mono<Long> // Long integer-reply the number of elements in the resulting set.\n```\n\nExample:\n```text\nSUnionStore(\n ctx: context.Context,\n destination: string,\n keys: ...string\n) → *IntCmd\n```\n\nExample:\n```text\nSetCombineAndStore(\n operation: SetOperation, // The operation to perform.\n destination: RedisKey, // The key of the destination set.\n first: RedisKey,\n second: RedisKey,\n flags: CommandFlags // The flags to use for this operation.\n) → long // The number of elements in the resulting set.\n\nSetCombineAndStore(\n operation: SetOperation, // The operation to perform.\n destination: RedisKey, // The key of the destination set.\n keys: RedisKey[], // The keys of the sets to operate on.\n flags: CommandFlags // The flags to use for this operation.\n) → long // The number of elements in the resulting set.\n\nSetCombineAndStore(\n operation: SetOperation, // The operation to perform.\n destination: RedisKey, // The key of the destination set.\n first: RedisKey,\n second: RedisKey,\n flags: CommandFlags // The flags to use for this operation.\n) → long // The number of elements in the resulting set.\n\nSetCombineAndStore(\n operation: SetOperation, // The operation to perform.\n destination: RedisKey, // The key of the destination set.\n keys: RedisKey[], // The keys of the sets to operate on.\n flags: CommandFlags // The flags to use for this operation.\n) → long // The number of elements in the resulting set.\n```\n\nExample:\n```text\nsunionstore(\n $destination: string,\n $keys: array|string\n) → int\n```\n\nExample:\n```text\nsunionstore(\n dstkey: D,\n keys: K\n) → (usize)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.169Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":11,"totalLines":122,"estimatedTokens":1043}}567{"id":"doc-sunioncard_docs-bd9df199","source":"documentation","title":"SUNIONCARD | Docs","url":"https://redis.io/docs/latest/commands/sunioncard/","text":"{\"acl_categories\":[\"@read\",\"@set\",\"@slow\"],\"arguments\":[{\"display_text\":\"numkeys\",\"name\":\"numkeys\",\"type\":\"integer\"},{\"display_text\":\"key\",\"key_spec_index\":0,\"multiple\":true,\"name\":\"key\",\"type\":\"key\"},{\"display_text\":\"approx\",\"name\":\"approx\",\"optional\":true,\"token\":\"APPROX\",\"type\":\"pure-token\"},{\"display_text\":\"limit\",\"name\":\"limit\",\"optional\":true,\"token\":\"LIMIT\",\"type\":\"integer\"}],\"arity\":-3,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"readonly\",\"movablekeys\"],\"complexity\":\"O(N) where N is the total number of elements in all given sets.\",\"description\":\"Returns the number of members of the union of multiple sets.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"set\",\"key_specs\":[{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"firstkey\":1,\"keynumidx\":0,\"keystep\":1},\"type\":\"keynum\"}}],\"location\":\"body\",\"since\":\"8.10.0\",\"syntax_fmt\":\"SUNIONCARD numkeys key [key ...] [APPROX] [LIMIT limit]\",\"title\":\"SUNIONCARD\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nSUNIONCARD numkeys key [key ...] [APPROX] [LIMIT limit]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.171Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":329}}568{"id":"doc-client_side_geographic_failover_docs-85d5b3b0","source":"documentation","title":"Client-side geographic failover | Docs","url":"https://redis.io/docs/latest/develop/clients/lettuce/failover/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"description\":\"Improve reliability using the failover features of Lettuce.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"relatedPages\":[\"/develop/clients/failover\"],\"scope\":[\"client-specific\",\"implementation\"],\"title\":\"Client-side geographic failover\",\"topics\":[\"failover\",\"failback\",\"resilience\",\"health checks\",\"retries\"],\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```java\nimport io.lettuce.core.RedisURI;\nimport io.lettuce.core.failover.DatabaseConfig;\nimport io.lettuce.core.failover.MultiDbClient;\nimport io.lettuce.core.failover.MultiDbOptions;\nimport io.lettuce.core.failover.api.StatefulRedisMultiDbConnection;\n```\n\nExample:\n```java\nRedisURI eastUri = RedisURI.builder()\n .withHost(\"redis-east.example.com\")\n .withPort(6379)\n .withPassword(\"secret\".toCharArray())\n .build();\n\nDatabaseConfig east = DatabaseConfig.builder(eastUri)\n .weight(1.0f)\n .build();\n\nRedisURI westUri = RedisURI.builder()\n .withHost(\"redis-west.example.com\")\n .withPort(6379)\n .withPassword(\"secret\".toCharArray())\n .build();\n\nDatabaseConfig west = DatabaseConfig.builder(westUri)\n .weight(0.5f)\n .build();\n\nList<DatabaseConfig> databases = Arrays.asList(east, west);\n```\n\nExample:\n```java\nMultiDbClient client = MultiDbClient.create(databases);\n\n// Connect and use like a regular Redis connection\nStatefulRedisMultiDbConnection<String, String> connection = client.connect();\n\n// Execute commands asynchronously - they go to the highest-weighted\n// healthy database\nconnection.async().set(\"key\", \"value\");\nString value = connection.async().get(\"key\").get();\n\n// Clean up\nconnection.close();\nclient.shutdown();\n```\n\nExample:\n```java\nMultiDbOptions options = MultiDbOptions.builder()\n .failbackSupported(true)\n .failbackCheckInterval(Duration.ofSeconds(30))\n .gracePeriod(Duration.ofSeconds(10))\n .delayInBetweenFailoverAttempts(Duration.ofSeconds(5))\n .initializationPolicy(InitializationPolicy.ALL_AVAILABLE)\n .build();\n\nMultiDbClient client = MultiDbClient.create(Arrays.asList(db1, db2), options);\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.api.CircuitBreakerConfig;\n\nCircuitBreakerConfig cbConfig = CircuitBreakerConfig.builder()\n .failureRateThreshold(50.0f)\n .minimumNumberOfFailures(100)\n .metricsWindowSize(5)\n .build();\n\nDatabaseConfig db = DatabaseConfig.builder(redisUri)\n .circuitBreakerConfig(cbConfig)\n .build();\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.event.DatabaseSwitchEvent;\nimport io.lettuce.core.failover.event.SwitchReason;\n\nclient.getResources().eventBus().get()\n .filter(event -> event instanceof DatabaseSwitchEvent)\n .cast(DatabaseSwitchEvent.class)\n .subscribe(event -> log.info(\"Switch: {} -> {} ({})\",\n event.getFromDb(), event.getToDb(), event.getReason()));\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.event.AllDatabasesUnhealthyEvent;\n\nclient.getResources().eventBus().get()\n .filter(event -> event instanceof AllDatabasesUnhealthyEvent)\n .cast(AllDatabasesUnhealthyEvent.class)\n .subscribe(event -> log.warn(\"All databases unhealthy! Attempts: {}, DBs: {}\",\n event.getFailedAttempts(), event.getUnhealthyDatabases()));\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.health.PingStrategy;\nimport io.lettuce.core.failover.health.HealthCheckStrategy;\n\nHealthCheckStrategy.Config healthConfig = HealthCheckStrategy.Config.builder()\n .interval(5000) // Check every 5 seconds\n .timeout(1000) // 1 second timeout\n .numProbes(3) // 3 probes per check\n .delayInBetweenProbes(500) // 500ms between probes\n .build();\n\nDatabaseConfig db = DatabaseConfig.builder(redisUri)\n .healthCheckStrategySupplier((uri, factory) ->\n new PingStrategy(factory, healthConfig))\n .build();\n```\n\nExample:\n```xml\n<dependency>\n <groupId>io.netty</groupId>\n <artifactId>netty-codec-http</artifactId>\n</dependency>\n<dependency>\n <groupId>com.fasterxml.jackson.core</groupId>\n <artifactId>jackson-databind</artifactId>\n</dependency>\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.health.LagAwareStrategy;\n\nLagAwareStrategy.Config lagConfig = LagAwareStrategy.Config.builder()\n .restApiUri(URI.create(\"https://cluster.redis.local:9443\"))\n .credentials(() -> RedisCredentials.just(\"admin\", \"password\"))\n .extendedCheckEnabled(true) // Enable lag-aware checks\n .availabilityLagTolerance(Duration.ofMillis(100))\n .build();\n\nDatabaseConfig db = DatabaseConfig.builder(redisUri)\n .healthCheckStrategySupplier((uri, factory) -> new LagAwareStrategy(lagConfig))\n .build();\n```\n\nExample:\n```java\n// Custom strategy supplier\npublic class CustomHealthCheck extends AbstractHealthCheckStrategy {\n\n public CustomHealthCheck(HealthCheckStrategy.Config config) {\n super(config);\n }\n\n @Override\n public HealthStatus doHealthCheck(RedisURI endpoint) {\n // Return HealthStatus.HEALTHY, UNHEALTHY, or UNKNOWN\n return checkExternalMonitoringSystem(endpoint)\n ? HealthStatus.HEALTHY : HealthStatus.UNHEALTHY;\n }\n}\n\n// Use with healthCheckStrategySupplier()\nDatabaseConfig db = DatabaseConfig.builder(redisUri)\n .healthCheckStrategySupplier((uri, factory) ->\n new CustomHealthCheck(HealthCheckStrategy.Config.create()))\n .build();\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.health.HealthCheckStrategySupplier;\n\nDatabaseConfig db = DatabaseConfig.builder(redisUri)\n .healthCheckStrategySupplier(HealthCheckStrategySupplier.NO_HEALTH_CHECK)\n .build();\n```\n\nExample:\n```java\nStatefulRedisMultiDbConnection<String, String> connection = client.connect();\n\n// Add a new database\nRedisURI newDb = RedisURI.create(\"redis://new-server:6379\");\nDatabaseConfig newConfig = DatabaseConfig.builder(newDb)\n .weight(0.8f)\n .build();\nconnection.addDatabase(newConfig);\n\n// Remove a database\nconnection.removeDatabase(existingUri);\n```\n\nExample:\n```java\nStatefulRedisMultiDbConnection<String, String> connection = client.connect();\n\n// Get current endpoint\nRedisURI current = connection.getCurrentEndpoint();\n\n// Get all available endpoints\nCollection<RedisURI> endpoints = connection.getEndpoints();\n\n// Check if a specific endpoint is healthy\nboolean healthy = connection.isHealthy(targetUri);\n\n// Force switch to a specific endpoint\nconnection.switchTo(targetUri);\n```\n\nExample:\n```java\nimport io.lettuce.core.failover.api.StatefulRedisMultiDbPubSubConnection;\nimport io.lettuce.core.pubsub.RedisPubSubAdapter;\n\nStatefulRedisMultiDbPubSubConnection<String, String> pubSubConnection =\n client.connectPubSub();\n\n// Register a listener to handle incoming messages.\npubSubConnection.addListener(new RedisPubSubAdapter<String, String>() {\n @Override\n public void message(String channel, String message) {\n System.out.printf(\"Received \\\"%s\\\" on channel \\\"%s\\\"%n\", message, channel);\n }\n});\n\n// Subscribe to one or more channels. If a failover happens, the\n// subscriptions are automatically re-established on the new active database.\npubSubConnection.sync().subscribe(\"news\", \"alerts\");\n```\n\nExample:\n```java\nStatefulRedisMultiDbPubSubConnection<String, String> publisher =\n client.connectPubSub();\n\npublisher.sync().publish(\"news\", \"Hello World\");\n```\n\nExample:\n```text\nlogging.level.io.lettuce.core.failover=DEBUG\n```\n\nExample:\n```java\nHealthCheckStrategy.Config config = HealthCheckStrategy.Config.builder()\n .interval(5000) // Less frequent checks\n .timeout(2000) // More generous timeout\n .build();\n```\n\nExample:\n```java\n// Faster recovery configuration\nHealthCheckStrategy.Config config = HealthCheckStrategy.Config.builder()\n .interval(1000) // More frequent checks\n .build();\n\n// Adjust failback timing\nMultiDbOptions multiConfig = MultiDbOptions.builder()\n .gracePeriod(5000) // Shorter grace period\n .build();\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.230Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":19,"totalLines":273,"estimatedTokens":2112}}569{"id":"doc-zscan_docs-3d32b9d4","source":"documentation","title":"ZSCAN | Docs","url":"https://redis.io/docs/latest/commands/zscan/","text":"{\"acl_categories\":[\"@read\",\"@sortedset\",\"@slow\"],\"arguments\":[{\"display_text\":\"key\",\"key_spec_index\":0,\"name\":\"key\",\"type\":\"key\"},{\"display_text\":\"cursor\",\"name\":\"cursor\",\"type\":\"integer\"},{\"display_text\":\"pattern\",\"name\":\"pattern\",\"optional\":true,\"token\":\"MATCH\",\"type\":\"pattern\"},{\"display_text\":\"count\",\"name\":\"count\",\"optional\":true,\"token\":\"COUNT\",\"type\":\"integer\"}],\"arity\":-3,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"readonly\"],\"complexity\":\"O(1) for every call. O(N) for a complete iteration, including enough command calls for the cursor to return back to 0. N is the number of elements inside the collection.\",\"description\":\"Iterates over members and scores of a sorted set.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"sorted-set\",\"key_specs\":[{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"}}],\"location\":\"body\",\"since\":\"2.8.0\",\"syntax_fmt\":\"ZSCAN key cursor [MATCH pattern] [COUNT count]\",\"title\":\"ZSCAN\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"optional-arguments\",\"title\":\"Optional arguments\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nZSCAN key cursor [MATCH pattern] [COUNT count]\n```\n\nExample:\n```text\nzscan(\n name: KeyT,\n cursor: int = 0,\n match: Union[PatternT, None] = None,\n count: Optional[int] = None,\n score_cast_func: Union[type, Callable] = float\n) → ResponseT\n```\n\nExample:\n```text\nZSCAN(\n key: RedisArgument,\n cursor: RedisArgument,\n options?: ScanCommonOptions\n) → Any\n```\n\nExample:\n```text\nzscan(\n key: byte[],\n cursor: byte[]\n) → ScanResult<Tuple> // OK @deprecated Use Jedis#set(String, String, redis.clients.jedis.params.SetParams) with redis.clients.jedis.params.SetParams#px(long). Deprecated in Jedis 8.0.0. Mirrors Redis deprecation since 2.6.12.\n\nzscan(\n key: Any,\n cursor: Any,\n ScanParams(: new\n) → return // OK @deprecated Use Jedis#set(String, String, redis.clients.jedis.params.SetParams) with redis.clients.jedis.params.SetParams#px(long). Deprecated in Jedis 8.0.0. Mirrors Redis deprecation since 2.6.12.\n\nzscan(\n key: byte[],\n cursor: byte[],\n params: ScanParams\n) → ScanResult<Tuple> // OK @deprecated Use Jedis#set(String, String, redis.clients.jedis.params.SetParams) with redis.clients.jedis.params.SetParams#px(long). Deprecated in Jedis 8.0.0. Mirrors Redis deprecation since 2.6.12.\n\nzscan(\n key: String,\n cursor: String,\n params: ScanParams\n) → ScanResult<Tuple> // OK @deprecated Use Jedis#set(String, String, redis.clients.jedis.params.SetParams) with redis.clients.jedis.params.SetParams#px(long). Deprecated in Jedis 8.0.0. Mirrors Redis deprecation since 2.6.12.\n```\n\nExample:\n```text\nzscan(\n key: K // the key.\n) → ScoredValueScanCursor<V> // StreamScanCursor scan cursor.\n\nzscan(\n key: K, // the key.\n scanArgs: ScanArgs\n) → ScoredValueScanCursor<V> // StreamScanCursor scan cursor.\n\nzscan(\n key: K, // the key.\n scanCursor: ScanCursor, // cursor to resume from a previous scan, must not be null.\n scanArgs: ScanArgs\n) → ScoredValueScanCursor<V> // StreamScanCursor scan cursor.\n\nzscan(\n key: K, // the key.\n scanCursor: ScanCursor // cursor to resume from a previous scan, must not be null.\n) → ScoredValueScanCursor<V> // StreamScanCursor scan cursor.\n\nzscan(\n channel: ScoredValueStreamingChannel<V>, // streaming channel that receives a call for every scored value.\n key: K // the key.\n) → StreamScanCursor // StreamScanCursor scan cursor.\n```\n\nExample:\n```text\nzscan(\n key: K // the key.\n) → RedisFuture<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor.\n\nzscan(\n key: K, // the key.\n scanArgs: ScanArgs\n) → RedisFuture<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor.\n\nzscan(\n key: K, // the key.\n scanCursor: ScanCursor, // cursor to resume from a previous scan, must not be null.\n scanArgs: ScanArgs\n) → RedisFuture<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor.\n\nzscan(\n key: K, // the key.\n scanCursor: ScanCursor // cursor to resume from a previous scan, must not be null.\n) → RedisFuture<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor.\n\nzscan(\n channel: ScoredValueStreamingChannel<V>, // streaming channel that receives a call for every scored value.\n key: K // the key.\n) → RedisFuture<StreamScanCursor> // StreamScanCursor scan cursor.\n```\n\nExample:\n```text\nzscan(\n key: K // the key.\n) → Mono<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zscan.\n\nzscan(\n key: K, // the key.\n scanArgs: ScanArgs\n) → Mono<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zscan.\n\nzscan(\n key: K, // the key.\n scanCursor: ScanCursor, // cursor to resume from a previous scan, must not be null.\n scanArgs: ScanArgs\n) → Mono<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zscan.\n\nzscan(\n key: K, // the key.\n scanCursor: ScanCursor // cursor to resume from a previous scan, must not be null.\n) → Mono<ScoredValueScanCursor<V>> // StreamScanCursor scan cursor. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zscan.\n\nzscan(\n channel: ScoredValueStreamingChannel<V>, // streaming channel that receives a call for every scored value.\n key: K // the key.\n) → Mono<StreamScanCursor> // StreamScanCursor scan cursor. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zscan.\n```\n\nExample:\n```text\nZScan(\n ctx: context.Context,\n key: string,\n cursor: uint64,\n match: string,\n count: int64\n) → *ScanCmd\n```\n\nExample:\n```text\nSortedSetScan(\n key: RedisKey, // The key of the sorted set.\n pattern: RedisValue, // The pattern to match.\n pageSize: int, // The page size to iterate by.\n flags: CommandFlags // The flags to use for this operation.\n) → IEnumerable<SortedSetEntry> // Yields all matching elements of the sorted set.\n\nSortedSetScan(\n key: RedisKey, // The key of the sorted set.\n pattern: RedisValue, // The pattern to match.\n pageSize: int, // The page size to iterate by.\n cursor: long, // The cursor position to start at.\n pageOffset: int, // The page offset to start at.\n flags: CommandFlags // The flags to use for this operation.\n) → IEnumerable<SortedSetEntry> // Yields all matching elements of the sorted set.\n```\n\nExample:\n```text\nzscan(\n $key: string,\n $cursor: int,\n ?array $options = null: Any\n) → array\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.310Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":10,"totalLines":179,"estimatedTokens":1828}}570{"id":"doc-zrevrange_docs-9f39a090","source":"documentation","title":"ZREVRANGE | Docs","url":"https://redis.io/docs/latest/commands/zrevrange/","text":"{\"acl_categories\":[\"@read\",\"@sortedset\",\"@slow\"],\"arguments\":[{\"display_text\":\"key\",\"key_spec_index\":0,\"name\":\"key\",\"type\":\"key\"},{\"display_text\":\"start\",\"name\":\"start\",\"type\":\"integer\"},{\"display_text\":\"stop\",\"name\":\"stop\",\"type\":\"integer\"},{\"display_text\":\"withscores\",\"name\":\"withscores\",\"optional\":true,\"token\":\"WITHSCORES\",\"type\":\"pure-token\"}],\"arity\":-4,\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"command_flags\":[\"readonly\"],\"complexity\":\"O(log(N)+M) with N being the number of elements in the sorted set and M the number of elements returned.\",\"description\":\"Returns members in a sorted set within a range of indexes in reverse order.\",\"duplicateOf\":\"head:data-ai-metadata\",\"group\":\"sorted-set\",\"key_specs\":[{\"RO\":true,\"access\":true,\"begin_search\":{\"spec\":{\"index\":1},\"type\":\"index\"},\"find_keys\":{\"spec\":{\"keystep\":1,\"lastkey\":0,\"limit\":0},\"type\":\"range\"}}],\"location\":\"body\",\"since\":\"1.2.0\",\"syntax_fmt\":\"ZREVRANGE key start stop [WITHSCORES]\",\"title\":\"ZREVRANGE\",\"tableOfContents\":{\"sections\":[{\"id\":\"required-arguments\",\"title\":\"Required arguments\"},{\"id\":\"optional-arguments\",\"title\":\"Optional arguments\"},{\"id\":\"examples\",\"title\":\"Examples\"},{\"id\":\"redis-software-and-redis-cloud-compatibility\",\"title\":\"Redis Software and Redis Cloud compatibility\"},{\"id\":\"return-information\",\"title\":\"Return information\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nZREVRANGE key start stop [WITHSCORES]\n```\n\nExample:\n```text\nzrevrange(\n name: KeyT,\n start: int,\n end: int,\n withscores: bool = False,\n score_cast_func: Union[type, Callable] = float\n) → ResponseT\n```\n\nExample:\n```text\nzrevrange(\n key: String,\n start: long,\n stop: long\n) → List<String>\n```\n\nExample:\n```text\nzrevrange(\n key: K, // the key.\n start: long, // the start.\n stop: long // the stop.\n) → List<V> // Long count of elements in the specified range.\n\nzrevrange(\n channel: ValueStreamingChannel<V>, // streaming channel that receives a call for every scored value.\n key: K, // the key.\n start: long, // the start.\n stop: long // the stop.\n) → Long // Long count of elements in the specified range.\n```\n\nExample:\n```text\nzrevrange(\n key: K, // the key.\n start: long, // the start.\n stop: long // the stop.\n) → RedisFuture<List<V>> // Long count of elements in the specified range.\n\nzrevrange(\n channel: ValueStreamingChannel<V>, // streaming channel that receives a call for every scored value.\n key: K, // the key.\n start: long, // the start.\n stop: long // the stop.\n) → RedisFuture<Long> // Long count of elements in the specified range.\n```\n\nExample:\n```text\nzrevrange(\n key: K, // the key.\n start: long, // the start.\n stop: long // the stop.\n) → Flux<V> // Long count of elements in the specified range. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zrevrange.\n\nzrevrange(\n channel: ValueStreamingChannel<V>, // streaming channel that receives a call for every scored value.\n key: K, // the key.\n start: long, // the start.\n stop: long // the stop.\n) → Mono<Long> // Long count of elements in the specified range. @deprecated since 6.0 in favor of consuming large results through the org.reactivestreams.Publisher returned by #zrevrange.\n```\n\nExample:\n```text\nZRevRange(\n ctx: context.Context,\n key: string,\n start: Any,\n stop: int64\n) → *StringSliceCmd\n```\n\nExample:\n```text\nSortedSetRangeByRank(\n key: RedisKey, // The key of the sorted set.\n start: long, // The start index to get.\n stop: long, // The stop index to get.\n order: Order, // The order to sort by (defaults to ascending).\n flags: CommandFlags // The flags to use for this operation.\n) → RedisValue[] // List of elements in the specified range.\n\nSortedSetRangeByRank(\n key: RedisKey, // The key of the sorted set.\n start: long, // The start index to get.\n stop: long, // The stop index to get.\n order: Order, // The order to sort by (defaults to ascending).\n flags: CommandFlags // The flags to use for this operation.\n) → RedisValue[] // List of elements in the specified range.\n```\n\nExample:\n```text\nzrevrange(\n $key: string,\n $start: int|string,\n $stop: int|string,\n ?array $options = null: Any\n) → array\n```\n\nExample:\n```text\nzrevrange(\n key: K,\n start: isize,\n stop: isize\n) → (Vec<String>)\n\nzrevrange_withscores(\n key: K,\n start: isize,\n stop: isize\n) → (Vec<String>)\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.343Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":10,"totalLines":132,"estimatedTokens":1169}}571{"id":"doc-time_series_docs-c0b95e5c","source":"documentation","title":"Time series | Docs","url":"https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/timeseries/","text":"All products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nTS.CREATE temperature RETENTION 60000 LABELS sensor_id 2 area_id 32\n```\n\nExample:\n```sh\n127.0.0.1:12543> TS.RANGE temperature:3:32 1548149180000 1548149210000 AGGREGATION avg 5000\n 1) 1) (integer) 1548149180000\n 2) \"26.199999999999999\"\n 2) 1) (integer) 1548149185000\n 2) \"27.399999999999999\"\n 3) 1) (integer) 1548149190000\n 2) \"24.800000000000001\"\n 4) 1) (integer) 1548149195000\n 2) \"23.199999999999999\"\n 5) 1) (integer) 1548149200000\n 2) \"25.199999999999999\"\n 6) 1) (integer) 1548149205000\n 2) \"28\"\n 7) 1) (integer) 1548149210000\n 2) \"20\"\n```\n\nExample:\n```sh\n127.0.0.1:12543> TS.RANGE cpu_usage_user{1340993056} 1451606390000 1451609990000 AGGREGATION max 3600000\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.375Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":3,"totalLines":32,"estimatedTokens":226}}572{"id":"doc-redis_modules_api_docs-c0c6109d","source":"documentation","title":"Redis modules API | Docs","url":"https://redis.io/docs/latest/develop/reference/modules/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\",\"oss\",\"kubernetes\",\"clients\"],\"description\":\"Introduction to writing Redis modules\\n\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis modules API\",\"tableOfContents\":{\"sections\":[{\"id\":\"loading-modules\",\"title\":\"Loading modules\"},{\"id\":\"the-simplest-module-you-can-write\",\"title\":\"The simplest module you can write\"},{\"id\":\"module-initialization\",\"title\":\"Module initialization\"},{\"id\":\"module-cleanup\",\"title\":\"Module cleanup\"},{\"id\":\"setup-and-dependencies-of-a-redis-module\",\"title\":\"Setup and dependencies of a Redis module\"},{\"id\":\"passing-configuration-parameters-to-redis-modules\",\"title\":\"Passing configuration parameters to Redis modules\"},{\"id\":\"working-with-redismodulestring-objects\",\"title\":\"Working with RedisModuleString objects\"},{\"id\":\"creating-strings-from-numbers-or-parsing-strings-as-numbers\",\"title\":\"Creating strings from numbers or parsing strings as numbers\"},{\"id\":\"accessing-redis-keys-from-modules\",\"title\":\"Accessing Redis keys from modules\"},{\"id\":\"calling-redis-commands\",\"title\":\"Calling Redis commands\"},{\"id\":\"working-with-redismodulecallreply-objects\",\"title\":\"Working with RedisModuleCallReply objects.\"},{\"id\":\"releasing-call-reply-objects\",\"title\":\"Releasing call reply objects\"},{\"id\":\"returning-values-from-redis-commands\",\"title\":\"Returning values from Redis commands\"},{\"id\":\"returning-arrays-with-dynamic-length\",\"title\":\"Returning arrays with dynamic length\"},{\"id\":\"arity-and-type-checks\",\"title\":\"Arity and type checks\"},{\"id\":\"low-level-access-to-keys\",\"title\":\"Low level access to keys\"},{\"id\":\"getting-the-key-type\",\"title\":\"Getting the key type\"},{\"id\":\"creating-new-keys\",\"title\":\"Creating new keys\"},{\"id\":\"deleting-keys\",\"title\":\"Deleting keys\"},{\"id\":\"managing-key-expires-ttls\",\"title\":\"Managing key expires (TTLs)\"},{\"id\":\"obtaining-the-length-of-values\",\"title\":\"Obtaining the length of values\"},{\"id\":\"string-type-api\",\"title\":\"String type API\"},{\"id\":\"list-type-api\",\"title\":\"List type API\"},{\"id\":\"set-type-api\",\"title\":\"Set type API\"},{\"id\":\"sorted-set-type-api\",\"title\":\"Sorted set type API\"},{\"id\":\"hash-type-api\",\"title\":\"Hash type API\"},{\"id\":\"iterating-aggregated-values\",\"title\":\"Iterating aggregated values\"},{\"id\":\"replicating-commands\",\"title\":\"Replicating commands\"},{\"id\":\"automatic-memory-management\",\"title\":\"Automatic memory management\"},{\"id\":\"allocating-memory-into-modules\",\"title\":\"Allocating memory into modules\"},{\"id\":\"pool-allocator\",\"title\":\"Pool allocator\"},{\"id\":\"writing-commands-compatible-with-redis-cluster\",\"title\":\"Writing commands compatible with Redis Cluster\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nloadmodule /path/to/mymodule.so\n```\n\nExample:\n```text\nMODULE LOAD /path/to/mymodule.so\n```\n\nExample:\n```text\nMODULE LIST\n```\n\nExample:\n```text\nMODULE UNLOAD mymodule\n```\n\nExample:\n```text\n#include \"redismodule.h\"\n#include <stdlib.h>\n\nint HelloworldRand_RedisCommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {\n RedisModule_ReplyWithLongLong(ctx,rand());\n return REDISMODULE_OK;\n}\n\nint RedisModule_OnLoad(RedisModuleCtx *ctx, RedisModuleString **argv, int argc) {\n if (RedisModule_Init(ctx,\"helloworld\",1,REDISMODULE_APIVER_1)\n == REDISMODULE_ERR) return REDISMODULE_ERR;\n\n if (RedisModule_CreateCommand(ctx,\"helloworld.rand\",\n HelloworldRand_RedisCommand, \"fast random\",\n 0, 0, 0) == REDISMODULE_ERR)\n return REDISMODULE_ERR;\n\n return REDISMODULE_OK;\n}\n```\n\nExample:\n```text\nint RedisModule_Init(RedisModuleCtx *ctx, const char *modulename,\n int module_version, int api_version);\n```\n\nExample:\n```text\nint RedisModule_CreateCommand(RedisModuleCtx *ctx, const char *name,\n RedisModuleCmdFunc cmdfunc, const char *strflags,\n int firstkey, int lastkey, int keystep);\n```\n\nExample:\n```text\nint mycommand(RedisModuleCtx *ctx, RedisModuleString **argv, int argc);\n```\n\nExample:\n```text\nint RedisModule_ReplyWithLongLong(RedisModuleCtx *ctx, long long integer);\n```\n\nExample:\n```text\nint RedisModule_OnUnload(RedisModuleCtx *ctx);\n```\n\nExample:\n```text\nif (RedisModule_SetCommandInfo != NULL) {\n RedisModule_SetCommandInfo(cmd, &info);\n}\n```\n\nExample:\n```text\nloadmodule mymodule.so foo bar 1234\n```\n\nExample:\n```text\nconst char *RedisModule_StringPtrLen(RedisModuleString *string, size_t *len);\n```\n\nExample:\n```text\nRedisModuleString *RedisModule_CreateString(RedisModuleCtx *ctx, const char *ptr, size_t len);\n```\n\nExample:\n```text\nvoid RedisModule_FreeString(RedisModuleString *str);\n```\n\nExample:\n```text\nRedisModuleString *mystr = RedisModule_CreateStringFromLongLong(ctx,10);\n```\n\nExample:\n```text\nlong long myval;\nif (RedisModule_StringToLongLong(ctx,argv[1],&myval) == REDISMODULE_OK) {\n /* Do something with 'myval' */\n}\n```\n\nExample:\n```text\nRedisModuleCallReply *reply;\nreply = RedisModule_Call(ctx,\"INCRBY\",\"sc\",argv[1],\"10\");\n```\n\nExample:\n```text\nreply = RedisModule_Call(ctx,\"INCRBY\",\"sc\",argv[1],\"10\");\nif (RedisModule_CallReplyType(reply) == REDISMODULE_REPLY_INTEGER) {\n long long myval = RedisModule_CallReplyInteger(reply);\n /* Do something with myval. */\n}\n```\n\nExample:\n```text\nsize_t reply_len = RedisModule_CallReplyLength(reply);\n```\n\nExample:\n```text\nlong long reply_integer_val = RedisModule_CallReplyInteger(reply);\n```\n\nExample:\n```text\nRedisModuleCallReply *subreply;\nsubreply = RedisModule_CallReplyArrayElement(reply,idx);\n```\n\nExample:\n```text\nsize_t len;\nchar *ptr = RedisModule_CallReplyStringPtr(reply,&len);\n```\n\nExample:\n```text\nRedisModuleString *mystr = RedisModule_CreateStringFromCallReply(myreply);\n```\n\nExample:\n```text\nRedisModule_ReplyWithError(RedisModuleCtx *ctx, const char *err);\n```\n\nExample:\n```text\nREDISMODULE_ERRORMSG_WRONGTYPE\n```\n\nExample:\n```text\nRedisModule_ReplyWithError(ctx,\"ERR invalid arguments\");\n```\n\nExample:\n```text\nRedisModule_ReplyWithLongLong(ctx,12345);\n```\n\nExample:\n```text\nRedisModule_ReplyWithSimpleString(ctx,\"OK\");\n```\n\nExample:\n```text\nint RedisModule_ReplyWithStringBuffer(RedisModuleCtx *ctx, const char *buf, size_t len);\n\nint RedisModule_ReplyWithString(RedisModuleCtx *ctx, RedisModuleString *str);\n```\n\nExample:\n```text\nRedisModule_ReplyWithArray(ctx,2);\nRedisModule_ReplyWithStringBuffer(ctx,\"age\",3);\nRedisModule_ReplyWithLongLong(ctx,22);\n```\n\nExample:\n```text\nRedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_LEN);\n```\n\nExample:\n```text\nRedisModule_ReplySetArrayLength(ctx, number_of_items);\n```\n\nExample:\n```text\nRedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_LEN);\nnumber_of_factors = 0;\nwhile(still_factors) {\n RedisModule_ReplyWithLongLong(ctx, some_factor);\n number_of_factors++;\n}\nRedisModule_ReplySetArrayLength(ctx, number_of_factors);\n```\n\nExample:\n```text\nRedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_LEN);\n... generate 100 elements ...\nRedisModule_ReplyWithArray(ctx, REDISMODULE_POSTPONED_LEN);\n... generate 10 elements ...\nRedisModule_ReplySetArrayLength(ctx, 10);\nRedisModule_ReplySetArrayLength(ctx, 100);\n```\n\nExample:\n```text\nif (argc != 2) return RedisModule_WrongArity(ctx);\n```\n\nExample:\n```text\nRedisModuleKey *key = RedisModule_OpenKey(ctx,argv[1],\n REDISMODULE_READ|REDISMODULE_WRITE);\n\nint keytype = RedisModule_KeyType(key);\nif (keytype != REDISMODULE_KEYTYPE_STRING &&\n keytype != REDISMODULE_KEYTYPE_EMPTY)\n{\n RedisModule_CloseKey(key);\n return RedisModule_ReplyWithError(ctx,REDISMODULE_ERRORMSG_WRONGTYPE);\n}\n```\n\nExample:\n```text\nRedisModuleKey *key;\nkey = RedisModule_OpenKey(ctx,argv[1],REDISMODULE_READ);\n```\n\nExample:\n```text\nRedisModule_CloseKey(key);\n```\n\nExample:\n```text\nint keytype = RedisModule_KeyType(key);\n```\n\nExample:\n```text\nREDISMODULE_KEYTYPE_EMPTY\nREDISMODULE_KEYTYPE_STRING\nREDISMODULE_KEYTYPE_LIST\nREDISMODULE_KEYTYPE_HASH\nREDISMODULE_KEYTYPE_SET\nREDISMODULE_KEYTYPE_ZSET\n```\n\nExample:\n```text\nRedisModuleKey *key;\nkey = RedisModule_OpenKey(ctx,argv[1],REDISMODULE_WRITE);\nif (RedisModule_KeyType(key) == REDISMODULE_KEYTYPE_EMPTY) {\n RedisModule_StringSet(key,argv[2]);\n}\n```\n\nExample:\n```text\nRedisModule_DeleteKey(key);\n```\n\nExample:\n```text\nmstime_t RedisModule_GetExpire(RedisModuleKey *key);\n```\n\nExample:\n```text\nint RedisModule_SetExpire(RedisModuleKey *key, mstime_t expire);\n```\n\nExample:\n```text\nsize_t len = RedisModule_ValueLength(key);\n```\n\nExample:\n```text\nint RedisModule_StringSet(RedisModuleKey *key, RedisModuleString *str);\n```\n\nExample:\n```text\nsize_t len, j;\nchar *myptr = RedisModule_StringDMA(key,&len,REDISMODULE_WRITE);\nfor (j = 0; j < len; j++) myptr[j] = 'A';\n```\n\nExample:\n```text\nRedisModule_StringTruncate(mykey,1024);\n```\n\nExample:\n```text\nint RedisModule_ListPush(RedisModuleKey *key, int where, RedisModuleString *ele);\nRedisModuleString *RedisModule_ListPop(RedisModuleKey *key, int where);\n```\n\nExample:\n```text\nREDISMODULE_LIST_HEAD\nREDISMODULE_LIST_TAIL\n```\n\nExample:\n```text\nreply = RedisModule_Call(ctx,\"INCRBY\",\"!sc\",argv[1],\"10\");\n```\n\nExample:\n```text\nRedisModule_ReplicateVerbatim(ctx);\n```\n\nExample:\n```text\nRedisModule_Replicate(ctx,\"INCRBY\",\"cl\",\"foo\",my_increment);\n```\n\nExample:\n```text\nRedisModule_AutoMemory(ctx);\n```\n\nExample:\n```text\nvoid *RedisModule_Alloc(size_t bytes);\nvoid* RedisModule_Realloc(void *ptr, size_t bytes);\nvoid RedisModule_Free(void *ptr);\nvoid RedisModule_Calloc(size_t nmemb, size_t size);\nchar *RedisModule_Strdup(const char *str);\n```\n\nExample:\n```text\nvoid *RedisModule_PoolAlloc(RedisModuleCtx *ctx, size_t bytes);\n```\n\nExample:\n```text\nRedisModule_IsKeysPositionRequest(ctx);\nRedisModule_KeyAtPos(ctx,pos);\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:41.385Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":58,"totalLines":371,"estimatedTokens":2436}}573{"id":"doc-redis_context_retriever_on_redis_cloud_docs-597ca811","source":"documentation","title":"Redis Context Retriever on Redis Cloud | Docs","url":"https://redis.io/docs/latest/operate/rc/context-engine/context-retriever/","text":"{\"categories\":[\"docs\",\"operate\",\"rc\"],\"description\":\"Expose schema first retrieval tools from your Redis Cloud data to AI agents.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis Context Retriever on Redis Cloud\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.288Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":111}}574{"id":"doc-create_data_pipeline_docs-7d3ef37e","source":"documentation","title":"Create data pipeline | Docs","url":"https://redis.io/docs/latest/operate/rc/rdi/define/","text":"{\"categories\":[\"docs\",\"operate\",\"rc\"],\"description\":\"Define the source connection and data pipeline.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Create data pipeline\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.292Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":100}}575{"id":"doc-upgrade_a_redis_software_database_docs-72c57911","source":"documentation","title":"Upgrade a Redis Software database | Docs","url":"https://redis.io/docs/latest/operate/rs/installing-upgrading/upgrading/upgrade-database/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Upgrade a Redis Software database.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Upgrade a Redis Software database\",\"tableOfContents\":{\"sections\":[{\"id\":\"default-db-versions\",\"title\":\"Default Redis database versions\"},{\"id\":\"upgrade-prerequisites\",\"title\":\"Upgrade prerequisites\"},{\"id\":\"upgrade-database\",\"title\":\"Upgrade database\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nrladmin status extra all\n```\n\nExample:\n```sh\nrladmin upgrade db <database name | database ID> preserve_roles\n```\n\nExample:\n```sh\nrladmin> upgrade db demo\nMonitoring d194c4a3-631c-4726-b799-331b399fc85c\nactive - SMUpgradeBDB init\nactive - SMUpgradeBDB wait_for_version\nactive - SMUpgradeBDB configure_shards\ncompleted - SMUpgradeBDB\nDone\n```\n\nExample:\n```sh\nrladmin upgrade db <database name | database ID> redis_version <version> preserve_roles\n```\n\nExample:\n```sh\nrladmin status databases extra all\n```\n\nExample:\n```sh\nPOST https://<host>:<port>/v1/bdbs/<database_id>/upgrade\n{\n \"preserve_roles\": true,\n // Additional fields\n}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.306Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":6,"totalLines":45,"estimatedTokens":310}}576{"id":"doc-customize_system_user_and_group_docs-f8751943","source":"documentation","title":"Customize system user and group | Docs","url":"https://redis.io/docs/latest/operate/rs/installing-upgrading/install/customize-user-and-group/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Specify the user and group who own all Redis Software processes.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Customize system user and group\",\"tableOfContents\":{\"sections\":[{\"id\":\"considerations\",\"title\":\"Considerations\"},{\"id\":\"install-with-custom-user-or-group\",\"title\":\"Install with custom user or group\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nsudo ./install.sh --os-user <user> --os-group <group>\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.308Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":1,"totalLines":10,"estimatedTokens":159}}577{"id":"doc-use_redis_insight_on_redis_cloud_docs-5288b91b","source":"documentation","title":"Use Redis Insight on Redis Cloud | Docs","url":"https://redis.io/docs/latest/operate/rc/databases/connect/insight-cloud/","text":"{\"categories\":[\"docs\",\"operate\",\"rc\",\"redisinsight\"],\"description\":\"Shows how to open your database in a browser-based version of Redis Insight and lists the features that are available.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Use Redis Insight on Redis Cloud\",\"tableOfContents\":{\"sections\":[{\"id\":\"browse\",\"title\":\"Browse\"},{\"id\":\"cli-and-command-helper\",\"title\":\"CLI and Command Helper\"},{\"id\":\"workbench\",\"title\":\"Workbench\"},{\"id\":\"insights\",\"title\":\"Insights\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.308Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":167}}578{"id":"doc-check_database_availability_for_monitoring_and_l-d55b692f","source":"documentation","title":"Check database availability for monitoring and load balancers | Docs","url":"https://redis.io/docs/latest/operate/rs/monitoring/db-availability/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Verify if a Redis Software database is available to perform read and write operations and can respond to queries from client applications.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Check database availability for monitoring and load balancers\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nGET /v1/bdbs/<database_id>/availability\n```\n\nExample:\n```sh\nGET /v1/local/bdbs/<database_id>/endpoint/availability\n```\n\nExample:\n```sh\nPUT /v1/cluster\n{ \"availability_lag_tolerance_ms\": 100 }\n```\n\nExample:\n```sh\nGET /v1/bdbs/<database_id>/availability?extend_check=lag\n```\n\nExample:\n```sh\nGET /v1/bdbs/<database_id>/availability?extend_check=lag&availability_lag_tolerance_ms=100\n```\n\nExample:\n```sh\nGET /v1/local/bdbs/<database_id>/endpoint/availability?extend_check=lag\n```\n\nExample:\n```sh\nGET /v1/local/bdbs/<database_id>/endpoint/availability?extend_check=lag&availability_lag_tolerance_ms=100\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.323Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":7,"totalLines":41,"estimatedTokens":287}}579{"id":"doc-configures_static_ips_for_a_project_vercel_sdk-e40ee35d","source":"documentation","title":"Configures Static IPs for a project | Vercel SDK","url":"https://vercel.com/docs/rest-api/sdk/networking/configures-static-ips-for-a-project","text":"This page is not in the current cross-link map.\n\nExample:\n```typescript\n1import { Vercel } from \"@vercel/sdk\";2\n3const vercel = new Vercel({4 bearerToken: \"<YOUR_BEARER_TOKEN_HERE>\",5});6\n7async function run() {8 const result = await vercel.networking.updateStaticIps({9 idOrName: \"<value>\",10 teamId: \"team_1a2b3c4d5e6f7g8h9i0j1k2l\",11 slug: \"my-team-url-slug\",12 requestBody: {13 regions: [14 \"iad1\",15 ],16 },17 });18\n19 console.log(result);20}21\n22run();\n```\n\nExample:\n```json\n1[2 {3 \"envId\": \"example_id\",4 \"connectConfigurationId\": \"example_id\",5 \"dc\": \"string\",6 \"passive\": \"false\",7 \"buildsEnabled\": \"false\",8 \"aws\": {9 \"subnetIds\": [],10 \"securityGroupId\": \"https://example.com\"11 },12 \"createdAt\": \"123\",13 \"updatedAt\": \"123\"14 }15]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.518Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":17,"estimatedTokens":209}}580{"id":"doc-get_logs_for_a_deployment_vercel_sdk-e77e66da","source":"documentation","title":"Get logs for a deployment | Vercel SDK","url":"https://vercel.com/docs/rest-api/sdk/logs/get-logs-for-a-deployment","text":"This page is not in the current cross-link map.\n\nExample:\n```typescript\n1import { Vercel } from \"@vercel/sdk\";2\n3const vercel = new Vercel({4 bearerToken: \"<YOUR_BEARER_TOKEN_HERE>\",5});6\n7async function run() {8 const result = await vercel.logs.getRuntimeLogs({9 projectId: \"<id>\",10 deploymentId: \"<id>\",11 teamId: \"team_1a2b3c4d5e6f7g8h9i0j1k2l\",12 slug: \"my-team-url-slug\",13 });14\n15 console.log(result);16}17\n18run();\n```\n\nExample:\n```json\n1{2 \"level\": \"debug\",3 \"message\": \"string\",4 \"rowId\": \"example_id\",5 \"source\": \"delimiter\",6 \"timestampInMs\": \"123\",7 \"domain\": \"string\",8 \"messageTruncated\": \"false\",9 \"requestMethod\": \"string\",10 \"requestPath\": \"string\",11 \"responseStatusCode\": \"123\"12}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.602Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":17,"estimatedTokens":187}}581{"id":"doc-streaming-2245ec79","source":"documentation","title":"Streaming","url":"https://vercel.com/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming","text":"AI GatewaySDKs & APIsOpenAI Chat Completions APIStreaming\n\nCross-link (/docs/ai-gateway/sdks-and-apis/openai-chat-completions/streaming)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesStreaming — Stream Anthropic Messages API responses token by token as they are generated.Streaming — Stream responses token by token using the OpenResponses API.Streaming — Stream tokens as they are generated with the OpenAI Responses API.Chat Completions — Create chat completions using the Chat Completions API with support for streaming, image attachments, and PDF documents.Streaming — Learn how to stream responses from Vercel Functions.PrerequisitesAI Gateway — AI Gateway provides a unified API to access hundreds of AI models through a single endpoint, with text, image, and videoSDKs & APIs — Use the AI Gateway with various SDKs and API specifications including OpenAI, Anthropic, and OpenResponses.This page links to (4)Advanced — Configure provider options, model fallbacks, BYOK credentials, and prompt caching.Chat Completions — Create chat completions using the Chat Completions API with support for streaming, image attachments, and PDF documents.Reasoning — Control how much a model thinks before answering with the OpenAI Chat Completions API.Tool Calling — Use function calling with the Chat Completions API to enable models to call tools and functions through AI Gateway.Pages that link here (3)By (3)SDKs & APIs — Use the AI Gateway with various SDKs and API specifications including OpenAI, Anthropic, and OpenResponses.OpenAI Chat Completions API — Use the OpenAI Chat Completions API with AI Gateway for seamless integration with existing tools and libraries.Chat Completions — Create chat completions using the Chat Completions API with support for streaming, image attachments, and PDF documents.\n\nExample:\n```text\ncurl -X POST \"https://ai-gateway.vercel.sh/v1/chat/completions\" \\\n -H \"Authorization: Bearer $AI_GATEWAY_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"anthropic/claude-opus-5\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Write a one-sentence bedtime story about a unicorn.\"\n }\n ],\n \"stream\": true\n }'\n```\n\nExample:\n```text\nimport OpenAI from 'openai';\n \nconst apiKey = process.env.AI_GATEWAY_API_KEY || process.env.VERCEL_OIDC_TOKEN;\n \nconst openai = new OpenAI({\n apiKey,\n baseURL: 'https://ai-gateway.vercel.sh/v1',\n});\n \nconst stream = await openai.chat.completions.create({\n model: 'anthropic/claude-opus-5',\n messages: [\n {\n role: 'user',\n content: 'Write a one-sentence bedtime story about a unicorn.',\n },\n ],\n stream: true,\n});\n \nfor await (const chunk of stream) {\n const content = chunk.choices[0]?.delta?.content;\n if (content) {\n process.stdout.write(content);\n }\n}\n```\n\nExample:\n```text\nimport os\nfrom openai import OpenAI\n \napi_key = os.getenv('AI_GATEWAY_API_KEY') or os.getenv('VERCEL_OIDC_TOKEN')\n \nclient = OpenAI(\n api_key=api_key,\n base_url='https://ai-gateway.vercel.sh/v1'\n)\n \nstream = client.chat.completions.create(\n model='anthropic/claude-opus-5',\n messages=[\n {\n 'role': 'user',\n 'content': 'Write a one-sentence bedtime story about a unicorn.'\n }\n ],\n stream=True,\n)\n \nfor chunk in stream:\n content = chunk.choices[0].delta.content\n if content:\n print(content, end='', flush=True)\n```\n\nExample:\n```text\ndata: {\"id\":\"chatcmpl-123\",\"object\":\"chat.completion.chunk\",\"created\":1677652288,\"model\":\"anthropic/claude-opus-5\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\"Once\"},\"finish_reason\":null}]}\n \ndata: {\"id\":\"chatcmpl-123\",\"object\":\"chat.completion.chunk\",\"created\":1677652288,\"model\":\"anthropic/claude-opus-5\",\"choices\":[{\"index\":0,\"delta\":{\"content\":\" upon\"},\"finish_reason\":null}]}\n \ndata: [DONE]\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.619Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":4,"totalLines":90,"estimatedTokens":997}}582{"id":"doc-set_the_python_version_for_your_vercel_project-22bc0f77","source":"documentation","title":"Set the Python version for your Vercel project","url":"https://vercel.com/docs/functions/runtimes/python/python-version","text":"Cross-link version (/docs/functions/runtimes/python/python-version)From the Vercel docs graph (built :14.592Z), spanning vercel.com docs + KB, nextjs.org, ai-sdk.dev, and other Vercel documentation sites. Full graph as ://vercel.com/docs/graph.jsonSemantically closest pagesPython — Learn how to use the Python runtime to run Python applications on Vercel.Supported Node.js versions — Learn about the supported Node.js versions on Vercel.Runtime — Learn how to configure the runtime for Vercel Functions.How do I use the latest npm version for my Vercel Deployment? — Learn how to use the latest npm version for Vercel deployments.Ruby — Learn how to use the Ruby runtime to compile Ruby Vercel Functions on Vercel.PrerequisitesFunctions — Run server-side code on Vercel without managing a server.Runtimes — Runtimes transform your source code into Functions, which are served by our CDN. Learn about the official runtimes suppoThis page links to (1)Python — Learn how to use the Python runtime to run Python applications on Vercel.Pages that link here (2)By (1) · vercel-docs (1)From vercel-kbHow to ship a Flask app on Vercel — Deploy a Flask app to Vercel with zero configuration. Learn how to ship from a template, the Vercel CLI, or Git, and conFrom vercel-docsPython — Learn how to use the Python runtime to run Python applications on Vercel.\n\nExample:\n```text\n[project]\nrequires-python = \">=3.12\"\n```\n\nExample:\n```text\n3.13\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.697Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":14,"estimatedTokens":362}}583{"id":"doc-list_flags_vercel_sdk-18b6fd5d","source":"documentation","title":"List flags | Vercel SDK","url":"https://vercel.com/docs/rest-api/sdk/feature-flags/list-flags-1","text":"This page is not in the current cross-link map.\n\nExample:\n```typescript\n1import { Vercel } from \"@vercel/sdk\";2\n3const vercel = new Vercel({4 bearerToken: \"<YOUR_BEARER_TOKEN_HERE>\",5});6\n7async function run() {8 const result = await vercel.featureFlags.listFlags({9 projectIdOrName: \"<value>\",10 teamId: \"team_1a2b3c4d5e6f7g8h9i0j1k2l\",11 slug: \"my-team-url-slug\",12 });13\n14 console.log(result);15}16\n17run();\n```\n\nExample:\n```json\n1{2 \"data\": [3 {4 \"description\": \"string\",5 \"maintainerIds\": [],6 \"permanent\": \"false\",7 \"tags\": [],8 \"experiment\": {9 \"id\": \"icfg_1234567890\",10 \"name\": \"Example Name\",11 \"numVariants\": \"123\",12 \"surfaceArea\": \"string\",13 \"stickyRequirement\": \"false\",14 \"layer\": \"string\",15 \"guardrailMetrics\": [16 {17 \"description\": \"string\",18 \"metricFormula\": \"string\",19 \"name\": \"Example Name\",20 \"metricType\": \"count\",21 \"metricUnit\": \"session\",22 \"directionality\": \"decreaseIsGood\"23 }24 ],25 \"hypothesis\": \"string\",26 \"device\": \"android\",27 \"controlVariantId\": \"example_id\",28 \"startedAt\": \"123\",29 \"endedAt\": \"123\",30 \"decision\": \"string\",31 \"decisionReason\": \"Customer requested refund\",32 \"duration\": \"123\",33 \"durationUnit\": \"days\",34 \"allocationPercent\": \"123\",35 \"allocationUnit\": \"cookieId\",36 \"primaryMetrics\": [37 {38 \"description\": \"string\",39 \"metricFormula\": \"string\",40 \"name\": \"Example Name\",41 \"metricType\": \"count\",42 \"metricUnit\": \"session\",43 \"directionality\": \"decreaseIsGood\"44 }45 ],46 \"status\": \"closed\"47 },48 \"updatedBy\": \"string\",49 \"variants\": [50 \"value\"51 ],52 \"id\": \"icfg_1234567890\",53 \"environments\": \"value\",54 \"kind\": \"boolean\",55 \"revision\": \"123\",56 \"seed\": \"123\",57 \"state\": \"active\",58 \"slug\": \"string\",59 \"createdAt\": \"123\",60 \"updatedAt\": \"123\",61 \"createdBy\": \"string\",62 \"ownerId\": \"example_id\",63 \"projectId\": \"example_id\",64 \"typeName\": \"flag\",65 \"metadata\": {66 \"creator\": {67 \"id\": \"icfg_1234567890\",68 \"name\": \"Example Name\"69 }70 }71 }72 ],73 \"pagination\": {74 \"next\": \"string\"75 }76}\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:53.809Z","totalSectionsIncluded":1,"totalCodeBlocksIncluded":2,"totalLines":17,"estimatedTokens":621}}584{"id":"doc-edit_redis_enterprise_remote_clusters_docs-c38cd81d","source":"documentation","title":"Edit Redis Enterprise remote clusters | Docs","url":"https://redis.io/docs/latest/operate/kubernetes/active-active/edit-rerc/","text":"{\"categories\":[\"docs\",\"operate\",\"kubernetes\"],\"description\":\"Edit the configuration details of an existing RERC with Redis Enterprise for Kubernetes.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Edit Redis Enterprise remote clusters\",\"tableOfContents\":{\"sections\":[{\"id\":\"edit-rerc\",\"title\":\"Edit RERC\"},{\"id\":\"update-rerc-secret\",\"title\":\"Update RERC secret\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nkubectl patch rerc rerc-ohare --type merge --patch \\\n'{\"spec\":{\"dbFqdnSuffix\": \".example2-cluster-rec-chicago-ns-illinois.example.com\"}}'\n```\n\nExample:\n```yaml\napiVersion: v1\ndata:\n password: PHNvbWUgcGFzc3dvcmQ+\n username: PHNvbWUgdXNlcj4\nkind: Secret\nmetadata:\n name: redis-enterprise-rerc-ohare\ntype: Opaque\n```\n\nExample:\n```sh\nkubectl apply -f <secret-file>\n```\n\nExample:\n```sh\nkubectl get rerc <rerc-name>\n```\n\nExample:\n```sh\nNAME STATUS SPEC STATUS LOCAL\n rerc-ohare Active Valid true\n```\n\nExample:\n```sh\nkubectl get reaadb reaadb-boeing\n```\n\nExample:\n```sh\nNAME STATUS SPEC STATUS LINKED REDBS REPLICATION STATUS\nreaadb-boeing active Valid up\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.340Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":7,"totalLines":50,"estimatedTokens":326}}585{"id":"doc-optimize_clusters_docs-adbc6efc","source":"documentation","title":"Optimize clusters | Docs","url":"https://redis.io/docs/latest/operate/rs/clusters/optimize/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Configuration changes and information you can use to optimize your performance and memory usage.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Optimize clusters\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.354Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":111}}586{"id":"doc-rladmin_node_docs-fcd3eabb","source":"documentation","title":"rladmin node | Docs","url":"https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/node/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Manage nodes.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"rladmin node\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.357Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":89}}587{"id":"doc-rladmin_info_docs-39f84c2c","source":"documentation","title":"rladmin info | Docs","url":"https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/info/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Shows the current configuration of a cluster, database, node, or proxy.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"rladmin info\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nrladmin info cluster\n```\n\nExample:\n```sh\n$ rladmin info cluster\nCluster configuration:\n repl_diskless: enabled\n shards_overbooking: disabled\n default_non_sharded_proxy_policy: single\n default_sharded_proxy_policy: single\n default_shards_placement: dense\n default_fork_evict_ram: enabled\n default_provisioned_redis_version: 6.0\n redis_migrate_node_threshold: 0KB (0 bytes)\n redis_migrate_node_threshold_percent: 4 (%)\n redis_provision_node_threshold: 0KB (0 bytes)\n redis_provision_node_threshold_percent: 12 (%)\n max_simultaneous_backups: 4\n slave_ha: enabled\n slave_ha_grace_period: 600\n slave_ha_cooldown_period: 3600\n slave_ha_bdb_cooldown_period: 7200\n parallel_shards_upgrade: 0\n show_internals: disabled\n expose_hostnames_for_all_suffixes: disabled\n login_lockout_threshold: 5\n login_lockout_duration: 1800\n login_lockout_counter_reset_after: 900\n default_concurrent_restore_actions: 10\n endpoint_rebind_propagation_grace_time: 15\n data_internode_encryption: disabled\n redis_upgrade_policy: major\n db_conns_auditing: disabled\n watchdog profile: local-network\n http support: enabled\n upgrade mode: disabled\n cm_session_timeout_minutes: 15\n cm_port: 8443\n cnm_http_port: 8080\n cnm_https_port: 9443\n bigstore_driver: speedb\n```\n\nExample:\n```sh\nrladmin info db [ {db:<id> | <name>} ]\n```\n\nExample:\n```sh\n$ rladmin info db db:1\ndb:1 [database1]:\n client_buffer_limits: 1GB (hard limit)/512MB (soft limit) in 30 seconds\n slave_buffer: auto\n pubsub_buffer_limits: 32MB (hard limit)/8MB (soft limit) in 60 seconds\n proxy_client_buffer_limits: 0KB (hard limit)/0KB (soft limit) in 0 seconds\n proxy_slave_buffer_limits: 1GB (hard limit)/512MB (soft limit) in 60 seconds\n proxy_pubsub_buffer_limits: 32MB (hard limit)/8MB (soft limit) in 60 seconds\n repl_backlog: 1.02MB (1073741 bytes)\n repl_timeout: 360 seconds\n repl_diskless: default\n master_persistence: disabled\n maxclients: 10000\n conns: 5\n conns_type: per-thread\n sched_policy: cmp\n max_aof_file_size: 300GB\n max_aof_load_time: 3600 seconds\n dedicated_replicaof_threads: 5\n max_client_pipeline: 200\n max_shard_pipeline: 2000\n max_connections: 0\n oss_cluster: disabled\n oss_cluster_api_preferred_ip_type: internal\n gradual_src_mode: disabled\n gradual_src_max_sources: 1\n gradual_sync_mode: auto\n gradual_sync_max_shards_per_source: 1\n slave_ha: disabled (database)\n mkms: enabled\n oss_sharding: disabled\n mtls_allow_weak_hashing: disabled\n mtls_allow_outdated_certs: disabled\n data_internode_encryption: disabled\n proxy_policy: single\n db_conns_auditing: disabled\n syncer_mode: centralized\n```\n\nExample:\n```sh\nrladmin info node [ <id> ]\n```\n\nExample:\n```sh\n$ rladmin info node 3\nCommand Output: node:3\n address: 198.51.100.17\n external addresses: N/A\n recovery path: N/A\n quorum only: disabled\n max redis servers: 100\n max listeners: 100\n```\n\nExample:\n```sh\nrladmin info proxy { <id> | all }\n```\n\nExample:\n```sh\n$ rladmin info proxy\nproxy:1\n mode: dynamic\n scale_threshold: 80 (%)\n scale_duration: 30 (seconds)\n max_threads: 8\n threads: 3\n```\n\nExample:\n```sh\nrladmin info metrics\n```\n\nExample:\n```sh\n$ rladmin info metrics\nMetrics configuration:\n key_distribution_enabled: True\n key_size_buckets: 128M,512M\n key_items_buckets: 1M,8M\n local_storage_max_size_mb: 1024\n local_storage_retention_days: 8\n expose_db_tags: True\n metrics_tag_keys_exposed: env,team\n max_requests_in_flight: 2\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.361Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":10,"totalLines":149,"estimatedTokens":1009}}588{"id":"doc-redis_cli_docs-61a54d74","source":"documentation","title":"redis-cli | Docs","url":"https://redis.io/docs/latest/operate/rs/references/cli-utilities/redis-cli/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\",\"rc\"],\"description\":\"Run Redis commands.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"redis-cli\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\n$ redis-cli -h <endpoint> -p <port> -a <password>\n```\n\nExample:\n```sh\n$ export REDISCLI_AUTH=<password>\n$ redis-cli -h <endpoint> -p <port>\n```\n\nExample:\n```sh\nredis-cli -h <endpoint> -p <port> --tls --cacert <redis_cert>.pem\n```\n\nExample:\n```sh\nredis-cli -h <endpoint> -p <port> --tls --cacert <redis_cert>.pem \\\n --cert redis_user.crt --key redis_user_private.key\n```\n\nExample:\n```sh\n$ docker exec -it <Redis container name> redis-cli -p <port>\n```\n\nExample:\n```sh\n$ redis-cli -h <endpoint> -p <port> <Redis command>\n```\n\nExample:\n```sh\n$ redis-cli -h <endpoint> -p 12000 PING\nPONG\n$ redis-cli -h <endpoint> -p 12000 SET mykey \"Hello world\"\nOK\n$ redis-cli -h <endpoint> -p 12000 GET mykey \n\"Hello world\"\n```\n\nExample:\n```sh\n$ redis-cli -p 12000\n127.0.0.1:12000> PING\nPONG\n127.0.0.1:12000> SET mykey \"Hello world\"\nOK\n127.0.0.1:12000> GET mykey\n\"Hello world\"\n```\n\nExample:\n```sh\nredis-cli -h <endpoint> -p <port> slowlog get <number of entries>\n```\n\nExample:\n```sh\nredis-cli -h <endpoint> -p <port> --bigkeys\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.362Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":10,"totalLines":68,"estimatedTokens":352}}589{"id":"doc-rladmin_suffix_docs-231b6726","source":"documentation","title":"rladmin suffix | Docs","url":"https://redis.io/docs/latest/operate/rs/references/cli-utilities/rladmin/suffix/","text":"{\"categories\":[\"docs\",\"operate\",\"rs\"],\"description\":\"Manages the DNS suffixes in the cluster.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"rladmin suffix\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```sh\nrladmin suffix add name <name>\n [default]\n [internal]\n [mdns]\n [use_aaaa_ns]\n [slaves <ip>..]\n```\n\nExample:\n```sh\n$ rladmin suffix add name new.rediscluster.local\nAdded suffixes successfully\n```\n\nExample:\n```sh\nrladmin suffix delete name <name>\n```\n\nExample:\n```sh\n$ rladmin suffix delete name new.rediscluster.local\nSuffix deleted successfully\n```\n\nExample:\n```sh\nrladmin suffix list\n```\n\nExample:\n```sh\n$ rladmin suffix list\nList of all suffixes:\ncluster.local\nnew.rediscluster.local\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.362Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":6,"totalLines":45,"estimatedTokens":232}}590{"id":"doc-architecture_docs-5a344431","source":"documentation","title":"Architecture | Docs","url":"https://redis.io/docs/latest/develop/ai/redisvl/concepts/architecture/","text":"{\"categories\":null,\"description\":\"\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Architecture\",\"tableOfContents\":{\"sections\":[{\"id\":\"the-core-pattern\",\"title\":\"The Core Pattern\"},{\"id\":\"schemas-as-contracts\",\"title\":\"Schemas as Contracts\"},{\"id\":\"query-composition\",\"title\":\"Query Composition\"},{\"id\":\"extensions-as-patterns\",\"title\":\"Extensions as Patterns\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.369Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":139}}591{"id":"doc-deploy_redis_enterprise_with_openshift_operatorh-e07b5dc2","source":"documentation","title":"Deploy Redis Enterprise with OpenShift OperatorHub | Docs","url":"https://redis.io/docs/latest/operate/kubernetes/deployment/openshift/openshift-operatorhub/","text":"{\"categories\":[\"docs\",\"operate\",\"kubernetes\"],\"description\":\"OpenShift provides the OperatorHub where you can install the Redis Enterprise operator from the administrator user interface.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Deploy Redis Enterprise with OpenShift OperatorHub\",\"tableOfContents\":{\"sections\":[{\"id\":\"install-the-redis-enterprise-operator\",\"title\":\"Install the Redis Enterprise operator\"},{\"id\":\"security-context-constraints\",\"title\":\"Security context constraints\"},{\"id\":\"create-redis-enterprise-custom-resources\",\"title\":\"Create Redis Enterprise custom resources\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.385Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":197}}592{"id":"doc-redis_agent_memory_developer_guide_docs-de749f50","source":"documentation","title":"Redis Agent Memory developer guide | Docs","url":"https://redis.io/docs/latest/develop/ai/context-engine/agent-memory/developer-guide/","text":"{\"categories\":[\"docs\",\"develop\",\"ai\"],\"description\":\"Connect an application to Redis Agent Memory and work with session memory and long-term memory through Python, TypeScript, or REST.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis Agent Memory developer guide\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.390Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":124}}593{"id":"doc-query_data_docs-31191e8f","source":"documentation","title":"Query data | Docs","url":"https://redis.io/docs/latest/develop/ai/featureform/query-data/","text":"{\"categories\":null,\"description\":\"Inspect the Redis Feature Form catalog and query datasets, training sets, and feature views with the ff CLI.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Query data\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```bash\nff catalog list --workspace <workspace-id>\n```\n\nExample:\n```bash\nff catalog get demo_transactions --workspace <workspace-id>\n```\n\nExample:\n```bash\nff dataframe query demo_transactions \\\n --workspace <workspace-id> \\\n --server localhost:9090 \\\n --kind dataset \\\n --limit 10 \\\n --insecure\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.395Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":3,"totalLines":25,"estimatedTokens":186}}594{"id":"doc-redis_pub_sub_with_go_redis_docs-06cee654","source":"documentation","title":"Redis pub/sub with go-redis | Docs","url":"https://redis.io/docs/latest/develop/use-cases/pub-sub/go/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Implement Redis pub/sub messaging in Go with go-redis\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis pub/sub with go-redis\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```go\nimport (\n \"context\"\n\n \"github.com/redis/go-redis/v9\"\n \"pubsub\"\n)\n\nclient := redis.NewClient(&redis.Options{Addr: \"localhost:6379\"})\nhub := pubsub.NewRedisPubSubHub(client, 50)\nctx := context.Background()\n\n// Exact-match subscriber\nhub.Subscribe(ctx, \"orders-listener\", []string{\"orders:new\"})\n\n// Pattern subscriber covering an entire topic hierarchy\nhub.PSubscribe(ctx, \"all-notifications\", []string{\"notifications:*\"})\n\n// Publish — returns Redis' delivered count for this PUBLISH\ndelivered, _ := hub.Publish(ctx, \"orders:new\", map[string]any{\n \"order_id\": 42,\n \"total\": 199.0,\n})\nfmt.Printf(\"Redis delivered to %d subscriber(s)\\n\", delivered)\n\n// Look at what each subscriber received\nfor _, sub := range hub.Subscriptions() {\n fmt.Println(sub.Name(), sub.ReceivedTotal(), \"messages\")\n for _, msg := range sub.Messages(5) {\n fmt.Println(\" \", msg.Channel, msg.Payload)\n }\n}\n\nhub.Unsubscribe(\"orders-listener\")\nhub.Shutdown() // closes every remaining subscription\n```\n\nExample:\n```text\nRedisPubSubHub (in-process)\n subscriptions map[string]*Subscription\n publishedTotal int64\n deliveredTotal int64\n channelPublished map[channel]int\n\nSubscription (in-process, one per subscriber)\n name string\n targets []string (channels or patterns)\n isPattern bool\n buffer []*ReceivedMessage (capped, default 50)\n received int64 (atomic)\n pubsub *redis.PubSub (owns one connection)\n goroutine reads ps.Channel()\n```\n\nExample:\n```go\nfunc (h *RedisPubSubHub) Publish(ctx context.Context, channel string, message interface{}) (int64, error) {\n payload, err := json.Marshal(message)\n if err != nil {\n return 0, err\n }\n delivered, err := h.client.Publish(ctx, channel, payload).Result()\n if err != nil {\n return 0, err\n }\n h.statsMu.Lock()\n h.publishedTotal++\n h.deliveredTotal += delivered\n h.channelPublished[channel]++\n h.statsMu.Unlock()\n return delivered, nil\n}\n```\n\nExample:\n```go\nfunc (h *RedisPubSubHub) Subscribe(ctx context.Context, name string, channels []string) (*Subscription, error) {\n return h.register(ctx, name, channels, false)\n}\n```\n\nExample:\n```go\nvar ps *redis.PubSub\nif isPattern {\n ps = h.client.PSubscribe(ctx, targets...)\n} else {\n ps = h.client.Subscribe(ctx, targets...)\n}\nsub := &Subscription{\n name: name,\n targets: targets,\n isPattern: isPattern,\n pubsub: ps,\n ch: ps.Channel(),\n // ...\n}\ngo sub.run()\n```\n\nExample:\n```go\nfunc (s *Subscription) dispatch(msg *redis.Message) {\n var pattern *string\n if msg.Pattern != \"\" {\n p := msg.Pattern\n pattern = &p\n }\n var payload interface{}\n if err := json.Unmarshal([]byte(msg.Payload), &payload); err != nil {\n payload = msg.Payload\n }\n wrapped := &ReceivedMessage{\n Channel: msg.Channel,\n Pattern: pattern,\n Payload: payload,\n ReceivedAtMs: time.Now().UnixMilli(),\n }\n // ... prepend to bounded buffer, increment atomic counter ...\n}\n```\n\nExample:\n```go\nhub.PSubscribe(ctx, \"all-notifications\", []string{\"notifications:*\"})\nhub.PSubscribe(ctx, \"cache-invalidator\", []string{\"cache:invalidate:*\"})\n```\n\nExample:\n```go\ntype ReceivedMessage struct {\n Channel string `json:\"channel\"`\n Pattern *string `json:\"pattern\"`\n Payload interface{} `json:\"payload\"`\n ReceivedAtMs int64 `json:\"received_at_ms\"`\n}\n```\n\nExample:\n```go\nhub.ActiveChannels(ctx, \"*\") // PUBSUB CHANNELS *\nhub.ChannelSubscriberCounts(ctx, []string{\"orders:new\", ...}) // PUBSUB NUMSUB ch1 ch2 ...\nhub.PatternSubscriberCount(ctx) // PUBSUB NUMPAT\n```\n\nExample:\n```go\nfunc (h *RedisPubSubHub) Stats(ctx context.Context) Stats {\n // ... snapshot counters under statsMu ...\n subs := h.Subscriptions()\n var received int64\n for _, sub := range subs {\n received += sub.ReceivedTotal()\n }\n patternSubs, _ := h.PatternSubscriberCount(ctx)\n return Stats{\n PublishedTotal: published,\n DeliveredTotal: delivered,\n ReceivedTotal: received,\n ActiveSubscriptions: len(subs),\n ChannelPublished: perChannel,\n PatternSubscriptions: patternSubs,\n }\n}\n```\n\nExample:\n```text\nrequire github.com/redis/go-redis/v9 v9.18.0\n```\n\nExample:\n```bash\nmkdir pub-sub-demo && cd pub-sub-demo\nBASE=https://raw.githubusercontent.com/redis/docs/main/content/develop/use-cases/pub-sub/go\ncurl -O $BASE/pubsub_hub.go\ncurl -O $BASE/demo_server.go\ncurl -O $BASE/go.mod\ncurl -O $BASE/go.sum\n```\n\nExample:\n```bash\nmkdir -p cmd/demo\ncat > cmd/demo/main.go <<'EOF'\npackage main\n\nimport \"pubsub\"\n\nfunc main() { pubsub.RunDemoServer() }\nEOF\n```\n\nExample:\n```bash\ngo mod tidy\ngo run ./cmd/demo\n```\n\nExample:\n```text\nRedis pub/sub demo server listening on http://127.0.0.1:8097\nUsing Redis at localhost:6379\nSeeded 3 default subscription(s)\n```\n\nExample:\n```bash\n# Which channels currently have at least one exact-match subscriber?\nredis-cli pubsub channels '*'\n\n# How many subscribers does each channel have?\nredis-cli pubsub numsub orders:new notifications:billing chat:lobby\n\n# How many active pattern subscriptions across the whole server?\nredis-cli pubsub numpat\n\n# Subscribe interactively from the CLI to watch traffic on a pattern\nredis-cli psubscribe 'orders:*'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.419Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":16,"totalLines":228,"estimatedTokens":1517}}595{"id":"doc-redis_pub_sub_with_stackexchange_redis_docs-e55eea0a","source":"documentation","title":"Redis pub/sub with StackExchange.Redis | Docs","url":"https://redis.io/docs/latest/develop/use-cases/pub-sub/dotnet/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Implement Redis pub/sub messaging in C# with StackExchange.Redis\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis pub/sub with StackExchange.Redis\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```csharp\nusing PubSubDemo;\nusing StackExchange.Redis;\n\nvar multiplexer = ConnectionMultiplexer.Connect(\"localhost:6379\");\nvar hub = new RedisPubSubHub(multiplexer);\n\n// Exact-match subscriber\nhub.Subscribe(\"orders-listener\", new[] { \"orders:new\" });\n\n// Pattern subscriber covering an entire topic hierarchy\nhub.PSubscribe(\"all-notifications\", new[] { \"notifications:*\" });\n\n// Publish — returns Redis' delivered count for this PUBLISH\nvar delivered = hub.Publish(\"orders:new\",\n new { order_id = 42, total = 199.0 });\nConsole.WriteLine($\"Redis delivered to {delivered} subscriber(s)\");\n\n// Look at what each subscriber received\nforeach (var sub in hub.Subscriptions())\n{\n Console.WriteLine($\"{sub.Name} {sub.ReceivedTotal} messages\");\n foreach (var msg in sub.Messages(limit: 5))\n {\n Console.WriteLine($\" {msg.Channel} {msg.Payload}\");\n }\n}\n\nhub.Unsubscribe(\"orders-listener\");\nhub.Shutdown(); // closes every remaining subscription\n```\n\nExample:\n```text\nRedisPubSubHub (in-process)\n _subscriptions ConcurrentDictionary<string, Subscription>\n _publishedTotal long\n _deliveredTotal long\n _channelPublished ConcurrentDictionary<string, long>\n\nSubscription (in-process, one per subscriber)\n Name string\n Targets IReadOnlyList<string>\n IsPattern bool\n _buffer LinkedList<ReceivedMessage> (capped, default 50)\n _received long\n _bindings RedisChannel[] (one per target)\n _handler Action<RedisChannel, RedisValue> (shared multiplexer)\n```\n\nExample:\n```csharp\npublic long Publish(string channel, object? message)\n{\n var payload = JsonSerializer.Serialize(message);\n var delivered = _subscriber.Publish(RedisChannel.Literal(channel), payload);\n Interlocked.Increment(ref _publishedTotal);\n Interlocked.Add(ref _deliveredTotal, delivered);\n _channelPublished.AddOrUpdate(channel, 1, (_, current) => current + 1);\n return delivered;\n}\n```\n\nExample:\n```csharp\npublic Subscription Subscribe(string name, IEnumerable<string> channels) =>\n Register(name, channels, isPattern: false);\n\n// Inside Subscription's constructor:\n_handler = OnMessage;\nforeach (var binding in _bindings)\n{\n _subscriber.Subscribe(binding, _handler);\n}\n```\n\nExample:\n```csharp\nhub.PSubscribe(\"all-notifications\", new[] { \"notifications:*\" });\nhub.PSubscribe(\"cache-invalidator\", new[] { \"cache:invalidate:*\" });\n```\n\nExample:\n```csharp\nprivate void OnMessage(RedisChannel actualChannel, RedisValue value)\n{\n string? pattern = null;\n if (IsPattern)\n {\n var name = (string)actualChannel!;\n pattern = MatchPattern(name) ?? Targets[0];\n }\n // ...wrap as ReceivedMessage with both channel and pattern...\n}\n```\n\nExample:\n```csharp\nhub.ActiveChannels(); // PUBSUB CHANNELS *\nhub.ChannelSubscriberCounts(channels); // PUBSUB NUMSUB ch1 ch2 ...\nhub.PatternSubscriberCount(); // PUBSUB NUMPAT\n```\n\nExample:\n```csharp\npublic Dictionary<string, object> Stats()\n{\n var subs = _subscriptions.Values.ToArray();\n var channelPublished = _channelPublished\n .ToDictionary(kv => kv.Key, kv => kv.Value);\n var receivedTotal = subs.Sum(s => s.ReceivedTotal);\n\n return new Dictionary<string, object>\n {\n [\"published_total\"] = Interlocked.Read(ref _publishedTotal),\n [\"delivered_total\"] = Interlocked.Read(ref _deliveredTotal),\n [\"received_total\"] = receivedTotal,\n [\"active_subscriptions\"] = (long)subs.Length,\n [\"channel_published\"] = channelPublished,\n [\"pattern_subscriptions\"] = PatternSubscriberCount(),\n };\n}\n```\n\nExample:\n```bash\nmkdir pub-sub-demo && cd pub-sub-demo\nBASE=https://raw.githubusercontent.com/redis/docs/main/content/develop/use-cases/pub-sub/dotnet\ncurl -O $BASE/PubSubDemo.csproj\ncurl -O $BASE/RedisPubSubHub.cs\ncurl -O $BASE/Program.cs\n```\n\nExample:\n```bash\ndotnet run\n```\n\nExample:\n```text\nRedis pub/sub demo server listening on http://0.0.0.0:8100\nUsing Redis at localhost:6379\nSeeded 3 default subscription(s)\n```\n\nExample:\n```bash\n# Which channels currently have at least one exact-match subscriber?\nredis-cli pubsub channels '*'\n\n# How many subscribers does each channel have?\nredis-cli pubsub numsub orders:new notifications:billing chat:lobby\n\n# How many active pattern subscriptions across the whole server?\nredis-cli pubsub numpat\n\n# Subscribe interactively from the CLI to watch traffic on a pattern\nredis-cli psubscribe 'orders:*'\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.422Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":12,"totalLines":166,"estimatedTokens":1272}}596{"id":"doc-redis_feature_store_with_lettuce_docs-451694f1","source":"documentation","title":"Redis feature store with Lettuce | Docs","url":"https://redis.io/docs/latest/develop/use-cases/feature-store/java-lettuce/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Build a Redis-backed online feature store in Java with Lettuce\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis feature store with Lettuce\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```java\nimport io.lettuce.core.RedisClient;\nimport io.lettuce.core.api.StatefulRedisConnection;\n\nRedisClient client = RedisClient.create(\"redis://localhost:6379\");\ntry (StatefulRedisConnection<String, String> conn = client.connect()) {\n FeatureStore store = new FeatureStore(conn,\n \"fs:user:\",\n 24L * 60L * 60L, // whole-entity TTL aligned with the daily batch cycle\n 5L * 60L // per-field TTL on each streaming feature\n );\n\n // Batch materialization: one HSET + EXPIRE per user, all pipelined\n // through a single connection-level flush.\n Map<String, Map<String, Object>> rows = Map.of(\n \"u0001\", Map.of(\n \"country_iso\", \"US\", \"risk_segment\", \"low\",\n \"tx_count_7d\", 14, \"avg_amount_30d\", 92.40,\n \"account_age_days\", 612, \"chargeback_count_180d\", 0));\n store.bulkLoad(rows);\n\n // Streaming write: HSET + HEXPIRE on just the fields that changed.\n store.updateStreaming(\"u0001\", Map.of(\n \"last_login_ts\", System.currentTimeMillis(),\n \"last_device_id\", \"ios-9f02\",\n \"tx_count_5m\", 3,\n \"failed_logins_15m\", 0,\n \"session_country\", \"US\"));\n\n // Inference read: HMGET of whatever the model needs.\n Map<String, String> features = store.getFeatures(\"u0001\", List.of(\n \"risk_segment\", \"tx_count_7d\", \"avg_amount_30d\",\n \"tx_count_5m\", \"failed_logins_15m\"));\n\n // Batch scoring: pipelined HMGET across many users.\n Map<String, Map<String, String>> batch = store.batchGetFeatures(\n List.of(\"u0001\", \"u0002\", \"u0003\"),\n List.of(\"risk_segment\", \"tx_count_5m\", \"failed_logins_15m\"));\n} finally {\n client.shutdown();\n}\n```\n\nExample:\n```text\nfs:user:u0001 TTL = 86400 s (key-level)\n country_iso=US <no field TTL>\n risk_segment=low <no field TTL>\n account_age_days=612 <no field TTL>\n tx_count_7d=14 <no field TTL>\n avg_amount_30d=92.40 <no field TTL>\n chargeback_count_180d=0 <no field TTL>\n last_login_ts=1716998413541 TTL = 300 s (per field, HEXPIRE)\n last_device_id=ios-9f02 TTL = 300 s (per field, HEXPIRE)\n tx_count_5m=3 TTL = 300 s (per field, HEXPIRE)\n failed_logins_15m=0 TTL = 300 s (per field, HEXPIRE)\n session_country=US TTL = 300 s (per field, HEXPIRE)\n```\n\nExample:\n```java\npublic int bulkLoad(Map<String, Map<String, Object>> rows, long ttlSeconds) {\n if (rows.isEmpty()) return 0;\n\n List<RedisFuture<?>> futures = new ArrayList<>(rows.size() * 2);\n conn.setAutoFlushCommands(false);\n try {\n for (Map.Entry<String, Map<String, Object>> e : rows.entrySet()) {\n String key = keyFor(e.getKey());\n Map<String, String> encoded = encode(e.getValue());\n futures.add(async.hset(key, encoded));\n futures.add(async.expire(key, ttlSeconds));\n }\n conn.flushCommands();\n } finally {\n conn.setAutoFlushCommands(true);\n }\n if (!LettuceFutures.awaitAll(BATCH_TIMEOUT, futures.toArray(new RedisFuture[0]))) {\n throw new IllegalStateException(\"bulkLoad: timed out after \" + BATCH_TIMEOUT);\n }\n ...\n}\n```\n\nExample:\n```java\npublic void updateStreaming(String entityId, Map<String, Object> fields, long ttlSeconds) {\n if (fields.isEmpty()) return;\n String key = keyFor(entityId);\n Map<String, String> encoded = encode(fields);\n String[] names = encoded.keySet().toArray(new String[0]);\n\n RedisFuture<Long> hsetFut;\n RedisFuture<List<Long>> hexpireFut;\n conn.setAutoFlushCommands(false);\n try {\n hsetFut = async.hset(key, encoded);\n hexpireFut = async.hexpire(key, ttlSeconds, names);\n conn.flushCommands();\n } finally {\n conn.setAutoFlushCommands(true);\n }\n awaitOne(hsetFut);\n List<Long> codes = awaitOne(hexpireFut);\n for (Long code : codes) {\n if (code == null || code != 1L) {\n throw new IllegalStateException(\n \"HEXPIRE did not set every field TTL for \" + key + \": \" + codes);\n }\n }\n ...\n}\n```\n\nExample:\n```java\npublic Map<String, String> getFeatures(String entityId, List<String> fieldNames) {\n String key = keyFor(entityId);\n Map<String, String> out = new LinkedHashMap<>();\n if (fieldNames == null) {\n Map<String, String> all = awaitOne(async.hgetall(key));\n if (all != null) out.putAll(all);\n return out;\n }\n if (fieldNames.isEmpty()) return out;\n List<KeyValue<String, String>> values = awaitOne(\n async.hmget(key, fieldNames.toArray(new String[0])));\n for (KeyValue<String, String> kv : values) {\n if (kv != null && kv.hasValue()) {\n out.put(kv.getKey(), kv.getValue());\n }\n }\n return out;\n}\n```\n\nExample:\n```java\npublic Map<String, Map<String, String>> batchGetFeatures(\n List<String> entityIds, List<String> fieldNames) {\n if (entityIds.isEmpty() || fieldNames.isEmpty()) {\n return Collections.emptyMap();\n }\n String[] names = fieldNames.toArray(new String[0]);\n\n List<RedisFuture<List<KeyValue<String, String>>>> futures =\n new ArrayList<>(entityIds.size());\n conn.setAutoFlushCommands(false);\n try {\n for (String id : entityIds) {\n futures.add(async.hmget(keyFor(id), names));\n }\n conn.flushCommands();\n } finally {\n conn.setAutoFlushCommands(true);\n }\n\n Map<String, Map<String, String>> out = new LinkedHashMap<>();\n for (int i = 0; i < entityIds.size(); i++) {\n List<KeyValue<String, String>> values = awaitOne(futures.get(i));\n Map<String, String> row = new LinkedHashMap<>();\n for (KeyValue<String, String> kv : values) {\n if (kv != null && kv.hasValue()) row.put(kv.getKey(), kv.getValue());\n }\n out.put(entityIds.get(i), row);\n }\n return out;\n}\n```\n\nExample:\n```bash\nmvn exec:java -Dexec.mainClass=BuildFeatures -Dexec.args=\"--count 500 --ttl-seconds 3600\"\n```\n\nExample:\n```bash\ngit clone https://github.com/redis/docs.git\ncd docs/content/develop/use-cases/feature-store/java-lettuce\nmvn package\n```\n\nExample:\n```bash\nmvn exec:java -Dexec.mainClass=DemoServer\n```\n\nExample:\n```text\nDropping any existing users under 'fs:user:*' for a clean demo run (pass --no-reset to keep them).\nRedis feature-store demo server listening on http://127.0.0.1:8089\nUsing Redis at redis://localhost:6379 with key prefix 'fs:user:' (batch TTL 86400s, streaming TTL 300s)\nMaterialized 200 user(s); streaming worker running.\n```\n\nExample:\n```bash\n# How many users currently in the store\nredis-cli --scan --pattern 'fs:user:*' | wc -l\n\n# One user's full hash and key-level TTL\nredis-cli HGETALL fs:user:u0001\nredis-cli TTL fs:user:u0001\n\n# Per-field TTL on the streaming fields\nredis-cli HTTL fs:user:u0001 FIELDS 5 \\\n last_login_ts last_device_id tx_count_5m failed_logins_15m session_country\n\n# Sample HMGET as the model would issue it\nredis-cli HMGET fs:user:u0001 risk_segment tx_count_7d avg_amount_30d tx_count_5m\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.431Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":11,"totalLines":218,"estimatedTokens":1927}}597{"id":"doc-rolling_sensor_graph_demo_with_rust_docs-bee95eb1","source":"documentation","title":"Rolling sensor graph demo with Rust | Docs","url":"https://redis.io/docs/latest/develop/use-cases/time-series-dashboard/rust/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Build a Redis-backed rolling sensor graph demo in Rust with redis-rs\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Rolling sensor graph demo with Rust\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nts:sensor:power_consumption:{sensor_id}\n```\n\nExample:\n```text\nts:sensor:power_consumption:power-1\nts:sensor:power_consumption:power-2\nts:sensor:power_consumption:power-3\n```\n\nExample:\n```text\nsite = demo\nsensor_type = power_consumption\nsensor_id = power-1\nzone = north\nunit = watts\n```\n\nExample:\n```bash\ncargo build\n```\n\nExample:\n```bash\nmkdir time-series-dashboard-demo && cd time-series-dashboard-demo\nBASE=https://raw.githubusercontent.com/redis/docs/main/content/develop/use-cases/time-series-dashboard/rust\ncurl -O $BASE/Cargo.toml\ncurl -O $BASE/sensor_simulator.rs\ncurl -O $BASE/timeseries_store.rs\ncurl -O $BASE/demo_server.rs\n```\n\nExample:\n```bash\ncargo run --bin demo_server\n```\n\nExample:\n```bash\ncargo run --bin demo_server -- --redis-host 127.0.0.1 --redis-port 6379 --port 8080\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.457Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":7,"totalLines":51,"estimatedTokens":316}}598{"id":"doc-redis_leaderboard_with_java_and_jedis_docs-be470698","source":"documentation","title":"Redis leaderboard with Java and Jedis | Docs","url":"https://redis.io/docs/latest/develop/use-cases/leaderboard/java-jedis/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Implement a Redis leaderboard in Java with Jedis and sorted sets\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis leaderboard with Java and Jedis\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```xml\n<dependency>\n <groupId>redis.clients</groupId>\n <artifactId>jedis</artifactId>\n <version>5.2.0</version>\n</dependency>\n```\n\nExample:\n```groovy\nimplementation 'redis.clients:jedis:5.2.0'\n```\n\nExample:\n```java\nimport java.util.Map;\n\nimport redis.clients.jedis.JedisPool;\n\npublic class Main {\n public static void main(String[] args) {\n JedisPool jedisPool = new JedisPool(\"localhost\", 6379);\n\n RedisLeaderboard board = new RedisLeaderboard(\n jedisPool,\n \"leaderboard:demo\",\n 100\n );\n\n board.upsertUser(\n \"player-1\",\n 1200,\n Map.of(\n \"name\", \"Ada\",\n \"description\", \"Solves production incidents before breakfast.\"\n )\n );\n\n board.incrementScore(\"player-1\", 25, Map.of());\n System.out.println(board.getTop(5));\n }\n}\n```\n\nExample:\n```text\nleaderboard:demo\n player-1 => 1225\n player-2 => 1180\n player-3 => 1105\n\nleaderboard:demo:user:player-1\n name = Ada\n description = Solves production incidents before breakfast.\n```\n\nExample:\n```java\npublic LeaderboardEntry upsertUser(\n String userId,\n double score,\n Map<String, String> metadata\n) {\n Map<String, String> payload = coerceMetadata(metadata);\n\n try (Jedis jedis = jedisPool.getResource()) {\n Transaction tx = jedis.multi();\n tx.zadd(key, score, userId);\n if (!payload.isEmpty()) {\n tx.hset(metadataKey(userId), payload);\n }\n tx.exec();\n }\n\n List<String> trimmedUserIds = trimToMaxEntries();\n LeaderboardEntry entry = getUserEntry(userId);\n if (entry != null) {\n entry = entry.withTrimmedUserIds(trimmedUserIds);\n }\n return entry;\n}\n```\n\nExample:\n```java\npublic List<LeaderboardEntry> getAroundRank(int rank, int count) {\n int normalizedRank = normalizePositiveInt(rank, \"rank\");\n int normalizedCount = normalizePositiveInt(count, \"count\");\n long totalEntries = getSize();\n\n if (totalEntries <= normalizedCount) {\n return listAll();\n }\n\n int halfWindow = normalizedCount / 2;\n int start = Math.max(0, normalizedRank - 1 - halfWindow);\n int maxStart = (int) totalEntries - normalizedCount;\n if (start > maxStart) {\n start = maxStart;\n }\n int end = start + normalizedCount - 1;\n\n try (Jedis jedis = jedisPool.getResource()) {\n Set<Tuple> entries = jedis.zrangeWithScores(\n key,\n ZRangeParams.zrangeParams(start, end).rev()\n );\n return hydrateEntries(entries, start + 1);\n }\n}\n```\n\nExample:\n```bash\nmkdir leaderboard-demo && cd leaderboard-demo\nBASE=https://raw.githubusercontent.com/redis/docs/main/content/develop/use-cases/leaderboard/java-jedis\ncurl -O $BASE/RedisLeaderboard.java\ncurl -O $BASE/DemoServer.java\n```\n\nExample:\n```bash\n# Compile\njavac -cp jedis-5.2.0.jar RedisLeaderboard.java DemoServer.java\n\n# Run the demo server\njava -cp .:jedis-5.2.0.jar DemoServer\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.476Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":8,"totalLines":135,"estimatedTokens":877}}599{"id":"doc-redis_leaderboard_with_node_redis_docs-caa74846","source":"documentation","title":"Redis leaderboard with node-redis | Docs","url":"https://redis.io/docs/latest/develop/use-cases/leaderboard/nodejs/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Implement a Redis leaderboard in JavaScript with node-redis and sorted sets\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis leaderboard with node-redis\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```bash\nnpm install redis\n```\n\nExample:\n```javascript\nconst { createClient } = require(\"redis\");\nconst { RedisLeaderboard } = require(\"./leaderboard\");\n\nconst client = createClient({ url: \"redis://localhost:6379\" });\nawait client.connect();\n\nconst board = new RedisLeaderboard({\n redisClient: client,\n key: \"leaderboard:demo\",\n maxEntries: 100,\n});\n\nawait board.upsertUser(\"player-1\", 1200, {\n name: \"Ada\",\n description: \"Solves production incidents before breakfast.\",\n});\n\nawait board.incrementScore(\"player-1\", 25);\nconst topPlayers = await board.getTop(5);\nconst playersNearRank = await board.getAroundRank(10, 5);\n```\n\nExample:\n```text\nleaderboard:demo\n player-1 => 1225\n player-2 => 1180\n player-3 => 1105\n\nleaderboard:demo:user:player-1\n name = Ada\n description = Solves production incidents before breakfast.\n```\n\nExample:\n```javascript\nasync upsertUser(userId, score, metadata = null) {\n const metadataKey = this._metadataKey(userId);\n const payload = this._coerceMetadata(metadata);\n\n const multi = this.redis.multi();\n multi.zAdd(this.key, [{ score: Number(score), value: userId }]);\n if (Object.keys(payload).length > 0) {\n multi.hSet(metadataKey, payload);\n }\n await multi.exec();\n\n const trimmedUserIds = await this._trimToMaxEntries();\n const entry = await this.getUserEntry(userId);\n return entry\n ? { ...entry, trimmedUserIds }\n : { userId, score: Number(score), metadata: payload, trimmedUserIds };\n}\n```\n\nExample:\n```javascript\nasync getAroundRank(rank, count) {\n const normalizedRank = this._normalizePositiveInt(rank, \"rank\");\n const normalizedCount = this._normalizePositiveInt(count, \"count\");\n const totalEntries = await this.getSize();\n\n if (totalEntries <= normalizedCount) {\n return this.listAll();\n }\n\n const halfWindow = Math.floor(normalizedCount / 2);\n let start = Math.max(0, normalizedRank - 1 - halfWindow);\n start = Math.min(start, totalEntries - normalizedCount);\n const end = start + normalizedCount - 1;\n\n const entries = await this._zRangeWithScoresRev(start, end);\n return this._hydrateEntries(entries, start + 1);\n}\n```\n\nExample:\n```bash\nmkdir leaderboard-demo && cd leaderboard-demo\nBASE=https://raw.githubusercontent.com/redis/docs/main/content/develop/use-cases/leaderboard/nodejs\ncurl -O $BASE/leaderboard.js\ncurl -O $BASE/demoServer.js\n```\n\nExample:\n```bash\n# Install dependencies\nnpm install redis\n\n# Run the demo server\nnode demoServer.js\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.477Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":7,"totalLines":105,"estimatedTokens":726}}600{"id":"doc-install_a_module_on_a_cluster_docs-ac9af836","source":"documentation","title":"Install a module on a cluster | Docs","url":"https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/install/add-module-to-cluster/","text":"{\"categories\":[\"docs\",\"operate\",\"stack\"],\"description\":\"\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Install a module on a cluster\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```json\n{\n \"user_defined_modules\": [\n {\n \"name\": \"string (required)\",\n \"location\": {\n \"location_type\": \"http | https (required)\",\n \"url\": \"string (required)\",\n \"credentials\": {\n \"username\": \"string (optional)\",\n \"password\": \"string (optional)\"\n }\n }\n }\n ]\n}\n```\n\nExample:\n```sh\nPOST /v1/bootstrap/create_cluster\n{\n \"action\": \"create_cluster\",\n \"credentials\": {\n \"username\": \"[email protected]\",\n \"password\": \"your-secure-password\"\n },\n \"cluster\": {\n \"name\": \"my-cluster.example.com\"\n },\n \"user_defined_modules\": [\n {\n \"name\": \"ModuleA\",\n \"location\": {\n \"location_type\": \"https\",\n \"url\": \"https://private-repo.example.com/enterprise-module-2.0.0.zip\",\n \"credentials\": {\n \"username\": \"download-user\",\n \"password\": \"download-password\"\n }\n }\n },\n {\n \"name\": \"ModuleB\",\n \"location\": {\n \"location_type\": \"https\",\n \"url\": \"https://modules.example.com/module-b-2.5.0.zip\"\n }\n },\n {\n \"name\": \"ModuleC\",\n \"location\": {\n \"location_type\": \"http\",\n \"url\": \"http://internal-server.local/module-c-1.2.0.zip\"\n }\n }\n ]\n}\n```\n\nExample:\n```sh\nPOST /v1/bootstrap/join_cluster\n{\n \"action\": \"join_cluster\",\n \"credentials\": {\n \"username\": \"[email protected]\",\n \"password\": \"your-secure-password\"\n },\n \"cluster\": {\n \"name\": \"my-cluster.example.com\",\n \"nodes\": [\"192.168.1.10\", \"192.168.1.11\"]\n },\n \"user_defined_modules\": [\n {\n \"name\": \"ModuleA\",\n \"location\": {\n \"location_type\": \"https\",\n \"url\": \"https://private-repo.example.com/enterprise-module-2.0.0.zip\",\n \"credentials\": {\n \"username\": \"download-user\",\n \"password\": \"download-password\"\n }\n }\n },\n {\n \"name\": \"ModuleB\",\n \"location\": {\n \"location_type\": \"https\",\n \"url\": \"https://modules.example.com/module-b-2.5.0.zip\"\n }\n },\n {\n \"name\": \"ModuleC\",\n \"location\": {\n \"location_type\": \"http\",\n \"url\": \"http://internal-server.local/module-c-1.2.0.zip\"\n }\n }\n ]\n}\n```\n\nExample:\n```sh\nPOST /v1/bootstrap/recover_cluster\n{\n \"action\": \"recover_cluster\",\n \"recovery_filename\": \"/path/to/backup.rdb\",\n \"credentials\": {\n \"username\": \"[email protected]\",\n \"password\": \"your-secure-password\"\n },\n \"user_defined_modules\": [\n {\n \"name\": \"ModuleA\",\n \"location\": {\n \"location_type\": \"https\",\n \"url\": \"https://private-repo.example.com/enterprise-module-2.0.0.zip\",\n \"credentials\": {\n \"username\": \"download-user\",\n \"password\": \"download-password\"\n }\n }\n },\n {\n \"name\": \"ModuleB\",\n \"location\": {\n \"location_type\": \"https\",\n \"url\": \"https://modules.example.com/module-b-2.5.0.zip\"\n }\n },\n {\n \"name\": \"ModuleC\",\n \"location\": {\n \"location_type\": \"http\",\n \"url\": \"http://internal-server.local/module-c-1.2.0.zip\"\n }\n }\n ]\n}\n```\n\nExample:\n```text\nFailed to download and install custom module '<name>': <error details>\n```\n\nExample:\n```sh\nPOST https://<host>:<port>/v2/modules/user-defined\n{\n \"module_name\": \"TestModule\",\n \"version\": 1,\n \"semantic_version\": \"0.0.1\",\n \"display_name\": \"test module\",\n \"commands\": [\n {\n \"command_arity\": -1,\n \"command_name\": \"module.command\",\n \"first_key\": 1,\n \"flags\": [\"write\"],\n \"last_key\": 1,\n \"step\": 1\n }\n ],\n \"command_line_args\": \"\",\n \"capabilities\": [\"list\", \"of\", \"capabilities\"],\n \"min_redis_version\": \"2.1\"\n}\n```\n\nExample:\n```sh\nPOST https://<host>:<port>/v2/local/modules/user-defined/artifacts\n\"module=@/tmp/custom-module.zip\"\n```\n\nExample:\n```sh\nPOST https://<host>:<port>/v2/modules\n\"module=@/tmp/redisearch.Linux-ubuntu16.04-x86_64.2.2.6.zip\"\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.494Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":8,"totalLines":190,"estimatedTokens":1061}}601{"id":"doc-probabilistic_data_structure_configuration_compa-64eb45f0","source":"documentation","title":"Probabilistic data structure configuration compatibility with Redis Software | Docs","url":"https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/bloom/config/","text":"{\"categories\":[\"docs\",\"operate\",\"stack\"],\"description\":\"Probabilistic data structure configuration settings supported by Redis Software and Redis Cloud.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Probabilistic data structure configuration compatibility with Redis Software\",\"tableOfContents\":{\"sections\":[{\"id\":\"configure-probabilistic-data-structures-in-redis-software\",\"title\":\"Configure probabilistic data structures in Redis Software\"},{\"id\":\"configure-probabilistic-data-structures-in-redis-cloud\",\"title\":\"Configure probabilistic data structures in Redis Cloud\"},{\"id\":\"configuration-settings\",\"title\":\"Configuration settings\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.497Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":209}}602{"id":"doc-probabilistic_data_structure_commands_docs-900efd3c","source":"documentation","title":"Probabilistic data structure commands | Docs","url":"https://redis.io/docs/latest/operate/oss_and_stack/stack-with-enterprise/bloom/commands/","text":"{\"categories\":[\"docs\",\"operate\",\"stack\"],\"description\":\"Lists probabilistic data structure commands and provides links to the command reference pages.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Probabilistic data structure commands\",\"tableOfContents\":{\"sections\":[{\"id\":\"bloom-filter-commands\",\"title\":\"Bloom filter commands\"},{\"id\":\"cuckoo-filter-commands\",\"title\":\"Cuckoo filter commands\"},{\"id\":\"count-min-sketch-commands\",\"title\":\"Count-min sketch commands\"},{\"id\":\"top-k-commands\",\"title\":\"Top-k commands\"},{\"id\":\"t-digest-sketch-commands\",\"title\":\"T-digest sketch commands\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.499Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":195}}603{"id":"doc-diagnosing_latency_issues_docs-08e9e0b9","source":"documentation","title":"Diagnosing latency issues | Docs","url":"https://redis.io/docs/latest/operate/oss_and_stack/management/optimization/latency/","text":"{\"categories\":[\"docs\",\"operate\",\"stack\",\"oss\"],\"description\":\"Finding the causes of slow responses\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Diagnosing latency issues\",\"tableOfContents\":{\"sections\":[{\"id\":\"ive-little-time-give-me-the-checklist\",\"title\":\"I've little time, give me the checklist\"},{\"id\":\"measuring-latency\",\"title\":\"Measuring latency\"},{\"id\":\"using-the-internal-redis-latency-monitoring-subsystem\",\"title\":\"Using the internal Redis latency monitoring subsystem\"},{\"id\":\"latency-baseline\",\"title\":\"Latency baseline\"},{\"id\":\"latency-induced-by-network-and-communication\",\"title\":\"Latency induced by network and communication\"},{\"id\":\"single-threaded-nature-of-redis\",\"title\":\"Single threaded nature of Redis\"},{\"id\":\"latency-generated-by-slow-commands\",\"title\":\"Latency generated by slow commands\"},{\"id\":\"latency-generated-by-fork\",\"title\":\"Latency generated by fork\"},{\"id\":\"fork-time-in-different-systems\",\"title\":\"Fork time in different systems\"},{\"id\":\"latency-induced-by-transparent-huge-pages\",\"title\":\"Latency induced by transparent huge pages\"},{\"id\":\"latency-induced-by-swapping-operating-system-paging\",\"title\":\"Latency induced by swapping (operating system paging)\"},{\"id\":\"latency-due-to-aof-and-disk-io\",\"title\":\"Latency due to AOF and disk I/O\"},{\"id\":\"latency-generated-by-expires\",\"title\":\"Latency generated by expires\"},{\"id\":\"redis-software-watchdog\",\"title\":\"Redis software watchdog\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```text\nredis-cli --latency -h `host` -p `port`\n```\n\nExample:\n```text\n$ ./redis-cli --intrinsic-latency 100\nMax latency so far: 1 microseconds.\nMax latency so far: 16 microseconds.\nMax latency so far: 50 microseconds.\nMax latency so far: 53 microseconds.\nMax latency so far: 83 microseconds.\nMax latency so far: 115 microseconds.\n```\n\nExample:\n```text\n$ ./redis-cli --intrinsic-latency 100\nMax latency so far: 573 microseconds.\nMax latency so far: 695 microseconds.\nMax latency so far: 919 microseconds.\nMax latency so far: 1606 microseconds.\nMax latency so far: 3191 microseconds.\nMax latency so far: 9243 microseconds.\nMax latency so far: 9671 microseconds.\n```\n\nExample:\n```text\necho never > /sys/kernel/mm/transparent_hugepage/enabled\n```\n\nExample:\n```text\n$ redis-cli info | grep process_id\nprocess_id:5454\n```\n\nExample:\n```text\n$ cd /proc/5454\n```\n\nExample:\n```text\n$ cat smaps | grep 'Swap:'\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 12 kB\nSwap: 156 kB\nSwap: 8 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 4 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 4 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 4 kB\nSwap: 4 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\nSwap: 0 kB\n```\n\nExample:\n```text\n$ cat smaps | egrep '^(Swap|Size)'\nSize: 316 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 8 kB\nSwap: 0 kB\nSize: 40 kB\nSwap: 0 kB\nSize: 132 kB\nSwap: 0 kB\nSize: 720896 kB\nSwap: 12 kB\nSize: 4096 kB\nSwap: 156 kB\nSize: 4096 kB\nSwap: 8 kB\nSize: 4096 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 1272 kB\nSwap: 0 kB\nSize: 8 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 16 kB\nSwap: 0 kB\nSize: 84 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 8 kB\nSwap: 4 kB\nSize: 8 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 4 kB\nSize: 144 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 4 kB\nSize: 12 kB\nSwap: 4 kB\nSize: 108 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\nSize: 272 kB\nSwap: 0 kB\nSize: 4 kB\nSwap: 0 kB\n```\n\nExample:\n```text\n$ vmstat 1\nprocs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----\n r b swpd free buff cache si so bi bo in cs us sy id wa\n 0 0 3980 697932 147180 1406456 0 0 2 2 2 0 4 4 91 0\n 0 0 3980 697428 147180 1406580 0 0 0 0 19088 16104 9 6 84 0\n 0 0 3980 697296 147180 1406616 0 0 0 28 18936 16193 7 6 87 0\n 0 0 3980 697048 147180 1406640 0 0 0 0 18613 15987 6 6 88 0\n 2 0 3980 696924 147180 1406656 0 0 0 0 18744 16299 6 5 88 0\n 0 0 3980 697048 147180 1406688 0 0 0 4 18520 15974 6 6 88 0\n^C\n```\n\nExample:\n```text\n$ iostat -xk 1\navg-cpu: %user %nice %system %iowait %steal %idle\n 13.55 0.04 2.92 0.53 0.00 82.95\n\nDevice: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util\nsda 0.77 0.00 0.01 0.00 0.40 0.00 73.65 0.00 3.62 2.58 0.00\nsdb 1.27 4.75 0.82 3.54 38.00 32.32 32.19 0.11 24.80 4.24 1.85\n```\n\nExample:\n```text\nsudo strace -p $(pidof redis-server) -T -e trace=fdatasync\n```\n\nExample:\n```text\nsudo strace -p $(pidof redis-server) -T -e trace=fdatasync,write\n```\n\nExample:\n```text\nsudo strace -f -p $(pidof redis-server) -T -e trace=fdatasync,write 2>&1 | grep -v '0.0' | grep -v unfinished\n```\n\nExample:\n```text\nCONFIG SET watchdog-period 500\n```\n\nExample:\n```text\n[8547 | signal handler] (1333114359)\n--- WATCHDOG TIMER EXPIRED ---\n/lib/libc.so.6(nanosleep+0x2d) [0x7f16b5c2d39d]\n/lib/libpthread.so.0(+0xf8f0) [0x7f16b5f158f0]\n/lib/libc.so.6(nanosleep+0x2d) [0x7f16b5c2d39d]\n/lib/libc.so.6(usleep+0x34) [0x7f16b5c62844]\n./redis-server(debugCommand+0x3e1) [0x43ab41]\n./redis-server(call+0x5d) [0x415a9d]\n./redis-server(processCommand+0x375) [0x415fc5]\n./redis-server(processInputBuffer+0x4f) [0x4203cf]\n./redis-server(readQueryFromClient+0xa0) [0x4204e0]\n./redis-server(aeProcessEvents+0x128) [0x411b48]\n./redis-server(aeMain+0x2b) [0x411dbb]\n./redis-server(main+0x2b6) [0x418556]\n/lib/libc.so.6(__libc_start_main+0xfd) [0x7f16b5ba1c4d]\n./redis-server() [0x411099]\n------\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.503Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":15,"totalLines":215,"estimatedTokens":1834}}604{"id":"doc-redis_prefetch_cache_with_lettuce_docs-12cf431d","source":"documentation","title":"Redis prefetch cache with Lettuce | Docs","url":"https://redis.io/docs/latest/develop/use-cases/prefetch-cache/java-lettuce/","text":"{\"categories\":[\"docs\",\"develop\",\"stack\",\"oss\",\"rs\",\"rc\"],\"description\":\"Implement a Redis prefetch cache in Java with Lettuce\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Redis prefetch cache with Lettuce\",\"tableOfContents\":{\"sections\":[]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\nExample:\n```java\nimport io.lettuce.core.RedisClient;\nimport io.lettuce.core.RedisURI;\nimport io.lettuce.core.api.StatefulRedisConnection;\n\nRedisClient client = RedisClient.create(\n RedisURI.builder().withHost(\"localhost\").withPort(6379).build());\nStatefulRedisConnection<String, String> connection = client.connect();\n\nMockPrimaryStore primary = new MockPrimaryStore(80);\nPrefetchCache cache = new PrefetchCache(connection, \"cache:category:\", 3600);\n\n// Pre-load every primary record into Redis in one pipelined round trip.\ncache.bulkLoad(primary.listRecords());\n\n// Start the sync worker so primary mutations propagate into Redis.\nSyncWorker sync = new SyncWorker(primary, cache);\nsync.start();\n\n// Read paths now go to Redis only.\nPrefetchCache.Result result = cache.get(\"cat-001\");\n```\n\nExample:\n```text\ncache:category:cat-001\n id = cat-001\n name = Beverages\n display_order = 1\n featured = true\n parent_id =\n```\n\nExample:\n```java\npublic int bulkLoad(Iterable<Map<String, String>> records) {\n RedisAsyncCommands<String, String> async = connection.async();\n connection.setAutoFlushCommands(false);\n List<RedisFuture<?>> futures = new ArrayList<>();\n int loaded = 0;\n try {\n for (Map<String, String> record : records) {\n if (record == null) continue;\n String entityId = record.get(\"id\");\n if (entityId == null || entityId.isEmpty()) continue;\n String cacheKey = cacheKey(entityId);\n futures.add(async.del(cacheKey));\n futures.add(async.hset(cacheKey, record));\n futures.add(async.expire(cacheKey, ttlSeconds));\n loaded += 1;\n }\n connection.flushCommands();\n for (RedisFuture<?> future : futures) {\n future.get();\n }\n } finally {\n connection.setAutoFlushCommands(true);\n }\n if (loaded > 0) prefetched.addAndGet(loaded);\n return loaded;\n}\n```\n\nExample:\n```java\npublic Result get(String entityId) {\n RedisCommands<String, String> sync = connection.sync();\n String cacheKey = cacheKey(entityId);\n\n long startedNs = System.nanoTime();\n Map<String, String> cached = sync.hgetall(cacheKey);\n double redisLatencyMs = (System.nanoTime() - startedNs) / 1_000_000.0;\n\n if (cached != null && !cached.isEmpty()) {\n hits.incrementAndGet();\n return new Result(cached, true, redisLatencyMs);\n }\n misses.incrementAndGet();\n return new Result(null, false, redisLatencyMs);\n}\n```\n\nExample:\n```java\npublic void applyChange(Map<String, Object> change) {\n // ... validate op and id ...\n if (\"upsert\".equals(op)) {\n Map<String, String> fields = (Map<String, String>) change.get(\"fields\");\n if (fields == null || fields.isEmpty()) return;\n txLock.lock();\n try {\n sync.multi();\n sync.del(cacheKey);\n sync.hset(cacheKey, fields);\n sync.expire(cacheKey, ttlSeconds);\n sync.exec();\n } finally {\n txLock.unlock();\n }\n } else if (\"delete\".equals(op)) {\n sync.del(cacheKey);\n }\n // ... record sync_events_applied counter and lag sample ...\n}\n```\n\nExample:\n```java\nprivate void run() {\n while (!stopRequested) {\n if (pauseRequested) {\n // park until resume() ...\n continue;\n }\n Map<String, Object> change = primary.nextChange(pollTimeoutMs);\n if (change == null) continue;\n try {\n cache.applyChange(change);\n } catch (Exception exc) {\n System.err.printf(\"[sync] failed to apply %s: %s%n\",\n change, exc.getMessage());\n }\n }\n}\n```\n\nExample:\n```java\nsync.pause(2000);\ntry {\n cache.clear();\n cache.bulkLoad(primary.listRecords());\n} finally {\n sync.resume();\n}\n```\n\nExample:\n```java\npublic Map<String, Object> stats() {\n long h = hits.get();\n long m = misses.get();\n long total = h + m;\n double hitRate = total == 0 ? 0.0 : Math.round(1000.0 * h / total) / 10.0;\n double avgLag;\n synchronized (lagLock) {\n avgLag = syncLagSamples == 0\n ? 0.0\n : Math.round(100.0 * syncLagMsTotal / syncLagSamples) / 100.0;\n }\n Map<String, Object> stats = new LinkedHashMap<>();\n stats.put(\"hits\", h);\n stats.put(\"misses\", m);\n stats.put(\"hit_rate_pct\", hitRate);\n stats.put(\"prefetched\", prefetched.get());\n stats.put(\"sync_events_applied\", syncEventsApplied.get());\n stats.put(\"sync_lag_ms_avg\", avgLag);\n return stats;\n}\n```\n\nExample:\n```bash\nmkdir prefetch-cache-demo && cd prefetch-cache-demo\nBASE=https://raw.githubusercontent.com/redis/docs/main/content/develop/use-cases/prefetch-cache/java-lettuce\ncurl -O $BASE/PrefetchCache.java\ncurl -O $BASE/MockPrimaryStore.java\ncurl -O $BASE/SyncWorker.java\ncurl -O $BASE/DemoServer.java\n```\n\nExample:\n```bash\nmkdir lib && cd lib\nLETTUCE=https://repo1.maven.org/maven2/io/lettuce/lettuce-core/6.5.0.RELEASE\ncurl -O $LETTUCE/lettuce-core-6.5.0.RELEASE.jar\nNETTY=https://repo1.maven.org/maven2/io/netty\nfor ARTIFACT in netty-buffer netty-codec netty-common netty-handler \\\n netty-resolver netty-transport netty-transport-native-unix-common; do\n curl -O \"$NETTY/$ARTIFACT/4.1.113.Final/$ARTIFACT-4.1.113.Final.jar\"\ndone\ncurl -O https://repo1.maven.org/maven2/io/projectreactor/reactor-core/3.6.6/reactor-core-3.6.6.jar\ncurl -O https://repo1.maven.org/maven2/org/reactivestreams/reactive-streams/1.0.4/reactive-streams-1.0.4.jar\ncd ..\n```\n\nExample:\n```bash\njavac -cp 'lib/*' PrefetchCache.java MockPrimaryStore.java SyncWorker.java DemoServer.java\njava -cp '.:lib/*' DemoServer --port 8786 --redis-host localhost --redis-port 6379\n```\n\nExample:\n```text\nRedis prefetch-cache demo server listening on http://127.0.0.1:8786\nUsing Redis at localhost:6379 with cache prefix 'cache:category:' and TTL 3600s\nPrefetched 5 records in 90.9 ms; sync worker running\n```\n\nExample:\n```java\npublic class MockPrimaryStore {\n public MockPrimaryStore(int readLatencyMs) { ... }\n\n public List<Map<String, String>> listRecords() {\n Thread.sleep(readLatencyMs);\n // ...\n }\n\n public boolean updateField(String entityId, String field, String value) {\n synchronized (lock) {\n // ... mutate the record ...\n emitChangeLocked(CHANGE_OP_UPSERT, entityId, copy);\n }\n return true;\n }\n}\n```\n\nExample:\n```bash\nredis-cli --scan --pattern 'cache:category:*'\nredis-cli HGETALL cache:category:cat-001\nredis-cli TTL cache:category:cat-001\n```\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.505Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":14,"totalLines":232,"estimatedTokens":1752}}605{"id":"doc-configure_subscription_cidr_allow_list_docs-08a3f55a","source":"documentation","title":"Configure subscription CIDR allow list | Docs","url":"https://redis.io/docs/latest/operate/rc/subscriptions/bring-your-own-cloud/subscription-whitelist/","text":"{\"categories\":[\"docs\",\"operate\",\"rc\"],\"description\":\"The CIDR allow list permits traffic between a range of IP addresses and the Redis Cloud VPC.\",\"duplicateOf\":\"head:data-ai-metadata\",\"location\":\"body\",\"title\":\"Configure subscription CIDR allow list\",\"tableOfContents\":{\"sections\":[{\"id\":\"allow-ip-address-or-security-group\",\"title\":\"Allow IP address or security group\"}]},\"codeExamples\":[]}\n\nAll products Redis Software Redis Cloud Redis Open Source Redis Insight Redis Enterprise for K8s Redis Data Integration Client Libraries ESC\n\n<|endofdoc|>","metadata":{"transformedAt":"2026-08-18T15:21:42.513Z","totalSectionsIncluded":2,"totalCodeBlocksIncluded":0,"totalLines":5,"estimatedTokens":137}}606 