[{"data":1,"prerenderedAt":1851},["ShallowReactive",2],{"navigation":3,"hamburger-docs-nav":121,"doc-configuration,infrastructure-as-code,terraform":158,"/docs/configuration/infrastructure-as-code/terraform-surround":1810,"docs-nav":1814},[4],{"title":5,"path":6,"stem":7,"children":8,"page":44},"Docs","/docs","docs",[9,45],{"title":10,"path":11,"stem":12,"children":13},"Introduction","/docs/getting-started","docs/00.getting-started/index",[14,15,19],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Quickstart","/docs/getting-started/quickstart","docs/00.getting-started/00.quickstart",{"title":20,"path":21,"stem":22,"children":23,"page":44},"Core Concepts","/docs/getting-started/core-concepts","docs/00.getting-started/core-concepts",[24,28,32,36,40],{"title":25,"path":26,"stem":27},"What is an Organisation?","/docs/getting-started/core-concepts/what-is-an-org","docs/00.getting-started/core-concepts/01.what-is-an-org",{"title":29,"path":30,"stem":31},"What is a Service?","/docs/getting-started/core-concepts/what-is-a-service","docs/00.getting-started/core-concepts/02.what-is-a-service",{"title":33,"path":34,"stem":35},"Routing Traffic","/docs/getting-started/core-concepts/routing-traffic","docs/00.getting-started/core-concepts/03.routing-traffic",{"title":37,"path":38,"stem":39},"Securing your content","/docs/getting-started/core-concepts/securing-content","docs/00.getting-started/core-concepts/04.securing-content",{"title":41,"path":42,"stem":43},"Invalidating Cache","/docs/getting-started/core-concepts/invalidating-cache","docs/00.getting-started/core-concepts/05.invalidating-cache",false,{"title":10,"path":46,"stem":47,"children":48},"/docs/configuration","docs/01.configuration/index",[49,50,99,112],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":54,"page":44},"Configuration","/docs/configuration/configuration","docs/01.configuration/configuration",[55,59,63,67,71,75,79,83,87,91,95],{"title":56,"path":57,"stem":58},"Domains","/docs/configuration/configuration/domains","docs/01.configuration/configuration/00.domains",{"title":60,"path":61,"stem":62},"Origins","/docs/configuration/configuration/origins","docs/01.configuration/configuration/01.origins",{"title":64,"path":65,"stem":66},"General","/docs/configuration/configuration/general","docs/01.configuration/configuration/02.general",{"title":68,"path":69,"stem":70},"High Availability","/docs/configuration/configuration/high-availability","docs/01.configuration/configuration/03.high-availability",{"title":72,"path":73,"stem":74},"Query Parameters","/docs/configuration/configuration/query-parameters","docs/01.configuration/configuration/04.query-parameters",{"title":76,"path":77,"stem":78},"Headers","/docs/configuration/configuration/headers","docs/01.configuration/configuration/05.headers",{"title":80,"path":81,"stem":82},"Cookies","/docs/configuration/configuration/cookies","docs/01.configuration/configuration/06.cookies",{"title":84,"path":85,"stem":86},"Security","/docs/configuration/configuration/security","docs/01.configuration/configuration/07.security",{"title":88,"path":89,"stem":90},"Image Handling","/docs/configuration/configuration/image-handling","docs/01.configuration/configuration/08.image-handling",{"title":92,"path":93,"stem":94},"Overrides","/docs/configuration/configuration/overrides","docs/01.configuration/configuration/09.overrides",{"title":96,"path":97,"stem":98},"API Configuration Reference","/docs/configuration/configuration/api-configuration","docs/01.configuration/configuration/10.api-configuration",{"title":100,"path":101,"stem":102,"children":103,"page":44},"Global Configuration","/docs/configuration/global-configuration","docs/01.configuration/global-configuration",[104,108],{"title":105,"path":106,"stem":107},"Managing TLS Certificates","/docs/configuration/global-configuration/tls","docs/01.configuration/global-configuration/TLS",{"title":109,"path":110,"stem":111},"Purge Tokens","/docs/configuration/global-configuration/purge-tokens","docs/01.configuration/global-configuration/purge-tokens",{"title":113,"path":114,"stem":115,"children":116,"page":44},"Infrastructure As Code","/docs/configuration/infrastructure-as-code","docs/01.configuration/infrastructure-as-code",[117],{"title":118,"path":119,"stem":120},"Terraform and OpenTofu","/docs/configuration/infrastructure-as-code/terraform","docs/01.configuration/infrastructure-as-code/terraform",[122],{"title":5,"path":6,"stem":7,"children":123,"page":44},[124,135],{"title":10,"path":11,"stem":12,"children":125},[126,127,128],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":129,"page":44},[130,131,132,133,134],{"title":25,"path":26,"stem":27},{"title":29,"path":30,"stem":31},{"title":33,"path":34,"stem":35},{"title":37,"path":38,"stem":39},{"title":41,"path":42,"stem":43},{"title":10,"path":46,"stem":47,"children":136},[137,138,151,155],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":139,"page":44},[140,141,142,143,144,145,146,147,148,149,150],{"title":56,"path":57,"stem":58},{"title":60,"path":61,"stem":62},{"title":64,"path":65,"stem":66},{"title":68,"path":69,"stem":70},{"title":72,"path":73,"stem":74},{"title":76,"path":77,"stem":78},{"title":80,"path":81,"stem":82},{"title":84,"path":85,"stem":86},{"title":88,"path":89,"stem":90},{"title":92,"path":93,"stem":94},{"title":96,"path":97,"stem":98},{"title":100,"path":101,"stem":102,"children":152,"page":44},[153,154],{"title":105,"path":106,"stem":107},{"title":109,"path":110,"stem":111},{"title":113,"path":114,"stem":115,"children":156,"page":44},[157],{"title":118,"path":119,"stem":120},{"id":159,"title":118,"body":160,"description":1805,"extension":1806,"meta":1807,"navigation":435,"path":119,"seo":1808,"stem":120,"__hash__":1809},"docs/docs/01.configuration/infrastructure-as-code/terraform.md",{"type":161,"value":162,"toc":1794},"minimark",[163,167,178,196,201,262,307,311,506,510,521,794,797,816,830,853,857,870,1210,1213,1218,1231,1235,1242,1397,1403,1407,1413,1510,1517,1521,1524,1569,1572,1588,1599,1603,1612,1753,1760,1764,1790],[164,165,166],"p",{},"The Varnish provider lets you manage your CDN setup as code. You describe services, domains, origins, settings, certificates and purge tokens in configuration files, and OpenTofu or Terraform creates and updates them for you.",[164,168,169,170,177],{},"The provider is open source and available at ",[171,172,176],"a",{"href":173,"rel":174},"https://github.com/varnish/terraform-provider-varnish",[175],"nofollow","github.com/varnish/terraform-provider-varnish",".",[179,180,183],"note",{"className":181},[182],"block",[164,184,185,186,191,192,177],{},"The provider is published in the ",[171,187,190],{"href":188,"rel":189},"https://search.opentofu.org/provider/varnish/varnish",[175],"OpenTofu Registry",". Terraform Registry support is coming. Until then, Terraform users can ",[171,193,195],{"href":194},"#terraform-build-locally","build the provider locally",[197,198,200],"h2",{"id":199},"what-you-can-manage","What you can manage",[202,203,204,217],"table",{},[205,206,207],"thead",{},[208,209,210,214],"tr",{},[211,212,213],"th",{},"Resource",[211,215,216],{},"Description",[218,219,220,232,242,252],"tbody",{},[208,221,222,229],{},[223,224,225],"td",{},[226,227,228],"code",{},"varnish_cdn_service",[223,230,231],{},"A CDN service with its domains, origins and settings",[208,233,234,239],{},[223,235,236],{},[226,237,238],{},"varnish_cdn_certificate",[223,240,241],{},"An uploaded TLS certificate",[208,243,244,249],{},[223,245,246],{},[226,247,248],{},"varnish_cdn_purge_token",[223,250,251],{},"A token that can only invalidate cached content",[208,253,254,259],{},[223,255,256],{},[226,257,258],{},"varnish_org_user",[223,260,261],{},"A user in your organization, from invite to member",[202,263,264,273],{},[205,265,266],{},[208,267,268,271],{},[211,269,270],{},"Data source",[211,272,216],{},[218,274,275,285,295],{},[208,276,277,282],{},[223,278,279],{},[226,280,281],{},"varnish_cdn_domain_dns",[223,283,284],{},"The DNS records a domain needs, and its verification status",[208,286,287,292],{},[223,288,289],{},[226,290,291],{},"varnish_cdn_wizard_templates",[223,293,294],{},"The configuration templates available to your organization",[208,296,297,302],{},[223,298,299],{},[226,300,301],{},"varnish_roles",[223,303,304,305],{},"The role names you can give to ",[226,306,258],{},[197,308,310],{"id":309},"getting-started-with-opentofu","Getting started with OpenTofu",[312,313,315,320,323,327,334,450,454,457,485,489,503],"steps",{"level":314},"4",[316,317,319],"h4",{"id":318},"create-an-api-access-token","Create an API access token",[164,321,322],{},"Create an API access token for your organization in the dashboard. The provider uses it for all requests. Treat it like a password.",[316,324,326],{"id":325},"configure-the-provider","Configure the provider",[164,328,329,330,333],{},"Create a ",[226,331,332],{},"main.tf"," file:",[335,336,341],"pre",{"className":337,"code":338,"filename":332,"language":339,"meta":340,"style":340},"language-hcl shiki shiki-themes material-theme-lighter github-light github-dark monokai","terraform {\n  required_providers {\n    varnish = {\n      source  = \"varnish/varnish\"\n      version = \"~> 0.1\"\n    }\n  }\n}\n\nprovider \"varnish\" {}\n","hcl","",[226,342,343,356,364,377,397,412,418,424,430,437],{"__ignoreMap":340},[344,345,348,352],"span",{"class":346,"line":347},"line",1,[344,349,351],{"class":350},"sKvfc","terraform",[344,353,355],{"class":354},"swvn1"," {\n",[344,357,359,362],{"class":346,"line":358},2,[344,360,361],{"class":350},"  required_providers",[344,363,355],{"class":354},[344,365,367,371,375],{"class":346,"line":366},3,[344,368,370],{"class":369},"ss--_","    varnish",[344,372,374],{"class":373},"sGXK2"," =",[344,376,355],{"class":354},[344,378,380,383,386,390,394],{"class":346,"line":379},4,[344,381,382],{"class":369},"      source",[344,384,385],{"class":373},"  =",[344,387,389],{"class":388},"siCPE"," \"",[344,391,393],{"class":392},"sLACW","varnish/varnish",[344,395,396],{"class":388},"\"\n",[344,398,400,403,405,407,410],{"class":346,"line":399},5,[344,401,402],{"class":369},"      version",[344,404,374],{"class":373},[344,406,389],{"class":388},[344,408,409],{"class":392},"~> 0.1",[344,411,396],{"class":388},[344,413,415],{"class":346,"line":414},6,[344,416,417],{"class":354},"    }\n",[344,419,421],{"class":346,"line":420},7,[344,422,423],{"class":354},"  }\n",[344,425,427],{"class":346,"line":426},8,[344,428,429],{"class":354},"}\n",[344,431,433],{"class":346,"line":432},9,[344,434,436],{"emptyLinePlaceholder":435},true,"\n",[344,438,440,443,447],{"class":346,"line":439},10,[344,441,442],{"class":350},"provider",[344,444,446],{"class":445},"s91G_"," \"varnish\"",[344,448,449],{"class":354}," {}\n",[316,451,453],{"id":452},"set-the-token","Set the token",[164,455,456],{},"Pass the token as an environment variable, so it never ends up in your files:",[335,458,463],{"className":459,"code":460,"filename":461,"language":462,"meta":340,"style":340},"language-bash shiki shiki-themes material-theme-lighter github-light github-dark monokai","export VARNISH_ACCESS_TOKEN=\"\u003Cyour-access-token>\"\n","terminal","bash",[226,464,465],{"__ignoreMap":340},[344,466,467,471,474,477,480,483],{"class":346,"line":347},[344,468,470],{"class":469},"sTNss","export",[344,472,473],{"class":369}," VARNISH_ACCESS_TOKEN",[344,475,476],{"class":373},"=",[344,478,479],{"class":388},"\"",[344,481,482],{"class":392},"\u003Cyour-access-token>",[344,484,396],{"class":388},[316,486,488],{"id":487},"initialize","Initialize",[335,490,492],{"className":459,"code":491,"filename":461,"language":462,"meta":340,"style":340},"tofu init\n",[226,493,494],{"__ignoreMap":340},[344,495,496,500],{"class":346,"line":347},[344,497,499],{"class":498},"sR7ES","tofu",[344,501,502],{"class":392}," init\n",[164,504,505],{},"OpenTofu downloads the provider and verifies its signature.",[197,507,509],{"id":508},"create-a-service","Create a service",[164,511,512,513,516,517,520],{},"A service needs at least one ",[171,514,515],{"href":57},"domain"," and one ",[171,518,519],{"href":61},"origin",":",[335,522,524],{"className":337,"code":523,"filename":332,"language":339,"meta":340,"style":340},"resource \"varnish_cdn_service\" \"web\" {\n  domain {\n    fqdn = \"www.example.com\"\n    tls  = true\n  }\n\n  origin {\n    name       = \"default\"\n    host       = \"origin.example.com\"\n    port       = 443\n    enable_tls = true\n    is_default = true\n  }\n}\n\n# The DNS records to set at your DNS provider\ndata \"varnish_cdn_domain_dns\" \"www\" {\n  service_id = varnish_cdn_service.web.id\n  fqdn       = \"www.example.com\"\n}\n\noutput \"dns\" {\n  value = {\n    cname    = data.varnish_cdn_domain_dns.www.expected_cname\n    txt      = data.varnish_cdn_domain_dns.www.expected_txt\n    verified = data.varnish_cdn_domain_dns.www.verified\n  }\n}\n",[226,525,526,539,546,560,571,575,579,586,601,615,626,636,646,651,656,661,668,682,704,718,723,728,739,749,761,773,784,789],{"__ignoreMap":340},[344,527,528,531,534,537],{"class":346,"line":347},[344,529,530],{"class":350},"resource",[344,532,533],{"class":445}," \"varnish_cdn_service\"",[344,535,536],{"class":445}," \"web\"",[344,538,355],{"class":354},[344,540,541,544],{"class":346,"line":358},[344,542,543],{"class":350},"  domain",[344,545,355],{"class":354},[344,547,548,551,553,555,558],{"class":346,"line":366},[344,549,550],{"class":369},"    fqdn",[344,552,374],{"class":373},[344,554,389],{"class":388},[344,556,557],{"class":392},"www.example.com",[344,559,396],{"class":388},[344,561,562,565,567],{"class":346,"line":379},[344,563,564],{"class":369},"    tls",[344,566,385],{"class":373},[344,568,570],{"class":569},"sMTiH"," true\n",[344,572,573],{"class":346,"line":399},[344,574,423],{"class":354},[344,576,577],{"class":346,"line":414},[344,578,436],{"emptyLinePlaceholder":435},[344,580,581,584],{"class":346,"line":420},[344,582,583],{"class":350},"  origin",[344,585,355],{"class":354},[344,587,588,591,594,596,599],{"class":346,"line":426},[344,589,590],{"class":369},"    name",[344,592,593],{"class":373},"       =",[344,595,389],{"class":388},[344,597,598],{"class":392},"default",[344,600,396],{"class":388},[344,602,603,606,608,610,613],{"class":346,"line":432},[344,604,605],{"class":369},"    host",[344,607,593],{"class":373},[344,609,389],{"class":388},[344,611,612],{"class":392},"origin.example.com",[344,614,396],{"class":388},[344,616,617,620,622],{"class":346,"line":439},[344,618,619],{"class":369},"    port",[344,621,593],{"class":373},[344,623,625],{"class":624},"sYThS"," 443\n",[344,627,629,632,634],{"class":346,"line":628},11,[344,630,631],{"class":369},"    enable_tls",[344,633,374],{"class":373},[344,635,570],{"class":569},[344,637,639,642,644],{"class":346,"line":638},12,[344,640,641],{"class":369},"    is_default",[344,643,374],{"class":373},[344,645,570],{"class":569},[344,647,649],{"class":346,"line":648},13,[344,650,423],{"class":354},[344,652,654],{"class":346,"line":653},14,[344,655,429],{"class":354},[344,657,659],{"class":346,"line":658},15,[344,660,436],{"emptyLinePlaceholder":435},[344,662,664],{"class":346,"line":663},16,[344,665,667],{"class":666},"ss7Ak","# The DNS records to set at your DNS provider\n",[344,669,671,674,677,680],{"class":346,"line":670},17,[344,672,673],{"class":350},"data",[344,675,676],{"class":445}," \"varnish_cdn_domain_dns\"",[344,678,679],{"class":445}," \"www\"",[344,681,355],{"class":354},[344,683,685,688,690,694,696,699,701],{"class":346,"line":684},18,[344,686,687],{"class":369},"  service_id",[344,689,374],{"class":373},[344,691,693],{"class":692},"squCx"," varnish_cdn_service",[344,695,177],{"class":373},[344,697,698],{"class":369},"web",[344,700,177],{"class":373},[344,702,703],{"class":369},"id\n",[344,705,707,710,712,714,716],{"class":346,"line":706},19,[344,708,709],{"class":369},"  fqdn",[344,711,593],{"class":373},[344,713,389],{"class":388},[344,715,557],{"class":392},[344,717,396],{"class":388},[344,719,721],{"class":346,"line":720},20,[344,722,429],{"class":354},[344,724,726],{"class":346,"line":725},21,[344,727,436],{"emptyLinePlaceholder":435},[344,729,731,734,737],{"class":346,"line":730},22,[344,732,733],{"class":350},"output",[344,735,736],{"class":445}," \"dns\"",[344,738,355],{"class":354},[344,740,742,745,747],{"class":346,"line":741},23,[344,743,744],{"class":369},"  value",[344,746,374],{"class":373},[344,748,355],{"class":354},[344,750,752,755,758],{"class":346,"line":751},24,[344,753,754],{"class":369},"    cname",[344,756,757],{"class":373},"    =",[344,759,760],{"class":692}," data.varnish_cdn_domain_dns.www.expected_cname\n",[344,762,764,767,770],{"class":346,"line":763},25,[344,765,766],{"class":369},"    txt",[344,768,769],{"class":373},"      =",[344,771,772],{"class":692}," data.varnish_cdn_domain_dns.www.expected_txt\n",[344,774,776,779,781],{"class":346,"line":775},26,[344,777,778],{"class":369},"    verified",[344,780,374],{"class":373},[344,782,783],{"class":692}," data.varnish_cdn_domain_dns.www.verified\n",[344,785,787],{"class":346,"line":786},27,[344,788,423],{"class":354},[344,790,792],{"class":346,"line":791},28,[344,793,429],{"class":354},[164,795,796],{},"Review the changes and apply them:",[335,798,800],{"className":459,"code":799,"filename":461,"language":462,"meta":340,"style":340},"tofu plan\ntofu apply\n",[226,801,802,809],{"__ignoreMap":340},[344,803,804,806],{"class":346,"line":347},[344,805,499],{"class":498},[344,807,808],{"class":392}," plan\n",[344,810,811,813],{"class":346,"line":358},[344,812,499],{"class":498},[344,814,815],{"class":392}," apply\n",[164,817,818,819,822,823,826,827,177],{},"The ",[226,820,821],{},"dns"," output shows the records your domain needs. Once they are in place, ",[226,824,825],{},"verified"," becomes ",[226,828,829],{},"true",[831,832,834],"tip",{"className":833},[182],[164,835,836,837,840,841,844,845,848,849,852],{},"To use an apex domain such as ",[226,838,839],{},"example.com",", set ",[226,842,843],{},"subdomain",", for example ",[226,846,847],{},"subdomain = \"www\"",". Wildcard domains such as ",[226,850,851],{},"*.example.com"," are supported too.",[197,854,856],{"id":855},"configure-settings","Configure settings",[164,858,818,859,862,863,866,867,520],{},[226,860,861],{},"settings"," attribute holds the same configuration as the dashboard. The fields follow the ",[171,864,865],{"href":97},"configuration reference",", written in ",[226,868,869],{},"snake_case",[335,871,873],{"className":337,"code":872,"filename":332,"language":339,"meta":340,"style":340},"resource \"varnish_cdn_service\" \"web\" {\n  # domain and origin blocks as above\n\n  settings = {\n    general = {\n      first_byte_timeout = \"10s\"\n    }\n\n    query_params = {\n      remove_query_parameters = { action = \"sort\" }\n    }\n\n    cookies = {\n      on_cookie = { action = \"remove\" }\n    }\n\n    security = {\n      https_redirect = true\n      hsts           = true\n    }\n\n    # Apply settings only to matching requests\n    overrides = [\n      {\n        name       = \"cache-images-long\"\n        extensions = [\"jpg\", \"png\", \"webp\"]\n        rules = [\n          { string_id = \"general.cacheableTTLOverride\", value = jsonencode(\"7d\") },\n        ]\n      },\n    ]\n  }\n}\n",[226,874,875,885,890,894,903,912,926,930,934,943,968,972,976,985,1007,1011,1015,1024,1033,1043,1047,1051,1056,1066,1071,1085,1124,1133,1180,1186,1194,1200,1205],{"__ignoreMap":340},[344,876,877,879,881,883],{"class":346,"line":347},[344,878,530],{"class":350},[344,880,533],{"class":445},[344,882,536],{"class":445},[344,884,355],{"class":354},[344,886,887],{"class":346,"line":358},[344,888,889],{"class":666},"  # domain and origin blocks as above\n",[344,891,892],{"class":346,"line":366},[344,893,436],{"emptyLinePlaceholder":435},[344,895,896,899,901],{"class":346,"line":379},[344,897,898],{"class":369},"  settings",[344,900,374],{"class":373},[344,902,355],{"class":354},[344,904,905,908,910],{"class":346,"line":399},[344,906,907],{"class":369},"    general",[344,909,374],{"class":373},[344,911,355],{"class":354},[344,913,914,917,919,921,924],{"class":346,"line":414},[344,915,916],{"class":369},"      first_byte_timeout",[344,918,374],{"class":373},[344,920,389],{"class":388},[344,922,923],{"class":392},"10s",[344,925,396],{"class":388},[344,927,928],{"class":346,"line":420},[344,929,417],{"class":354},[344,931,932],{"class":346,"line":426},[344,933,436],{"emptyLinePlaceholder":435},[344,935,936,939,941],{"class":346,"line":432},[344,937,938],{"class":369},"    query_params",[344,940,374],{"class":373},[344,942,355],{"class":354},[344,944,945,948,950,953,956,958,960,963,965],{"class":346,"line":439},[344,946,947],{"class":369},"      remove_query_parameters",[344,949,374],{"class":373},[344,951,952],{"class":354}," {",[344,954,955],{"class":369}," action",[344,957,374],{"class":373},[344,959,389],{"class":388},[344,961,962],{"class":392},"sort",[344,964,479],{"class":388},[344,966,967],{"class":354}," }\n",[344,969,970],{"class":346,"line":628},[344,971,417],{"class":354},[344,973,974],{"class":346,"line":638},[344,975,436],{"emptyLinePlaceholder":435},[344,977,978,981,983],{"class":346,"line":648},[344,979,980],{"class":369},"    cookies",[344,982,374],{"class":373},[344,984,355],{"class":354},[344,986,987,990,992,994,996,998,1000,1003,1005],{"class":346,"line":653},[344,988,989],{"class":369},"      on_cookie",[344,991,374],{"class":373},[344,993,952],{"class":354},[344,995,955],{"class":369},[344,997,374],{"class":373},[344,999,389],{"class":388},[344,1001,1002],{"class":392},"remove",[344,1004,479],{"class":388},[344,1006,967],{"class":354},[344,1008,1009],{"class":346,"line":658},[344,1010,417],{"class":354},[344,1012,1013],{"class":346,"line":663},[344,1014,436],{"emptyLinePlaceholder":435},[344,1016,1017,1020,1022],{"class":346,"line":670},[344,1018,1019],{"class":369},"    security",[344,1021,374],{"class":373},[344,1023,355],{"class":354},[344,1025,1026,1029,1031],{"class":346,"line":684},[344,1027,1028],{"class":369},"      https_redirect",[344,1030,374],{"class":373},[344,1032,570],{"class":569},[344,1034,1035,1038,1041],{"class":346,"line":706},[344,1036,1037],{"class":369},"      hsts",[344,1039,1040],{"class":373},"           =",[344,1042,570],{"class":569},[344,1044,1045],{"class":346,"line":720},[344,1046,417],{"class":354},[344,1048,1049],{"class":346,"line":725},[344,1050,436],{"emptyLinePlaceholder":435},[344,1052,1053],{"class":346,"line":730},[344,1054,1055],{"class":666},"    # Apply settings only to matching requests\n",[344,1057,1058,1061,1063],{"class":346,"line":741},[344,1059,1060],{"class":369},"    overrides",[344,1062,374],{"class":373},[344,1064,1065],{"class":692}," [\n",[344,1067,1068],{"class":346,"line":751},[344,1069,1070],{"class":354},"      {\n",[344,1072,1073,1076,1078,1080,1083],{"class":346,"line":763},[344,1074,1075],{"class":369},"        name",[344,1077,593],{"class":373},[344,1079,389],{"class":388},[344,1081,1082],{"class":392},"cache-images-long",[344,1084,396],{"class":388},[344,1086,1087,1090,1092,1095,1097,1100,1102,1105,1107,1110,1112,1114,1116,1119,1121],{"class":346,"line":775},[344,1088,1089],{"class":369},"        extensions",[344,1091,374],{"class":373},[344,1093,1094],{"class":692}," [",[344,1096,479],{"class":388},[344,1098,1099],{"class":392},"jpg",[344,1101,479],{"class":388},[344,1103,1104],{"class":692},", ",[344,1106,479],{"class":388},[344,1108,1109],{"class":392},"png",[344,1111,479],{"class":388},[344,1113,1104],{"class":692},[344,1115,479],{"class":388},[344,1117,1118],{"class":392},"webp",[344,1120,479],{"class":388},[344,1122,1123],{"class":692},"]\n",[344,1125,1126,1129,1131],{"class":346,"line":786},[344,1127,1128],{"class":369},"        rules",[344,1130,374],{"class":373},[344,1132,1065],{"class":692},[344,1134,1135,1138,1141,1143,1145,1148,1150,1152,1155,1157,1161,1164,1166,1169,1171,1174,1177],{"class":346,"line":791},[344,1136,1137],{"class":354},"          {",[344,1139,1140],{"class":369}," string_id",[344,1142,374],{"class":373},[344,1144,389],{"class":388},[344,1146,1147],{"class":392},"general.cacheableTTLOverride",[344,1149,479],{"class":388},[344,1151,1104],{"class":692},[344,1153,1154],{"class":369},"value",[344,1156,374],{"class":373},[344,1158,1160],{"class":1159},"sMLJd"," jsonencode",[344,1162,1163],{"class":354},"(",[344,1165,479],{"class":388},[344,1167,1168],{"class":392},"7d",[344,1170,479],{"class":388},[344,1172,1173],{"class":354},")",[344,1175,1176],{"class":354}," }",[344,1178,1179],{"class":692},",\n",[344,1181,1183],{"class":346,"line":1182},29,[344,1184,1185],{"class":692},"        ]\n",[344,1187,1189,1192],{"class":346,"line":1188},30,[344,1190,1191],{"class":354},"      }",[344,1193,1179],{"class":692},[344,1195,1197],{"class":346,"line":1196},31,[344,1198,1199],{"class":692},"    ]\n",[344,1201,1203],{"class":346,"line":1202},32,[344,1204,423],{"class":354},[344,1206,1208],{"class":346,"line":1207},33,[344,1209,429],{"class":354},[164,1211,1212],{},"Only the settings you set are managed. Everything else keeps its current value, and changes made in the dashboard to those settings do not show up as a difference in your plan.",[179,1214,1215],{},[164,1216,1217],{},"Removing a setting from your configuration stops managing it. It does not reset it to the default value.",[164,1219,1220,1221,1224,1225,1230],{},"See the ",[171,1222,1223],{"href":46},"configuration pages"," for what each setting does. The ",[171,1226,1229],{"href":1227,"rel":1228},"https://github.com/varnish/terraform-provider-varnish/blob/main/examples/full/main.tf",[175],"full example"," lists every field with its allowed values.",[197,1232,1234],{"id":1233},"use-your-own-certificate","Use your own certificate",[164,1236,1237,1238,1241],{},"By default, the CDN issues certificates for your domains. To use your own ",[171,1239,1240],{"href":106},"certificate",", upload it and attach it to a domain:",[335,1243,1245],{"className":337,"code":1244,"filename":332,"language":339,"meta":340,"style":340},"resource \"varnish_cdn_certificate\" \"example\" {\n  name        = \"example-com\"\n  certificate = file(\"cert.pem\")\n  private_key = file(\"key.pem\")\n}\n\nresource \"varnish_cdn_service\" \"web\" {\n  domain {\n    fqdn    = \"www.example.com\"\n    tls     = true\n    cert_id = varnish_cdn_certificate.example.id\n  }\n\n  # origin block as above\n}\n",[226,1246,1247,1259,1274,1296,1316,1320,1324,1334,1340,1352,1361,1380,1384,1388,1393],{"__ignoreMap":340},[344,1248,1249,1251,1254,1257],{"class":346,"line":347},[344,1250,530],{"class":350},[344,1252,1253],{"class":445}," \"varnish_cdn_certificate\"",[344,1255,1256],{"class":445}," \"example\"",[344,1258,355],{"class":354},[344,1260,1261,1264,1267,1269,1272],{"class":346,"line":358},[344,1262,1263],{"class":369},"  name",[344,1265,1266],{"class":373},"        =",[344,1268,389],{"class":388},[344,1270,1271],{"class":392},"example-com",[344,1273,396],{"class":388},[344,1275,1276,1279,1281,1284,1286,1288,1291,1293],{"class":346,"line":366},[344,1277,1278],{"class":369},"  certificate",[344,1280,374],{"class":373},[344,1282,1283],{"class":1159}," file",[344,1285,1163],{"class":354},[344,1287,479],{"class":388},[344,1289,1290],{"class":392},"cert.pem",[344,1292,479],{"class":388},[344,1294,1295],{"class":354},")\n",[344,1297,1298,1301,1303,1305,1307,1309,1312,1314],{"class":346,"line":379},[344,1299,1300],{"class":369},"  private_key",[344,1302,374],{"class":373},[344,1304,1283],{"class":1159},[344,1306,1163],{"class":354},[344,1308,479],{"class":388},[344,1310,1311],{"class":392},"key.pem",[344,1313,479],{"class":388},[344,1315,1295],{"class":354},[344,1317,1318],{"class":346,"line":399},[344,1319,429],{"class":354},[344,1321,1322],{"class":346,"line":414},[344,1323,436],{"emptyLinePlaceholder":435},[344,1325,1326,1328,1330,1332],{"class":346,"line":420},[344,1327,530],{"class":350},[344,1329,533],{"class":445},[344,1331,536],{"class":445},[344,1333,355],{"class":354},[344,1335,1336,1338],{"class":346,"line":426},[344,1337,543],{"class":350},[344,1339,355],{"class":354},[344,1341,1342,1344,1346,1348,1350],{"class":346,"line":432},[344,1343,550],{"class":369},[344,1345,757],{"class":373},[344,1347,389],{"class":388},[344,1349,557],{"class":392},[344,1351,396],{"class":388},[344,1353,1354,1356,1359],{"class":346,"line":439},[344,1355,564],{"class":369},[344,1357,1358],{"class":373},"     =",[344,1360,570],{"class":569},[344,1362,1363,1366,1368,1371,1373,1376,1378],{"class":346,"line":628},[344,1364,1365],{"class":369},"    cert_id",[344,1367,374],{"class":373},[344,1369,1370],{"class":692}," varnish_cdn_certificate",[344,1372,177],{"class":373},[344,1374,1375],{"class":369},"example",[344,1377,177],{"class":373},[344,1379,703],{"class":369},[344,1381,1382],{"class":346,"line":638},[344,1383,423],{"class":354},[344,1385,1386],{"class":346,"line":648},[344,1387,436],{"emptyLinePlaceholder":435},[344,1389,1390],{"class":346,"line":653},[344,1391,1392],{"class":666},"  # origin block as above\n",[344,1394,1395],{"class":346,"line":658},[344,1396,429],{"class":354},[1398,1399,1400],"warning",{},[164,1401,1402],{},"The private key is stored in your state file. Keep the state file in a secure backend.",[197,1404,1406],{"id":1405},"create-a-purge-token","Create a purge token",[164,1408,1409,1412],{},[171,1410,1411],{"href":110},"Purge tokens"," let other systems invalidate cached content:",[335,1414,1416],{"className":337,"code":1415,"filename":332,"language":339,"meta":340,"style":340},"resource \"varnish_cdn_purge_token\" \"ci\" {\n  label  = \"ci-pipeline\"\n  expire = \"8760h\" # one year\n}\n\noutput \"purge_token\" {\n  value     = varnish_cdn_purge_token.ci.access_token\n  sensitive = true\n}\n",[226,1417,1418,1430,1444,1461,1465,1469,1478,1497,1506],{"__ignoreMap":340},[344,1419,1420,1422,1425,1428],{"class":346,"line":347},[344,1421,530],{"class":350},[344,1423,1424],{"class":445}," \"varnish_cdn_purge_token\"",[344,1426,1427],{"class":445}," \"ci\"",[344,1429,355],{"class":354},[344,1431,1432,1435,1437,1439,1442],{"class":346,"line":358},[344,1433,1434],{"class":369},"  label",[344,1436,385],{"class":373},[344,1438,389],{"class":388},[344,1440,1441],{"class":392},"ci-pipeline",[344,1443,396],{"class":388},[344,1445,1446,1449,1451,1453,1456,1458],{"class":346,"line":366},[344,1447,1448],{"class":369},"  expire",[344,1450,374],{"class":373},[344,1452,389],{"class":388},[344,1454,1455],{"class":392},"8760h",[344,1457,479],{"class":388},[344,1459,1460],{"class":666}," # one year\n",[344,1462,1463],{"class":346,"line":379},[344,1464,429],{"class":354},[344,1466,1467],{"class":346,"line":399},[344,1468,436],{"emptyLinePlaceholder":435},[344,1470,1471,1473,1476],{"class":346,"line":414},[344,1472,733],{"class":350},[344,1474,1475],{"class":445}," \"purge_token\"",[344,1477,355],{"class":354},[344,1479,1480,1482,1484,1487,1489,1492,1494],{"class":346,"line":420},[344,1481,744],{"class":369},[344,1483,1358],{"class":373},[344,1485,1486],{"class":692}," varnish_cdn_purge_token",[344,1488,177],{"class":373},[344,1490,1491],{"class":369},"ci",[344,1493,177],{"class":373},[344,1495,1496],{"class":369},"access_token\n",[344,1498,1499,1502,1504],{"class":346,"line":426},[344,1500,1501],{"class":369},"  sensitive",[344,1503,374],{"class":373},[344,1505,570],{"class":569},[344,1507,1508],{"class":346,"line":432},[344,1509,429],{"class":354},[164,1511,1512,1513,1516],{},"Read the token with ",[226,1514,1515],{},"tofu output -raw purge_token",". It is only available for tokens created by OpenTofu or Terraform, not for imported ones.",[197,1518,1520],{"id":1519},"import-existing-services","Import existing services",[164,1522,1523],{},"To manage a service you already created in the dashboard, import it by its service ID:",[335,1525,1528],{"className":337,"code":1526,"filename":1527,"language":339,"meta":340,"style":340},"import {\n  to = varnish_cdn_service.web\n  id = \"42\"\n}\n","import.tf",[226,1529,1530,1537,1551,1565],{"__ignoreMap":340},[344,1531,1532,1535],{"class":346,"line":347},[344,1533,1534],{"class":350},"import",[344,1536,355],{"class":354},[344,1538,1539,1542,1544,1546,1548],{"class":346,"line":358},[344,1540,1541],{"class":369},"  to",[344,1543,374],{"class":373},[344,1545,693],{"class":692},[344,1547,177],{"class":373},[344,1549,1550],{"class":369},"web\n",[344,1552,1553,1556,1558,1560,1563],{"class":346,"line":366},[344,1554,1555],{"class":369},"  id",[344,1557,374],{"class":373},[344,1559,389],{"class":388},[344,1561,1562],{"class":392},"42",[344,1564,396],{"class":388},[344,1566,1567],{"class":346,"line":379},[344,1568,429],{"class":354},[164,1570,1571],{},"Then generate the configuration for it:",[335,1573,1575],{"className":459,"code":1574,"filename":461,"language":462,"meta":340,"style":340},"tofu plan -generate-config-out=generated.tf\n",[226,1576,1577],{"__ignoreMap":340},[344,1578,1579,1581,1584],{"class":346,"line":347},[344,1580,499],{"class":498},[344,1582,1583],{"class":392}," plan",[344,1585,1587],{"class":1586},"sFhLe"," -generate-config-out=generated.tf\n",[164,1589,1590,1591,1594,1595,1598],{},"Review ",[226,1592,1593],{},"generated.tf",", then run ",[226,1596,1597],{},"tofu apply"," to finish the import.",[197,1600,1602],{"id":1601},"terraform-build-locally","Terraform: build locally",[164,1604,1605,1606,1611],{},"Until the provider is in the Terraform Registry, build it from source. You need ",[171,1607,1610],{"href":1608,"rel":1609},"https://go.dev/dl/",[175],"Go"," installed.",[312,1613,1614,1618,1653,1659,1663,1677,1731,1735],{"level":314},[316,1615,1617],{"id":1616},"build-and-install-the-provider","Build and install the provider",[335,1619,1621],{"className":459,"code":1620,"filename":461,"language":462,"meta":340,"style":340},"git clone https://github.com/varnish/terraform-provider-varnish.git\ncd terraform-provider-varnish\ngo install .\n",[226,1622,1623,1634,1642],{"__ignoreMap":340},[344,1624,1625,1628,1631],{"class":346,"line":347},[344,1626,1627],{"class":498},"git",[344,1629,1630],{"class":392}," clone",[344,1632,1633],{"class":392}," https://github.com/varnish/terraform-provider-varnish.git\n",[344,1635,1636,1639],{"class":346,"line":358},[344,1637,1638],{"class":1159},"cd",[344,1640,1641],{"class":392}," terraform-provider-varnish\n",[344,1643,1644,1647,1650],{"class":346,"line":366},[344,1645,1646],{"class":498},"go",[344,1648,1649],{"class":392}," install",[344,1651,1652],{"class":392}," .\n",[164,1654,1655,1656,177],{},"This puts the binary in ",[226,1657,1658],{},"$(go env GOPATH)/bin",[316,1660,1662],{"id":1661},"point-terraform-to-the-local-build","Point Terraform to the local build",[164,1664,1665,1666,1669,1670,1673,1674,520],{},"Add this to ",[226,1667,1668],{},"~/.terraformrc",". Replace the path with the output of ",[226,1671,1672],{},"go env GOPATH",", followed by ",[226,1675,1676],{},"/bin",[335,1678,1680],{"className":337,"code":1679,"filename":1668,"language":339,"meta":340,"style":340},"provider_installation {\n  dev_overrides {\n    \"registry.terraform.io/varnish/varnish\" = \"/home/\u003Cuser>/go/bin\"\n  }\n  direct {}\n}\n",[226,1681,1682,1689,1696,1716,1720,1727],{"__ignoreMap":340},[344,1683,1684,1687],{"class":346,"line":347},[344,1685,1686],{"class":350},"provider_installation",[344,1688,355],{"class":354},[344,1690,1691,1694],{"class":346,"line":358},[344,1692,1693],{"class":350},"  dev_overrides",[344,1695,355],{"class":354},[344,1697,1698,1701,1704,1706,1709,1711,1714],{"class":346,"line":366},[344,1699,1700],{"class":388},"    \"",[344,1702,1703],{"class":392},"registry.terraform.io/varnish/varnish",[344,1705,479],{"class":388},[344,1707,1708],{"class":692}," = ",[344,1710,479],{"class":388},[344,1712,1713],{"class":392},"/home/\u003Cuser>/go/bin",[344,1715,396],{"class":388},[344,1717,1718],{"class":346,"line":379},[344,1719,423],{"class":354},[344,1721,1722,1725],{"class":346,"line":399},[344,1723,1724],{"class":350},"  direct",[344,1726,449],{"class":354},[344,1728,1729],{"class":346,"line":414},[344,1730,429],{"class":354},[316,1732,1734],{"id":1733},"use-it","Use it",[164,1736,1737,1738,1740,1741,1744,1745,1748,1749,1752],{},"Use the same ",[226,1739,332],{}," as above. Skip ",[226,1742,1743],{},"terraform init",", and run ",[226,1746,1747],{},"terraform plan"," and ",[226,1750,1751],{},"terraform apply"," directly. Terraform prints a warning that development overrides are in use. That is expected.",[164,1754,1755,1756,1759],{},"Remove the ",[226,1757,1758],{},"dev_overrides"," block once the provider is available in the Terraform Registry.",[197,1761,1763],{"id":1762},"reference","Reference",[1765,1766,1767,1776,1783],"ul",{},[1768,1769,1770,1775],"li",{},[171,1771,1774],{"href":1772,"rel":1773},"https://github.com/varnish/terraform-provider-varnish/tree/main/docs",[175],"Provider documentation",": every resource and attribute",[1768,1777,1778],{},[171,1779,1782],{"href":1780,"rel":1781},"https://github.com/varnish/terraform-provider-varnish/tree/main/examples",[175],"Examples",[1768,1784,1785],{},[171,1786,1789],{"href":1787,"rel":1788},"https://github.com/varnish/terraform-provider-varnish/issues",[175],"Report an issue",[1791,1792,1793],"style",{},"html pre.shiki code .sKvfc, html code.shiki .sKvfc{--shiki-light:#E2931D;--shiki-light-text-decoration:inherit;--shiki-default:#6F42C1;--shiki-default-text-decoration:inherit;--shiki-dark:#B392F0;--shiki-dark-text-decoration:inherit;--shiki-sepia:#A6E22E;--shiki-sepia-text-decoration:underline}html pre.shiki code .swvn1, html code.shiki .swvn1{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .ss--_, html code.shiki .ss--_{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sGXK2, html code.shiki .sGXK2{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .siCPE, html code.shiki .siCPE{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .sLACW, html code.shiki .sLACW{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#E6DB74}html pre.shiki code .s91G_, html code.shiki .s91G_{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#F8F8F2}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html pre.shiki code .sTNss, html code.shiki .sTNss{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583;--shiki-sepia:#F92672}html pre.shiki code .sR7ES, html code.shiki .sR7ES{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0;--shiki-sepia:#A6E22E}html pre.shiki code .sMTiH, html code.shiki .sMTiH{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .sYThS, html code.shiki .sYThS{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}html pre.shiki code .ss7Ak, html code.shiki .ss7Ak{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit;--shiki-sepia:#88846F;--shiki-sepia-font-style:inherit}html pre.shiki code .squCx, html code.shiki .squCx{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .sMLJd, html code.shiki .sMLJd{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#66D9EF}html pre.shiki code .sFhLe, html code.shiki .sFhLe{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF;--shiki-sepia:#AE81FF}",{"title":340,"searchDepth":358,"depth":358,"links":1795},[1796,1797,1798,1799,1800,1801,1802,1803,1804],{"id":199,"depth":358,"text":200},{"id":309,"depth":358,"text":310},{"id":508,"depth":358,"text":509},{"id":855,"depth":358,"text":856},{"id":1233,"depth":358,"text":1234},{"id":1405,"depth":358,"text":1406},{"id":1519,"depth":358,"text":1520},{"id":1601,"depth":358,"text":1602},{"id":1762,"depth":358,"text":1763},"Manage your Varnish CDN services, certificates and purge tokens as code with the Varnish provider for OpenTofu and Terraform.","md",{},{"title":118,"description":1805},"YnSCk8U0HIMa8giN6zIrrxf5f7FBMeecDap7OMjjzF8",[1811,1813],{"title":109,"path":110,"stem":111,"description":1812,"children":-1},"Authenticate your purge requests using workspace-wide JWT or Basic Auth tokens. Securely authorize external systems to invalidate cached content across all your services.",null,[1815],{"title":5,"path":6,"stem":7,"children":1816,"page":44},[1817,1828],{"title":10,"path":11,"stem":12,"children":1818},[1819,1820,1821],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":1822,"page":44},[1823,1824,1825,1826,1827],{"title":25,"path":26,"stem":27},{"title":29,"path":30,"stem":31},{"title":33,"path":34,"stem":35},{"title":37,"path":38,"stem":39},{"title":41,"path":42,"stem":43},{"title":10,"path":46,"stem":47,"children":1829},[1830,1831,1844,1848],{"title":10,"path":46,"stem":47},{"title":51,"path":52,"stem":53,"children":1832,"page":44},[1833,1834,1835,1836,1837,1838,1839,1840,1841,1842,1843],{"title":56,"path":57,"stem":58},{"title":60,"path":61,"stem":62},{"title":64,"path":65,"stem":66},{"title":68,"path":69,"stem":70},{"title":72,"path":73,"stem":74},{"title":76,"path":77,"stem":78},{"title":80,"path":81,"stem":82},{"title":84,"path":85,"stem":86},{"title":88,"path":89,"stem":90},{"title":92,"path":93,"stem":94},{"title":96,"path":97,"stem":98},{"title":100,"path":101,"stem":102,"children":1845,"page":44},[1846,1847],{"title":105,"path":106,"stem":107},{"title":109,"path":110,"stem":111},{"title":113,"path":114,"stem":115,"children":1849,"page":44},[1850],{"title":118,"path":119,"stem":120},1792752051818]