UNPKG

gcp-pac

Version:

GCP Policy as Code (gcp-pac) for your Pulumi typescript apps

1 lines 697 kB
(()=>{var e={1986:function(e,t,r){"use strict";var i=this&&this.__awaiter||function(e,t,r,i){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(i.next(e))}catch(e){s(e)}}function rejected(e){try{step(i["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.serializeProperties=t.deserializeProperties=void 0;const s=r(4998);const n=r(5397);const o=r(8611);const u=r(7553);const a=r(453);function deserializeProperties(e,t){let r={};const i=e.toJavaScript();for(const e of Object.keys(i)){if(i[e]!==undefined){r[e]=deserializeProperty(i[e],t)}}if(t){r=a.secretsPreservingProxy(r)}return r}t.deserializeProperties=deserializeProperties;function deserializeProperty(e,t){if(e===undefined){throw new Error("unexpected undefined property value during deserialization")}else if(e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"){return e}else if(e instanceof Array){const r=[];for(const i of e){r.push(deserializeProperty(i,t))}return r}else{const r=e[n.specialSigKey];if(r){switch(r){case n.specialAssetSig:if(e["path"]){return new s.asset.FileAsset(e["path"])}else if(e["text"]){return new s.asset.StringAsset(e["text"])}else if(e["uri"]){return new s.asset.RemoteAsset(e["uri"])}else{throw new Error("Invalid asset encountered when unmarshaling resource property")}case n.specialArchiveSig:if(e["assets"]){const r={};for(const i of Object.keys(e["assets"])){const n=deserializeProperty(e["assets"][i],t);if(!s.asset.Asset.isInstance(n)&&!s.asset.Archive.isInstance(n)){throw new Error("Expected an AssetArchive's assets to be unmarshaled Asset or Archive objects")}r[i]=n}return new s.asset.AssetArchive(r)}else if(e["path"]){return new s.asset.FileArchive(e["path"])}else if(e["uri"]){return new s.asset.RemoteArchive(e["uri"])}else{throw new Error("Invalid archive encountered when unmarshaling resource property")}case n.specialSecretSig:let i=deserializeProperty(e["value"],t);if(t){i=new o.Secret(i)}return i;default:throw new Error(`Unrecognized signature '${r}' when unmarshaling resource property`)}}const i={};for(const r of Object.keys(e)){i[r]=deserializeProperty(e[r],t)}return i}}function serializeProperties(e){return i(this,void 0,void 0,(function*(){return serializeProperty(e)}))}t.serializeProperties=serializeProperties;function serializeProperty(e){return i(this,void 0,void 0,(function*(){if(e===undefined||e===null||typeof e==="boolean"||typeof e==="number"||typeof e==="string"){return e}if(e[u.isSpecialProxy]){return yield serializeProperty(e[u.getSpecialProxyTarget])}if(e instanceof Promise){return serializeProperty(yield e)}if(e instanceof Array){const t=[];for(const r of e){const e=yield serializeProperty(r);t.push(e===undefined?null:e)}return t}if(e instanceof s.asset.FileAsset){return{[n.specialSigKey]:n.specialAssetSig,path:yield serializeProperty(e.path)}}if(e instanceof s.asset.StringAsset){return{[n.specialSigKey]:n.specialAssetSig,text:yield serializeProperty(e.text)}}if(e instanceof s.asset.RemoteAsset){return{[n.specialSigKey]:n.specialAssetSig,uri:yield serializeProperty(e.uri)}}if(e instanceof s.asset.AssetArchive){const t=[];for(const r of Object.keys(yield e.assets)){t.push(yield serializeProperty(r))}return{[n.specialSigKey]:n.specialArchiveSig,assets:t}}if(e instanceof s.asset.FileArchive){return{[n.specialSigKey]:n.specialArchiveSig,path:yield serializeProperty(e.path)}}if(e instanceof s.asset.RemoteArchive){return{[n.specialSigKey]:n.specialArchiveSig,uri:yield serializeProperty(e.uri)}}if(e instanceof o.Secret){const t=yield serializeProperty(e.value);return{[n.specialSigKey]:n.specialSecretSig,value:t===undefined?null:t}}if(s.Output.isInstance(e)){throw new Error("Serializing output values not supported from within a policy pack")}const t={};for(const r of Object.keys(e)){const i=yield serializeProperty(e[r]);if(i!==undefined){t[r]=i}}return t}))}},1449:function(e,t,r){"use strict";var i=this&&this.__createBinding||(Object.create?function(e,t,r,i){if(i===undefined)i=r;Object.defineProperty(e,i,{enumerable:true,get:function(){return t[r]}})}:function(e,t,r,i){if(i===undefined)i=r;e[i]=t[r]});var s=this&&this.__exportStar||function(e,t){for(var r in e)if(r!=="default"&&!t.hasOwnProperty(r))i(t,e,r)};Object.defineProperty(t,"__esModule",{value:true});s(r(8611),t)},8611:function(e,t,r){"use strict";var i=this&&this.__awaiter||function(e,t,r,i){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(i.next(e))}catch(e){s(e)}}function rejected(e){try{step(i["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))};Object.defineProperty(t,"__esModule",{value:true});t.getPulumiType=t.isStackPolicy=t.isResourcePolicy=t.Secret=t.validateStackResourcesOfType=t.validateRemediateResourceOfType=t.validateResourceOfType=t.remediateResourceOfType=t.PolicyPack=void 0;const s=r(3334);const n="advisory";class PolicyPack{constructor(e,t,i){this.name=e;this.policies=t.policies;const o=process.cwd();const u=r(8330);const a=u.version;if(!a||a===""){throw new Error("Version must be defined in the package.json file.")}const p=t.enforcementLevel||n;s.serve(this.name,a,p,t,i)}}t.PolicyPack=PolicyPack;function remediateResourceOfType(e,t){const fn=r=>{if(r.isType(e)){return t(r.props,r)}else{notApplicableType(r,e)}};const r=getPulumiType(e);if(r){fn.__pulumiType=r}return fn}t.remediateResourceOfType=remediateResourceOfType;function validateResourceOfType(e,t){const fn=(r,i)=>{if(r.isType(e)){return t(r.props,r,i)}else{notApplicableType(r,e)}};const r=getPulumiType(e);if(r){fn.__pulumiType=r}return fn}t.validateResourceOfType=validateResourceOfType;function validateRemediateResourceOfType(e,t){const validateResource=(r,s)=>i(this,void 0,void 0,(function*(){if(r.isType(e)){yield t(r.props,r,s)}else{notApplicableType(r,e)}}));const remediateResource=r=>{if(r.isType(e)){return t(r.props,r,((e,t)=>{}))}else{notApplicableType(r,e)}};const r=getPulumiType(e);if(r){validateResource.__pulumiType=r;remediateResource.__pulumiType=r}return{validateResource:validateResource,remediateResource:remediateResource}}t.validateRemediateResourceOfType=validateRemediateResourceOfType;function validateStackResourcesOfType(e,t){const fn=(r,i)=>{const s=r.resources.filter((t=>t.isType(e)));if(s.length>0){const e=s.map((e=>e.props));const n=Object.assign(Object.assign({},r),{resources:s});return t(e,n,i)}else{notApplicableType(r,e)}};const r=getPulumiType(e);if(r){fn.__pulumiType=r}return fn}t.validateStackResourcesOfType=validateStackResourcesOfType;class Secret{constructor(e){this.value=e}}t.Secret=Secret;function isResourcePolicy(e){const t=e.validateResource;if(typeof t==="function"){return true}if(Array.isArray(t)){for(const e of t){if(typeof e!=="function"){return false}}return true}const r=e.remediateResource;if(typeof r==="function"){return true}return false}t.isResourcePolicy=isResourcePolicy;function isStackPolicy(e){return typeof e.validateStack==="function"}t.isStackPolicy=isStackPolicy;function getPulumiType(e){const t=e===null||e===void 0?void 0:e.__pulumiType;return typeof t==="string"&&t.length>0?t:undefined}t.getPulumiType=getPulumiType;function notApplicableType(e,t){var r;const i=getPulumiType(t);if(i){return e.notApplicable(`Policy only applies to resources of type '${i}'`)}const s=(r=t)===null||r===void 0?void 0:r.name;if(typeof s==="string"&&s.length>0){return e.notApplicable(`Policy only applies to '${s}' resources`)}return e.notApplicable("Policy only applies to resources of a specific type")}},3707:function(e,t,r){"use strict";var i=this&&this.__rest||function(e,t){var r={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0)r[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var s=0,i=Object.getOwnPropertySymbols(e);s<i.length;s++){if(t.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(e,i[s]))r[i[s]]=e[i[s]]}return r};Object.defineProperty(t,"__esModule",{value:true});t.makeRemediateResponse=t.normalizeConfig=t.convertEnforcementLevel=t.mapEnforcementLevel=t.makeAnalyzeResponse=t.makeAnalyzerInfo=t.asGrpcError=void 0;const s=r(1065);const n=r(4797);const o=r(8611);function asGrpcError(e,t){if(t===undefined||t===""){t=""}else{t=t+":\n"}if(e instanceof Error){return new Error(`${t}${e.stack}`)}else{return new Error(`${t}${e}`)}}t.asGrpcError=asGrpcError;function makeAnalyzerInfo(e,t,r,i,u){var a;const p=(a=i.policies)!==null&&a!==void 0?a:[];const l=new n.AnalyzerInfo;l.setName(e);l.setVersion(t);l.setSupportsconfig(true);if(i.displayName){l.setDisplayname(i.displayName)}if(i.description){l.setDescription(i.description)}if(i.readme){l.setReadme(i.readme)}if(i.provider){l.setProvider(i.provider)}if(i.tags){l.setTagsList(i.tags)}if(i.repository){l.setRepository(i.repository)}const c=[];for(const e of p){const t=new n.PolicyInfo;if(o.isResourcePolicy(e)){t.setPolicyType(n.PolicyType.POLICY_TYPE_RESOURCE)}else if(o.isStackPolicy(e)){t.setPolicyType(n.PolicyType.POLICY_TYPE_STACK)}t.setName(e.name);t.setDescription(e.description);t.setEnforcementlevel(mapEnforcementLevel(e.enforcementLevel||r));if(e.configSchema){const r=new n.PolicyConfigSchema;r.setProperties(s.Struct.fromJavaScript(e.configSchema.properties));if(e.configSchema.required){r.setRequiredList(e.configSchema.required)}t.setConfigschema(r)}if(e.displayName){t.setDisplayname(e.displayName)}if(e.severity){t.setSeverity(mapSeverity(e.severity))}if(e.framework){const r=new n.PolicyComplianceFramework;if(e.framework.name){r.setName(e.framework.name)}if(e.framework.version){r.setVersion(e.framework.version)}if(e.framework.reference){r.setReference(e.framework.reference)}if(e.framework.specification){r.setSpecification(e.framework.specification)}t.setFramework(r)}if(e.tags){t.setTagsList(e.tags)}if(e.remediationSteps){t.setRemediationSteps(e.remediationSteps)}if(e.url){t.setUrl(e.url)}c.push(t)}l.setPoliciesList(c);if(u){const e=normalizeConfig(u);let t;for(const r of Object.keys(e)){const i=e[r];let o;if(i.enforcementLevel){o=new n.PolicyConfig;o.setEnforcementlevel(mapEnforcementLevel(i.enforcementLevel))}if(i.properties){o=o||new n.PolicyConfig;o.setProperties(s.Struct.fromJavaScript(i.properties))}if(o){t=t||l.getInitialconfigMap();t.set(r,o)}}}return l}t.makeAnalyzerInfo=makeAnalyzerInfo;function makeAnalyzeResponse(e,t){const r=new n.AnalyzeResponse;const i=[];for(const t of e){const e=new n.AnalyzeDiagnostic;e.setPolicyname(t.policyName);e.setPolicypackname(t.policyPackName);e.setPolicypackversion(t.policyPackVersion);e.setDescription(t.description);e.setMessage(t.message);e.setEnforcementlevel(mapEnforcementLevel(t.enforcementLevel));if(t.urn){e.setUrn(t.urn)}if(t.severity){e.setSeverity(mapSeverity(t.severity))}i.push(e)}r.setDiagnosticsList(i);if(t===null||t===void 0?void 0:t.length){r.setNotApplicableList(t)}return r}t.makeAnalyzeResponse=makeAnalyzeResponse;function mapEnforcementLevel(e){switch(e){case"advisory":return n.EnforcementLevel.ADVISORY;case"mandatory":return n.EnforcementLevel.MANDATORY;case"remediate":return n.EnforcementLevel.REMEDIATE;case"disabled":return n.EnforcementLevel.DISABLED;default:throw new UnknownEnforcementLevelError(e)}}t.mapEnforcementLevel=mapEnforcementLevel;function convertEnforcementLevel(e){switch(e){case n.EnforcementLevel.ADVISORY:return"advisory";case n.EnforcementLevel.MANDATORY:return"mandatory";case n.EnforcementLevel.REMEDIATE:return"remediate";case n.EnforcementLevel.DISABLED:return"disabled";default:throw new Error(`Unknown enforcement level ${e}.`)}}t.convertEnforcementLevel=convertEnforcementLevel;function mapSeverity(e){switch(e){case"low":return n.PolicySeverity.POLICY_SEVERITY_LOW;case"medium":return n.PolicySeverity.POLICY_SEVERITY_MEDIUM;case"high":return n.PolicySeverity.POLICY_SEVERITY_HIGH;case"critical":return n.PolicySeverity.POLICY_SEVERITY_CRITICAL;default:return n.PolicySeverity.POLICY_SEVERITY_UNSPECIFIED}}function normalizeConfig(e){const t={};for(const r of Object.keys(e)){const s=e[r];if(typeof s==="string"){t[r]={enforcementLevel:s};continue}let n;if(s.enforcementLevel){n={};n.enforcementLevel=s.enforcementLevel}const{enforcementLevel:o}=s,u=i(s,["enforcementLevel"]);if(Object.keys(u).length>0){n=n||{};n.properties=u}if(n){t[r]=n}}return t}t.normalizeConfig=normalizeConfig;class UnknownEnforcementLevelError extends Error{constructor(e){super(`Unknown enforcement level type '${e}'`)}}function makeRemediateResponse(e,t){const r=new n.RemediateResponse;const i=[];for(const t of e){if(!t.properties&&!t.diagnostic){throw new Error("Expected a remediation to have either properties or a diagnostic")}const e=new n.Remediation;e.setPolicyname(t.policyName);e.setPolicypackname(t.policyPackName);e.setPolicypackversion(t.policyPackVersion);e.setDescription(t.description);if(t.properties){e.setProperties(s.Struct.fromJavaScript(t.properties))}if(t.diagnostic){e.setDiagnostic(t.diagnostic)}i.push(e)}r.setRemediationsList(i);if(t===null||t===void 0?void 0:t.length){r.setNotApplicableList(t)}return r}t.makeRemediateResponse=makeRemediateResponse},7553:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.unknownObjectValue=t.unknownArchiveValue=t.unknownAssetValue=t.unknownArrayValue=t.unknownStringValue=t.unknownNumberValue=t.unknownBooleanValue=t.UnknownValueError=t.getSpecialProxyTarget=t.isSpecialProxy=t.unknownCheckingProxy=void 0;function unknownCheckingProxy(e){return proxyHelper(e,[])}t.unknownCheckingProxy=unknownCheckingProxy;t.isSpecialProxy="__isSpecialProxy";t.getSpecialProxyTarget="__getSpecialProxyTarget";function proxyHelper(e,r){if(!(e instanceof Object)){return e}return new Proxy(e,{get:(e,i)=>{if(i===t.isSpecialProxy){return true}else if(i===t.getSpecialProxyTarget){return e}const s=r.concat([i]);const n=e[i];if(isUnknown(n)){throw new UnknownValueError(n,s)}return proxyHelper(n,s)}})}class UnknownValueError extends Error{constructor(e,t){const r=t.join(".");const i=unknownToString(e);super(`${i} value at .${r} can't be known during preview`);this.unknownTypeSentinel=e;this.props=t}}t.UnknownValueError=UnknownValueError;function isUnknown(e){return e===t.unknownBooleanValue||e===t.unknownNumberValue||e===t.unknownStringValue||e===t.unknownArrayValue||e===t.unknownAssetValue||e===t.unknownArchiveValue||e===t.unknownObjectValue}function unknownToString(e){switch(e){case t.unknownBooleanValue:return"boolean";case t.unknownNumberValue:return"number";case t.unknownStringValue:return"string";case t.unknownArrayValue:return"Array";case t.unknownAssetValue:return"asset";case t.unknownArchiveValue:return"archive";case t.unknownObjectValue:return"Object";default:throw new Error(`unknown value not recognized: ${e}`)}}t.unknownBooleanValue="1c4a061d-8072-4f0a-a4cb-0ff528b18fe7";t.unknownNumberValue="3eeb2bf0-c639-47a8-9e75-3b44932eb421";t.unknownStringValue="04da6b54-80e4-46f7-96ec-b56ff0331ba9";t.unknownArrayValue="6a19a0b0-7e62-4c92-b797-7f8e31da9cc2";t.unknownAssetValue="030794c1-ac77-496b-92df-f27374a8bd58";t.unknownArchiveValue="e48ece36-62e2-4504-bad9-02848725956a";t.unknownObjectValue="dd056dcd-154b-4c76-9bd3-c8f88648b5ff"},453:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.secretsPreservingProxy=void 0;const i=r(8611);const s=r(7553);function secretsPreservingProxy(e){if(!(e instanceof Object)){return e}const isSecret=(e,t)=>{const r=e[t];if(r&&r instanceof i.Secret){return[r.value,true]}return[r,false]};return new Proxy(e,{get:(e,t)=>{if(t===s.isSpecialProxy){return true}else if(t===s.getSpecialProxyTarget){return e}const[r,i]=isSecret(e,t);return secretsPreservingProxy(r)},set:(e,t,r,s)=>{const[n,o]=isSecret(e,t);if(o){r=new i.Secret(r)}e[t]=r;return true}})}t.secretsPreservingProxy=secretsPreservingProxy},3334:function(e,t,r){"use strict";var i=this&&this.__awaiter||function(e,t,r,i){function adopt(e){return e instanceof r?e:new r((function(t){t(e)}))}return new(r||(r=Promise))((function(r,s){function fulfilled(e){try{step(i.next(e))}catch(e){s(e)}}function rejected(e){try{step(i["throw"](e))}catch(e){s(e)}}function step(e){e.done?r(e.value):adopt(e.value).then(fulfilled,rejected)}step((i=i.apply(e,t||[])).next())}))};var s=this&&this.__rest||function(e,t){var r={};for(var i in e)if(Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0)r[i]=e[i];if(e!=null&&typeof Object.getOwnPropertySymbols==="function")for(var s=0,i=Object.getOwnPropertySymbols(e);s<i.length;s++){if(t.indexOf(i[s])<0&&Object.prototype.propertyIsEnumerable.call(e,i[s]))r[i[s]]=e[i[s]]}return r};Object.defineProperty(t,"__esModule",{value:true});t.makeRemediateRpcFun=t.makeAnalyzeStackRpcFun=t.makeAnalyzeRpcFun=t.serve=void 0;const n=r(932);const o=r(2577);const u=r(386);const a=r(4797);const p=r(1828);const l=r(2838);const c=r(1986);const d=r(8611);const g=r(3707);const f=r(7553);const m=r(2745);let R=undefined;const y="^[a-zA-Z0-9-_.]{1,100}$";const h=1024*1024*400;let v={};let b=freezeMap(new Map);function serve(e,t,r,i,s){var o,a;if(!e||!e.match(y)){console.error(`Invalid policy pack name "${e}". Policy pack names may only contain alphanumerics, hyphens, underscores, or periods.`);n.exit(1)}const l=(o=i.policies)!==null&&o!==void 0?o:[];for(const e of l){if(e.name==="all"){console.error('Invalid policy name "all". "all" is a reserved name.');n.exit(1)}if(e.configSchema){if((a=e.configSchema.properties)===null||a===void 0?void 0:a.enforcementLevel){console.error("enforcementLevel cannot be explicitly specified in properties.");n.exit(1)}if(e.configSchema.required&&e.configSchema.required.includes("enforcementLevel")){console.error('"enforcementLevel" cannot be specified in required.');n.exit(1)}}}if(R){console.error(`Already serving policy pack '${R}'. Only one policy pack may be defined per-process.`);n.exit(1)}R=e;const c=new u.Server({"grpc.max_receive_message_length":h});c.addService(p.AnalyzerService,{analyze:makeAnalyzeRpcFun(e,t,r,l),analyzeStack:makeAnalyzeStackRpcFun(e,t,r,l),remediate:makeRemediateRpcFun(e,t,r,l),getAnalyzerInfo:makeGetAnalyzerInfoRpcFun(e,t,r,i,s),getPluginInfo:getPluginInfoRpc,configure:configure,configureStack:configureStack});c.bindAsync("127.0.0.1:0",u.ServerCredentials.createInsecure(),((e,t)=>{if(e){console.error(e);n.exit(1)}console.log(t.toString())}))}t.serve=serve;function configureStack(e,t){try{const r=e.request.getTagsMap();const i=new Map;r.forEach(((e,t)=>i.set(t,e)));b=freezeMap(i);t(null,new a.AnalyzerStackConfigureResponse)}catch(e){t(g.asGrpcError(e))}}function freezeMap(e){return Object.freeze({entries:e.entries.bind(e),forEach:e.forEach.bind(e),get:e.get.bind(e),has:e.has.bind(e),keys:e.keys.bind(e),size:e.size,values:e.values.bind(e),[Symbol.iterator]:e[Symbol.iterator].bind(e)})}function makeGetAnalyzerInfoRpcFun(e,t,r,s,n){return function(o,u){return i(this,void 0,void 0,(function*(){try{u(undefined,g.makeAnalyzerInfo(e,t,r,s,n))}catch(e){u(g.asGrpcError(e),undefined)}}))}}function getPluginInfoRpc(e,t){return i(this,void 0,void 0,(function*(){try{const e=new l.PluginInfo;e.setVersion(m.version);t(undefined,e)}catch(e){t(g.asGrpcError(e),undefined)}}))}function configure(e,t){var r;return i(this,void 0,void 0,(function*(){const i=e.request;try{const e={};for(const[t,r]of i.getPolicyconfigMap().entries()){const i=r.getProperties().toJavaScript();i.enforcementLevel=g.convertEnforcementLevel(r.getEnforcementlevel());e[t]=i}v=e;const s=(r=p.AnalyzerService.configure.responseType)!==null&&r!==void 0?r:o.Empty;t(undefined,new s)}catch(e){t(g.asGrpcError(e),undefined)}}))}function makeAnalyzeRpcFun(e,t,r,n){return function(o,u){var a;return i(this,void 0,void 0,(function*(){const i=o.request;const p=i.getType();const l=[];let m=undefined;try{for(const o of n){let n=((a=v[o.name])===null||a===void 0?void 0:a.enforcementLevel)||o.enforcementLevel||r;if(n==="disabled"||!d.isResourcePolicy(o)){continue}if(!o.validateResource){const e="Policy does not implement validateResource";m=pushNotApplicable(m,o.name,e);continue}if(n==="remediate"){n="mandatory"}if(!Array.isArray(o.validateResource)){const e=d.getPulumiType(o.validateResource);if(e&&p!==e){const t=`Policy only applies to resources of type '${e}'`;m=pushNotApplicable(m,o.name,t);continue}}const u=makeReportViolationFun(o.name,e,t,o.description,n,l,o.severity);const R=Array.isArray(o.validateResource)?o.validateResource:[o.validateResource];for(const r of R){try{const e=c.deserializeProperties(i.getProperties(),false);const t=f.unknownCheckingProxy(e);const s={type:p,props:t,urn:i.getUrn(),name:i.getName(),opts:getResourceOptions(i),stackTags:b,isType:function(e){return isTypeOf(p,e)},asType:function(e){return isTypeOf(p,e)?t:undefined},getConfig:makeGetConfigFun(o.name),notApplicable:throwNotApplicable};const n=getProviderResource(i);if(n){s.provider=n}yield Promise.resolve(r(s,u))}catch(r){const i=`'${e}@v${t}'`;const n=`policy '${o.name}' from policy pack ${i}`;if(r instanceof f.UnknownValueError){const{validateResource:i,name:u}=o,a=s(o,["validateResource","name"]);l.push(Object.assign(Object.assign({policyName:u,policyPackName:e,policyPackVersion:t,message:`can't run ${n} during preview: ${r.message}`},a),{enforcementLevel:"advisory"}))}else if(r instanceof NotApplicableError){m=pushNotApplicable(m,o.name,r.reason)}else{throw g.asGrpcError(r,`Error validating resource with ${n}`)}}}}}catch(e){u(e,undefined);return}u(undefined,g.makeAnalyzeResponse(l,m))}))}}t.makeAnalyzeRpcFun=makeAnalyzeRpcFun;function makeAnalyzeStackRpcFun(e,t,r,n){return function(o,u){var a;return i(this,void 0,void 0,(function*(){const i=o.request;const p=i.getResourcesList();const l=[];let m=undefined;try{for(const i of n){let n=((a=v[i.name])===null||a===void 0?void 0:a.enforcementLevel)||i.enforcementLevel||r;if(n==="disabled"||!d.isStackPolicy(i)){continue}if(n==="remediate"){n="mandatory"}const o=d.getPulumiType(i.validateStack);if(o){const e=p.some((e=>e.getType()===o));if(!e){const e=`Policy only applies to resources of type '${o}'`;m=pushNotApplicable(m,i.name,e);continue}}const u=makeReportViolationFun(i.name,e,t,i.description,n,l,i.severity);try{const e=[];for(const t of p){const r=t.getType();const i=c.deserializeProperties(t.getProperties(),false);const s=f.unknownCheckingProxy(i);const n={type:r,props:s,urn:t.getUrn(),name:t.getName(),opts:getResourceOptions(t),dependencies:[],propertyDependencies:{},isType:function(e){return isTypeOf(r,e)},asType:function(e){return isTypeOf(r,e)?s:undefined}};const o=getProviderResource(t);if(o){n.provider=o}e.push({resource:n,parent:t.getParent(),dependencies:t.getDependenciesList(),propertyDependencies:getPropertyDependencies(t)})}const t=new Map;for(const r of e){t.set(r.resource.urn,r.resource)}for(const r of e){if(r.parent){const e=t.get(r.parent);if(e){r.resource.parent=e}}r.resource.dependencies=r.dependencies.map((e=>t.get(e))).filter((e=>e));for(const e of Object.keys(r.propertyDependencies)){const i=r.propertyDependencies[e];r.resource.propertyDependencies[e]=i.map((e=>t.get(e))).filter((e=>e))}}const r={resources:e.map((e=>e.resource)),getConfig:makeGetConfigFun(i.name),stackTags:b,notApplicable:throwNotApplicable};yield Promise.resolve(i.validateStack(r,u))}catch(r){const n=`'${e}@v${t}'`;const o=`policy '${i.name}' from policy pack ${n}`;if(r instanceof f.UnknownValueError){const{validateStack:n,name:u}=i,a=s(i,["validateStack","name"]);l.push(Object.assign(Object.assign({policyName:u,policyPackName:e,policyPackVersion:t,message:`can't run ${o} during preview: ${r.message}`},a),{enforcementLevel:"advisory"}))}else if(r instanceof NotApplicableError){m=pushNotApplicable(m,i.name,r.reason)}else{throw g.asGrpcError(r,`Error validating resource with ${o}`)}}}}catch(e){u(e,undefined);return}u(undefined,g.makeAnalyzeResponse(l,m))}))}}t.makeAnalyzeStackRpcFun=makeAnalyzeStackRpcFun;function makeGetConfigFun(e){return function(){const t=v[e];if(!t){return{}}const{enforcementLevel:r}=t,i=s(t,["enforcementLevel"]);return i}}function getResourceOptions(e){const t=e.getOptions();if(!t){throw new Error("A more recent version of the Pulumi CLI is required. "+"To upgrade, see https://www.pulumi.com/docs/get-started/install/")}const r={protect:t.getProtect(),ignoreChanges:t.getIgnorechangesList(),aliases:t.getAliasesList(),customTimeouts:getCustomTimeouts(t),additionalSecretOutputs:t.getAdditionalsecretoutputsList()};if(t.getDeletebeforereplacedefined()){r.deleteBeforeReplace=t.getDeletebeforereplace()}if(t.getParent()){r.parent=t.getParent()}return r}function getCustomTimeouts(e){var t,r,i;const s=e.getCustomtimeouts();return{createSeconds:(t=s===null||s===void 0?void 0:s.getCreate())!==null&&t!==void 0?t:0,updateSeconds:(r=s===null||s===void 0?void 0:s.getUpdate())!==null&&r!==void 0?r:0,deleteSeconds:(i=s===null||s===void 0?void 0:s.getDelete())!==null&&i!==void 0?i:0}}function getProviderResource(e){const t=e.getProvider();if(!t){return undefined}const r=c.deserializeProperties(t.getProperties(),false);const i=f.unknownCheckingProxy(r);return{type:t.getType(),props:i,urn:t.getUrn(),name:t.getName()}}function getPropertyDependencies(e){const t={};const r=e.getPropertydependenciesMap();if(r){for(const[e,i]of r.entries()){const r=i.getUrnsList();t[e]=r}}return t}function isTypeOf(e,t){const r=d.getPulumiType(t);if(r){return e===r}const i=t.isInstance;return i&&typeof i==="function"&&i({__pulumiType:e})===true}function makeRemediateRpcFun(e,t,r,s){return function(n,o){var u;return i(this,void 0,void 0,(function*(){const i=n.request;const a=i.getUrn();const p=i.getName();const l=i.getType();const m=getResourceOptions(i);let R=f.unknownCheckingProxy(c.deserializeProperties(i.getProperties(),true));const y=[];let h=undefined;try{for(const n of s){const s=((u=v[n.name])===null||u===void 0?void 0:u.enforcementLevel)||n.enforcementLevel||r;if(s!=="remediate"||!d.isResourcePolicy(n)){continue}if(!n.remediateResource){const e="Policy does not implement remediateResource";h=pushNotApplicable(h,n.name,e);continue}const o=d.getPulumiType(n.remediateResource);if(o&&l!==o){const e=`Policy only applies to resources of type '${o}'`;h=pushNotApplicable(h,n.name,e);continue}const M={urn:a,name:p,type:l,opts:m,props:R,stackTags:b,getConfig:makeGetConfigFun(n.name),isType:function(e){return isTypeOf(l,e)},asType:function(e){return isTypeOf(l,e)?R:undefined},notApplicable:throwNotApplicable};const k=getProviderResource(i);if(k){M.provider=k}let S=undefined;let P=undefined;try{S=yield Promise.resolve(n.remediateResource(M));if(S){R=S}}catch(r){const i=`'${e}@v${t}'`;const s=`remediation '${n.name}' from policy pack ${i}`;if(r instanceof f.UnknownValueError){P=`can't run ${s} during preview: ${r.message}`}else if(r instanceof NotApplicableError){h=pushNotApplicable(h,n.name,r.reason)}else{throw g.asGrpcError(r,`Error remediating resource with ${s}`)}}if(S||P){if(S){S=yield c.serializeProperties(S)}y.push({policyName:n.name,policyPackName:e,policyPackVersion:t,description:n.description,properties:S,diagnostic:P})}}}catch(e){o(e,undefined);return}o(undefined,g.makeRemediateResponse(y,h))}))}}t.makeRemediateRpcFun=makeRemediateRpcFun;class NotApplicableError extends Error{constructor(e){super(e!==null&&e!==void 0?e:"Policy does not apply");this.reason=e;this.reason=e}}function throwNotApplicable(e){throw new NotApplicableError(e)}function pushNotApplicable(e,t,r){if(!e){e=[]}const i=new a.PolicyNotApplicable;i.setPolicyName(t);if(r){i.setReason(r)}e.push(i);return e}function makeReportViolationFun(e,t,r,i,s,n,o){return(u,a)=>{if(typeof u==="object"){const a=u;n.push({policyName:a.name||e,policyPackName:t,policyPackVersion:r,message:a.message||a.description||i,urn:a.urn,description:a.description||i,enforcementLevel:a.enforcementLevel||s,severity:a.severity||o})}else{let p=i;if(u){p+=`\n${u}`}n.push({policyName:e,policyPackName:t,policyPackVersion:r,message:p,urn:a,description:i,enforcementLevel:s,severity:o})}}}},2745:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:true});t.version=void 0;t.version="1.20.0"},4352:function(e,t,r){"use strict";var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});const s=i(r(7812));class Archive{constructor(){this.__pulumiArchive=true}static isInstance(e){return s.isInstance(e,"__pulumiArchive")}}t.Archive=Archive;class AssetArchive extends Archive{constructor(e){super();this.assets=Promise.resolve(e)}}t.AssetArchive=AssetArchive;class FileArchive extends Archive{constructor(e){super();this.path=Promise.resolve(e)}}t.FileArchive=FileArchive;class RemoteArchive extends Archive{constructor(e){super();this.uri=Promise.resolve(e)}}t.RemoteArchive=RemoteArchive},7574:function(e,t,r){"use strict";var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});const s=i(r(7812));class Asset{constructor(){this.__pulumiAsset=true}static isInstance(e){return s.isInstance(e,"__pulumiAsset")}}t.Asset=Asset;class FileAsset extends Asset{constructor(e){super();this.path=Promise.resolve(e)}}t.FileAsset=FileAsset;class StringAsset extends Asset{constructor(e){super();this.text=Promise.resolve(e)}}t.StringAsset=StringAsset;class RemoteAsset extends Asset{constructor(e){super();this.uri=Promise.resolve(e)}}t.RemoteAsset=RemoteAsset},4058:(e,t,r)=>{"use strict";function __export(e){for(var r in e)if(!t.hasOwnProperty(r))t[r]=e[r]}Object.defineProperty(t,"__esModule",{value:true});__export(r(4352));__export(r(7574))},1118:function(e,t,r){"use strict";var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});const s=i(r(386));const n=i(r(7812));class RunError extends Error{constructor(){super(...arguments);this.__pulumiRunError=true}static isInstance(e){return n.isInstance(e,"__pulumiRunError")}}t.RunError=RunError;class ResourceError extends Error{constructor(e,t,r){super(e);this.resource=t;this.hideStack=r;this.__pulumResourceError=true}static isInstance(e){return n.isInstance(e,"__pulumResourceError")}}t.ResourceError=ResourceError;function isGrpcError(e){const t=e.code;return t===s.status.UNAVAILABLE||t===s.status.CANCELLED}t.isGrpcError=isGrpcError;class InputPropertyError extends Error{constructor(e){super(e.reason);this.__pulumiInputPropertyError=true;this.propertyPath=e.propertyPath;this.reason=e.reason}static isInstance(e){return n.isInstance(e,"__pulumiInputPropertyError")}}t.InputPropertyError=InputPropertyError;class InputPropertiesError extends Error{constructor(e){super(e.message);this.__pulumiInputPropertiesError=true;this.message=e.message;this.errors=e.errors}static isInstance(e){return n.isInstance(e,"__pulumiInputPropertiesError")}}t.InputPropertiesError=InputPropertiesError},9128:function(e,t,r){"use strict";var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});const s=i(r(3509));const n=r(4213);const o=r(9623);let u=Promise.resolve();const a={[s.LogSeverity.DEBUG]:"debug",[s.LogSeverity.INFO]:"info",[s.LogSeverity.WARNING]:"warn",[s.LogSeverity.ERROR]:"error"};function hasErrors(){return o.getStore().logErrorCount>0}t.hasErrors=hasErrors;function debug(e,t,r,i){const o=n.getEngine();if(o){return log(o,s.LogSeverity.DEBUG,e,t,r,i)}else{if(n.excessiveDebugOutput){console.log(`debug: [runtime] ${e}`)}return Promise.resolve()}}t.debug=debug;function info(e,t,r,i){const o=n.getEngine();if(o){return log(o,s.LogSeverity.INFO,e,t,r,i)}else{console.log(`info: [runtime] ${e}`);return Promise.resolve()}}t.info=info;function warn(e,t,r,i){const o=n.getEngine();if(o){return log(o,s.LogSeverity.WARNING,e,t,r,i)}else{console.warn(`warning: [runtime] ${e}`);return Promise.resolve()}}t.warn=warn;function error(e,t,r,i){o.getStore().logErrorCount++;const u=n.getEngine();if(u){return log(u,s.LogSeverity.ERROR,e,t,r,i)}else{console.error(`error: [runtime] ${e}`);return Promise.resolve()}}t.error=error;function log(e,t,r,i,o,p){const l=n.rpcKeepAlive();const c=i?i.urn.promise():Promise.resolve("");u=Promise.all([u,c]).then((([i,n])=>new Promise(((i,u)=>{try{const u=new s.LogRequest;u.setSeverity(t);u.setMessage(r);u.setUrn(n);u.setStreamid(o===undefined?0:o);u.setEphemeral(p===true);e.log(u,(()=>{i();l()}))}catch(e){u(e)}}))));return u.catch((e=>{if(t!==s.LogSeverity.DEBUG){console.error(`failed to deliver log message. \nerror: ${e} \noriginal message: ${r}\n message severity: ${a[t]}`)}l()}))}},3016:function(e,t,r){"use strict";var i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)if(Object.hasOwnProperty.call(e,r))t[r]=e[r];t["default"]=e;return t};Object.defineProperty(t,"__esModule",{value:true});const s=r(6005);const n=i(r(7812));class OutputToStringError extends Error{constructor(){super(`Calling [toString] on an [Output<T>] is not supported.\n\nTo get the value of an Output<T> as an Output<string> consider either:\n1: o.apply(v => \`prefix\${v}suffix\`)\n2: pulumi.interpolate \`prefix\${v}suffix\`\n\nSee https://www.pulumi.com/docs/concepts/inputs-outputs for more details.\n\nOr use ESLint with https://github.com/pulumi/eslint-plugin-pulumi to warn or\nerror lint on using Output<T> in template literals.`);this.__pulumiOutputToStringError=true}static isInstance(e){return n.isInstance(e,"__pulumiOutputToStringError")}}t.OutputToStringError=OutputToStringError;class OutputImpl{constructor(e,r,i,s,o){this.__pulumiOutput=true;const u=copyResources(e);o=o||Promise.resolve([]);const a=o.then((e=>n.union(copyResources(e),u)));i=Promise.all([i,r]).then((([e,t])=>e&&!containsUnknowns(t)));const p=Promise.all([a,r,i,s]).then((([e,t,r,i])=>liftInnerOutput(e,t,r,i)));this.resources=()=>u;this.allResources=()=>p.then((e=>e.allResources));this.isKnown=p.then((e=>e.isKnown));this.isSecret=p.then((e=>e.isSecret));this.promise=e=>OutputImpl.getPromisedValue(p.then((e=>e.value)),e);this.toString=()=>{const e=new OutputToStringError;if(n.errorOutputString){throw e}let t=e.message;t+=`\nThis function may throw in a future version of @pulumi/pulumi.`;return t};this.toJSON=()=>{let e=`Calling [toJSON] on an [Output<T>] is not supported.\n\nTo get the value of an Output as a JSON value or JSON string consider either:\n 1: o.apply(v => v.toJSON())\n 2: o.apply(v => JSON.stringify(v))\n\nSee https://www.pulumi.com/docs/concepts/inputs-outputs for more details.`;if(n.errorOutputString){throw new Error(e)}e+=`\nThis function may throw in a future version of @pulumi/pulumi.`;return e};return new Proxy(this,{get:(e,r)=>{for(let t=e;t;t=Object.getPrototypeOf(t)){if(t.hasOwnProperty(r)){return t[r]}}if(r==="then"){return undefined}if(typeof r==="string"){if(r.startsWith("__")||r==="doNotCapture"||r==="deploymentOnlyModule"){return undefined}}if(typeof r==="symbol"){return undefined}return e.apply((e=>{if(e===undefined||e===null){return undefined}else if(isUnknown(e)){return t.unknown}return e[r]}),true)}})}static create(e){return output(e)}static isInstance(e){return n.isInstance(e,"__pulumiOutput")}static async getPromisedValue(e,t){const r=await e;if(!t&&containsUnknowns(r)){return undefined}return r}get(){throw new Error(`Cannot call '.get' during update or preview.\nTo manipulate the value of this Output, use '.apply' instead.`)}apply(e,t){const r=Promise.all([this.allResources(),this.promise(true),this.isKnown,this.isSecret]).then((([r,i,s,n])=>applyHelperAsync(r,i,s,n,e,!!t)));const i=new OutputImpl(this.resources(),r.then((e=>e.value)),r.then((e=>e.isKnown)),r.then((e=>e.isSecret)),r.then((e=>e.allResources)));return i}}function deferredOutput(){let e;let r;let i;let s;let n;let o;let u;let a;let p=false;const resolve=t=>{if(p){throw new Error("Deferred Output has already been resolved")}p=true;t.promise().then(e,r);t.isKnown.then(i,s);t.isSecret.then(n,o);if(t.allResources){t.allResources().then(u,a)}};const l=new t.Output(new Set,new Promise(((t,i)=>{e=t;r=i})),new Promise(((e,t)=>{i=e;s=t})),new Promise(((e,t)=>{n=e;o=t})),new Promise(((e,t)=>{u=e;a=t})));return[l,resolve]}t.deferredOutput=deferredOutput;function getAllResources(e){return e.allResources instanceof Function?e.allResources():Promise.resolve(e.resources())}t.getAllResources=getAllResources;function copyResources(e){const t=Array.isArray(e)?new Set(e):e instanceof Set?new Set(e):new Set([e]);return t}async function liftInnerOutput(e,r,i,s){if(!t.Output.isInstance(r)){return{allResources:e,value:r,isKnown:i,isSecret:s}}const o=await r.promise(true);const u=await r.isKnown;const a=await(r.isSecret||Promise.resolve(false));const p=await getAllResources(r);const l=n.union(e,p);return{allResources:l,value:o,isKnown:u,isSecret:s||a}}async function applyHelperAsync(e,r,i,s,n,o){const u=i||o;if(!u){return{allResources:e,value:undefined,isKnown:false,isSecret:s}}if(!i&&o&&!containsUnknowns(r)){r=t.unknown}const a=await n(r);return liftInnerOutput(e,a,true,s)}function isSecretOutput(e){return isSecret(e)}t.isSecretOutput=isSecretOutput;function outputRec(e,r,i){if(e===null||typeof e!=="object"){return e}if(s.Resource.isInstance(e)){return e}if(isUnknown(e)){return e}if(e instanceof Promise){return createSimpleOutput(e.then((e=>outputRec(e,r,i))))}if(t.Output.isInstance(e)){const t=getAllResources(e);const s=new OutputImpl(e.resources(),e.promise(true),e.isKnown,e.isSecret,t);return s.apply((e=>outputRec(e,r,i)),true)}r=new Set(r);i=i??new Error("Cannot create an Output from a circular structure");if(r.has(e)){throw i}r.add(e);if(e instanceof Array){const s=[];let n=false;for(const o of e){const e=outputRec(o,r,i);s.push(e);if(t.Output.isInstance(e)){n=true}}if(!n){return s}const o=Promise.all(s.map((e=>getAwaitableValue(e))));const[u,a,p,l]=getResourcesAndDetails(s);return new t.Output(u,o,a,p,l)}const n=[];let o=false;for(const s of Object.keys(e)){const u=outputRec(e[s],r,i);n.push({key:s,value:u});if(t.Output.isInstance(u)){o=true}}if(!o){return n.reduce(((e,t)=>{e[t.key]=t.value;return e}),{})}const u=getPromisedObject(n);const[a,p,l,c]=getResourcesAndDetails(n.map((e=>e.value)));return new t.Output(a,u,p,l,c)}function output(e){const r=outputRec(e);return t.Output.isInstance(r)?r:createSimpleOutput(r)}t.output=output;function secret(e){const r=output(e);return new t.Output(r.resources(),r.promise(true),r.isKnown,Promise.resolve(true),r.allResources())}t.secret=secret;function unsecret(e){return new t.Output(e.resources(),e.promise(true),e.isKnown,Promise.resolve(false),e.allResources())}t.unsecret=unsecret;function isSecret(e){return t.Output.isInstance(e.isSecret)?Promise.resolve(false):e.isSecret}t.isSecret=isSecret;function createSimpleOutput(e){return new t.Output(new Set,e instanceof Promise?e:Promise.resolve(e),Promise.resolve(true),Promise.resolve(false),Promise.resolve(new Set))}function all(e){return output(e)}t.all=all;function getAwaitableValue(e){if(t.Output.isInstance(e)){return e.promise(true)}else{return e}}async function getPromisedObject(e){const t={};for(const r of e){t[r.key]=await getAwaitableValue(r.value)}return t}function getResourcesAndDetails(e){const r=new Set;const i=[];for(const s of e){if(t.Output.isInstance(s)){i.push(s);for(const e of s.resources()){r.add(e)}}}const s=Promise.all(i.map((e=>e.allResources()))).then((e=>{const t=new Set;for(const r of e){for(const e of r){t.add(e)}}return t}));const n=Promise.all(i.map((e=>e.isKnown))).then((e=>e.every((e=>e))));const o=Promise.all(i.map((e=>isSecretOutput(e)))).then((e=>e.some((e=>e))));return[r,n,o,s]}class Unknown{constructor(){this.__pulumiUnknown=true}static isInstance(e){return n.isInstance(e,"__pulumiUnknown")}}t.unknown=new Unknown;function isUnknown(e){return Unknown.isInstance(e)}t.isUnknown=isUnknown;function containsUnknowns(e){return impl(e,new Set);function impl(e,t){if(e===null||typeof e!=="object"){return false}else if(isUnknown(e)){return true}else if(t.has(e)){return false}t.add(e);if(e instanceof Array){return e.some((e=>impl(e,t)))}else{return Object.keys(e).some((r=>impl(e[r],t)))}}}t.containsUnknowns=containsUnknowns;t.Output=OutputImpl;function concat(...e){return output(e).apply((e=>e.join("")))}t.concat=concat;function interpolate(e,...t){return output(t).apply((t=>{let r="";for(let i=0;i<t.length;i++){r+=e[i];r+=t[i]}r+=e[e.length-1];return r}))}t.interpolate=interpolate;function jsonStringify(e,t,r){return output(e).apply((e=>JSON.stringify(e,t,r)))}t.jsonStringify=jsonStringify;function jsonParse(e,t){return output(e).apply((e=>JSON.parse(e,t)))}t.jsonParse=jsonParse},7809:(e,t,r)=>{var i=r(3716);var s=i;var n={pulumirpc:{codegen:{},testing:{}}},o=n;s.exportSymbol("proto.pulumirpc.Alias",null,o);s.exportSymbol("proto.pulumirpc.Alias.AliasCase",null,o);s.exportSymbol("proto.pulumirpc.Alias.Spec",null,o);s.exportSymbol("proto.pulumirpc.Alias.Spec.ParentCase",null,o);n.pulumirpc.Alias=function(e){i.Message.initialize(this,e,0,-1,null,n.pulumirpc.Alias.oneofGroups_)};s.inherits(n.pulumirpc.Alias,i.Message);if(s.DEBUG&&!COMPILED){n.pulumirpc.Alias.displayName="proto.pulumirpc.Alias"}n.pulumirpc.Alias.Spec=function(e){i.Message.initialize(this,e,0,-1,null,n.pulumirpc.Alias.Spec.oneofGroups_)};s.inherits(n.pulumirpc.Alias.Spec,i.Message);if(s.DEBUG&&!COMPILED){n.pulumirpc.Alias.Spec.displayName="proto.pulumirpc.Alias.Spec"}n.pulumirpc.Alias.oneofGroups_=[[1,2]];n.pulumirpc.Alias.AliasCase={ALIAS_NOT_SET:0,URN:1,SPEC:2};n.pulumirpc.Alias.prototype.getAliasCase=function(){return i.Message.computeOneofCase(this,n.pulumirpc.Alias.oneofGroups_[0])};if(i.Message.GENERATE_TO_OBJECT){n.pulumirpc.Alias.prototype.toObject=function(e){return n.pulumirpc.Alias.toObject(e,this)};n.pulumirpc.Alias.toObject=function(e,t){var r,s={urn:(r=i.Message.getField(t,1))==null?undefined:r,spec:(r=t.getSpec())&&n.pulumirpc.Alias.Spec.toObject(e,r)};if(e){s.$jspbMessageInstance=t}return s}}n.pulumirpc.Alias.deserializeBinary=function(e){var t=new i.BinaryReader(e);var r=new n.pulumirpc.Alias;return n.pulumirpc.Alias.deserializeBinaryFromReader(r,t)};n.pulumirpc.Alias.deserializeBinaryFromReader=function(e,t){while(t.nextField()){if(t.isEndGroup()){break}var r=t.getFieldNumber();switch(r){case 1:var i=t.readString();e.setUrn(i);break;case 2:var i=new n.pulumirpc.Alias.Spec;t.readMessage(i,n.pulumirpc.Alias.Spec.deserializeBinaryFromReader);e.setSpec(i);break;default:t.skipField();break}}return e};n.pulumirpc.Alias.prototype.serializeBinary=function(){var e=new i.BinaryWriter;n.pulumirpc.Alias.serializeBinaryToWriter(this,e);return e.getResultBuffer()};n.pulumirpc.Alias.serializeBinaryToWriter=function(e,t){var r=undefined;r=i.Message.getField(e,1);if(r!=null){t.writeString(1,r)}r=e.getSpec();if(r!=null){t.writeMessage(2,r,n.pulumirpc.Alias.Spec.serializeBinaryToWriter)}};n.pulumirpc.Alias.Spec.oneofGroups_=[[5,6]];n.pulumirpc.Alias.Spec.ParentCase={PARENT_NOT_SET:0,PARENTURN:5,NOPARENT:6};n.pulumirpc.Alias.Spec.prototype.getParentCase=function(){return i.Message.computeOneofCase(this,n.pulumirpc.Alias.Spec.oneofGroups_[0])};if(i.Message.GENERATE_TO_OBJECT){n.pulumirpc.Alias.Spec.prototype.toObject=function(e){return n.pulumirpc.Alias.Spec.toObject(e,this)};n.pulumirpc.Alias.Spec.toObject=function(e,t){var r,s={name:i.Message.getFieldWithDefault(t,1,""),type:i.Message.getFieldWithDefault(t,2,""),stack:i.Message.getFieldWithDefault(t,3,""),project:i.Message.getFieldWithDefault(t,4,""),parenturn:(r=i.Message.getField(t,5))==null?undefined:r,noparent:(r=i.Message.getBooleanField(t,6))==null?undefined:r};if(e){s.$jspbMessageInstance=t}return s}}n.pulumirpc.Alias.Spec.deserializeBinary=function(e){var t=new i.BinaryReader(e);var r=new n.pulumirpc.Alias.Spec;return n.pulumirpc.Alias.Spec.deserializeBinaryFromReader(r,t)};n.pulumirpc.Alias.Spec.deserializeBinaryFromReader=function(e,t){while(t.nextField()){if(t.isEndGroup()){break}var r=t.getFieldNumber();switch(r){case 1:var i=t.readString();e.setName(i);break;case 2:var i=t.readString();e.setType(i);break;case 3:var i=t.readString();e.setStack(i);break;case 4:var i=t.readString();e.setProject(i);break;case 5:var i=t.readString();e.setParenturn(i);break;case 6:var i=t.readBool();e.setNoparent(i);break;default:t.skipField();break}}return e};n.pulumirpc.Alias.Spec.prototype.serializeBinary=function(){var e=new i.BinaryWriter;n.pulumirpc.Alias.Spec.serializeBinaryToWriter(this,e);return e.getResultBuffer()};n.pulumirpc.Alias.Spec.serializeBinaryToWriter=function(e,t){var r=undefined;r=e.getName();if(r.length>0){t.writeString(1,r)}r=e.getType();if(r.length>0){t.writeString(2,r)}r=e.getStack();if(r.length>0){t.writeString(3,r)}r=e.getProject();if(r.length>0){t.writeString(4,r)}r=i.Message.getField(e,5);if(r!=null){t.writeString(5,r)}r=i.Message.getField(e,6);if(r!=null){t.writeBool(6,r)}};n.pulumirpc.Alias.Spec.prototype.getName=function(){return i.Message.getFieldWithDefault(this,1,"")};n.pulumirpc.Alias.Spec.prototype.setName=function(e){return i.Message.setProto3StringField(this,1,e)};n.pulumirpc.Alias.Spec.prototype.getType=function(){return i.Message.getFieldWithDefault(this,2,"")};n.pulumirpc.Alias.Spec.prototype.setType=function(e){return i.Message.setProto3StringField(this,2,e)};n.pulumirpc.Alias.Spec.prototype.getStack=function(){return i.Message.getFieldWithDefault(this,3,"")};n.pulumirpc.Alias.Spec.prototype.setStack=function(e){return i.Message.setProto3StringField(this,3,e)};n.pulumirpc.Alias.Spec.prototype.getProject=function(){return i.Message.getFieldWithDefault(this,4,"")};n.pulumirpc.Alias.Spec.prototype.setProject=function(e){return i.Message.setProto3StringField(this,4,e)};n.pulumirpc.Alias.Spec.prototype.getParenturn=function(){return i.Message.getFieldWithDefault(this,5,"")};n.pulumirpc.Alias.Spec.prototype.setParenturn=function(e){return i.Message.setOneofField(this,5,n.pulumirpc.Alias.Spec.oneofGroups_[0],e)};n.pulumirpc.Alias.Spec.prototype.clearParenturn=function(){return i.Message.setOneofField(this,5,n.pulumirpc.Alias.Spec.oneofGroups_[0],undefined)};n.pulumirpc.Alias.Spec.prototype.hasParenturn=function(){return i.Message.getField(this,5)!=null};n.pulumirpc.Alias.Spec.prototype.getNoparent=function(){return i.Message.getBooleanFieldWithDefault(this,6,false)};n.pulumirpc.Alias.Spec.prototype.setNoparent=function(e){return i.Message.setOneofField(this,6,n.pulumirpc.Alias.Spec.oneofGroups_[0],e)};n.pulumirpc.Alias.Spec.prototype.clearNoparent=function(){return i.Message.setOneofField(this,6,n.pulumirpc.Alias.Spec.oneofGroups_[0],undefined)};n.pulumirpc.Alias.Spec.prototype.hasNoparent=function(){return i.Message.getField(this,6)!=null};n.pulumirpc.Alias.prototype.getUrn=function(){return i.Message.getFieldWithDefault(this,1,"")};n.pulumirpc.Alias.prototype.setUrn=function(e){return i.Message.setOneofField(this,1,n.pulumirpc.Alias.oneofGroups_[0],e)};n.pulumirpc.Alias.prototype.clearUrn=function(){return i.Message.setOneofField(this,1,n.pulumirpc.Alias.oneofGroups_[0],undefined)};n.pulumirpc.Alias.prototype.hasUrn=function(){return i.Message.getField(this,1)!=null};n.pulumirpc.Alias.prototype.getSpec=function(){return i.Message.getWrapperField(this,n.pulumirpc.Alias.Spec,2)};n.pulumirpc.Alias.prototype.setSpec=function(e){return i.Message.setOneofWrapperField(this,2,n.pulumirpc.Alias.oneofGroups_[0],e)};n.pulumirpc.Alias.prototype.clearSpec=function(){return this.setSpec(undefined)};n.pulumirpc.Alias.prototype.hasSpec=function(){return i.Message.getField(this,2)!=null};s.object.extend(t,n.pulumirpc)},1828:(e,t,r)=>{"use strict";var i=r(386);var s=r(4797);var n=r(2838);var o=r(2577);var u=r(1065);function serialize_google_protobuf_Empty(e){if(!(e instanceof o.Empty)){throw new Error("Expected argument of type google.protobuf.Empty")}return Buffer.from(e.serializeBinary())}function deserialize_google_protobuf_Empty(e){return o.Empty.deserializeBinary(new Uint8Array(e))}function serialize_pulumirpc_AnalyzeRequest(e){if(!(e instanceof s.AnalyzeRequest)){throw new Error("Expected argument of type pulumirpc.AnalyzeRequest")}return Buffer.from(e.serializeBinary())}function deserialize_pulumirpc_AnalyzeRequest(e){return s.AnalyzeRequest.deserializeBinary(new Uint8Array(e))}function serialize_pulumirpc_AnalyzeResponse(e){if(!(e instanceof s.AnalyzeResponse)){throw new Error("Expected argument of type pulumirpc.AnalyzeResponse")}return Buffer.from(e.serializeBinary())}function deserialize_pulumirpc_AnalyzeResponse(e){return s.AnalyzeResponse.deserializeBinary(new Uint8Array(e))}function serialize_pulumirpc_AnalyzeStackRequest(e){if(!(e instanceof s.AnalyzeStackRequest)){throw new Error("Expected argument of type pulumirpc.AnalyzeStackRequest")}return Buffer.from(e.serializeBinary())}function deserialize_pulumirpc_AnalyzeStackRequest(e){return s.AnalyzeStackRequest.deserializeBinary(new Uint8Array(e))}function serialize_pulumirpc_AnalyzerHandshakeRequest(e){if(!(e instanceof s.AnalyzerHandshakeRequest)){throw new Error("Expected argument of type pulumirpc.AnalyzerHandshakeRequest")}return Buffer.from(e.serializeBinary())}function deserialize_pulumirpc_AnalyzerHandshakeRequest(e){return s.AnalyzerHandshakeRequest.deserializeBinary(new Uint8Array(e))}function serialize_pulumirpc_AnalyzerHandshakeResponse(e){if(!(e instanceof s.AnalyzerHandshakeResponse)){throw new Error("Expected argument of type pulumirpc.AnalyzerHandshakeResponse")}return Buffer.from(e.serializeBinary())}function deserialize_pulumirpc_AnalyzerHandshakeResponse(