@intentius/chant-lexicon-gcp 0.41.20 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/dist/composites/index.d.ts +2 -0
  2. package/dist/composites/index.d.ts.map +1 -1
  3. package/dist/composites/landing-zone.d.ts +67 -0
  4. package/dist/composites/landing-zone.d.ts.map +1 -0
  5. package/dist/deep-observe-hooks.d.ts +16 -3
  6. package/dist/deep-observe-hooks.d.ts.map +1 -1
  7. package/dist/deep-observe.d.ts +68 -139
  8. package/dist/deep-observe.d.ts.map +1 -1
  9. package/dist/describe-resources.d.ts +27 -3
  10. package/dist/describe-resources.d.ts.map +1 -1
  11. package/dist/governance.d.ts +101 -0
  12. package/dist/governance.d.ts.map +1 -0
  13. package/dist/index.d.ts +4 -2
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/integrity.json +5 -2
  16. package/dist/lint/audit-catalog.d.ts.map +1 -1
  17. package/dist/lint/post-synth/index.d.ts.map +1 -1
  18. package/dist/lint/post-synth/wgc501.d.ts +18 -0
  19. package/dist/lint/post-synth/wgc501.d.ts.map +1 -0
  20. package/dist/lint/post-synth/wgc502.d.ts +10 -0
  21. package/dist/lint/post-synth/wgc502.d.ts.map +1 -0
  22. package/dist/lint/post-synth/wgc503.d.ts +11 -0
  23. package/dist/lint/post-synth/wgc503.d.ts.map +1 -0
  24. package/dist/manifest.json +1 -1
  25. package/dist/okf/index.md +519 -0
  26. package/dist/okf/rules/WGC001.md +15 -0
  27. package/dist/okf/rules/WGC002.md +16 -0
  28. package/dist/okf/rules/WGC003.md +15 -0
  29. package/dist/okf/rules/WGC101.md +16 -0
  30. package/dist/okf/rules/WGC102.md +15 -0
  31. package/dist/okf/rules/WGC103.md +15 -0
  32. package/dist/okf/rules/WGC104.md +15 -0
  33. package/dist/okf/rules/WGC105.md +15 -0
  34. package/dist/okf/rules/WGC106.md +15 -0
  35. package/dist/okf/rules/WGC107.md +15 -0
  36. package/dist/okf/rules/WGC108.md +15 -0
  37. package/dist/okf/rules/WGC109.md +11 -0
  38. package/dist/okf/rules/WGC110.md +15 -0
  39. package/dist/okf/rules/WGC111.md +15 -0
  40. package/dist/okf/rules/WGC112.md +15 -0
  41. package/dist/okf/rules/WGC113.md +16 -0
  42. package/dist/okf/rules/WGC201.md +15 -0
  43. package/dist/okf/rules/WGC202.md +11 -0
  44. package/dist/okf/rules/WGC203.md +11 -0
  45. package/dist/okf/rules/WGC204.md +15 -0
  46. package/dist/okf/rules/WGC301.md +15 -0
  47. package/dist/okf/rules/WGC302.md +15 -0
  48. package/dist/okf/rules/WGC303.md +15 -0
  49. package/dist/okf/rules/WGC401.md +15 -0
  50. package/dist/okf/rules/WGC402.md +15 -0
  51. package/dist/okf/rules/WGC403.md +15 -0
  52. package/dist/okf/rules/WGC501.md +15 -0
  53. package/dist/okf/rules/WGC502.md +11 -0
  54. package/dist/okf/rules/WGC503.md +15 -0
  55. package/dist/okf/types/API.md +21 -0
  56. package/dist/okf/types/APIConfig.md +15 -0
  57. package/dist/okf/types/APIQuotaAdjusterSettings.md +15 -0
  58. package/dist/okf/types/APIQuotaPreference.md +15 -0
  59. package/dist/okf/types/AccessBoundaryPolicy.md +15 -0
  60. package/dist/okf/types/AccessLevel.md +15 -0
  61. package/dist/okf/types/AccessLevelCondition.md +15 -0
  62. package/dist/okf/types/AccessPolicy.md +15 -0
  63. package/dist/okf/types/AddonsConfig.md +15 -0
  64. package/dist/okf/types/AgentPool.md +15 -0
  65. package/dist/okf/types/AiplatformModel.md +15 -0
  66. package/dist/okf/types/AistreamsCluster.md +15 -0
  67. package/dist/okf/types/AlertPolicy.md +15 -0
  68. package/dist/okf/types/AlloydbBackup.md +15 -0
  69. package/dist/okf/types/AlloydbCluster.md +15 -0
  70. package/dist/okf/types/AlloydbInstance.md +15 -0
  71. package/dist/okf/types/AnalyticsAccount.md +15 -0
  72. package/dist/okf/types/AndroidApp.md +15 -0
  73. package/dist/okf/types/AnywhereCache.md +15 -0
  74. package/dist/okf/types/ApigatewayGateway.md +15 -0
  75. package/dist/okf/types/ApigeeEnvironment.md +15 -0
  76. package/dist/okf/types/ApigeeInstance.md +15 -0
  77. package/dist/okf/types/ApihubDeployment.md +15 -0
  78. package/dist/okf/types/ApikeysKey.md +15 -0
  79. package/dist/okf/types/AppConnection.md +15 -0
  80. package/dist/okf/types/AppConnector.md +15 -0
  81. package/dist/okf/types/AppGateway.md +15 -0
  82. package/dist/okf/types/AppProfile.md +15 -0
  83. package/dist/okf/types/Application.md +15 -0
  84. package/dist/okf/types/ArtifactRegistryRepository.md +15 -0
  85. package/dist/okf/types/Assignment.md +15 -0
  86. package/dist/okf/types/Attestor.md +15 -0
  87. package/dist/okf/types/AuthorizationPolicy.md +15 -0
  88. package/dist/okf/types/AuthorizedView.md +15 -0
  89. package/dist/okf/types/AutokeyConfig.md +15 -0
  90. package/dist/okf/types/Automation.md +15 -0
  91. package/dist/okf/types/Autoscaler.md +15 -0
  92. package/dist/okf/types/AutoscalingPolicy.md +15 -0
  93. package/dist/okf/types/BQJob.md +15 -0
  94. package/dist/okf/types/BackendBucket.md +15 -0
  95. package/dist/okf/types/BackendBucketSignedURLKey.md +15 -0
  96. package/dist/okf/types/BackendService.md +15 -0
  97. package/dist/okf/types/BackendServiceSignedURLKey.md +15 -0
  98. package/dist/okf/types/BackupPlanAssociation.md +15 -0
  99. package/dist/okf/types/BackupPolicy.md +15 -0
  100. package/dist/okf/types/BackupdrBackupPlan.md +15 -0
  101. package/dist/okf/types/BackupdrBackupVault.md +15 -0
  102. package/dist/okf/types/Batch.md +15 -0
  103. package/dist/okf/types/BatchJob.md +15 -0
  104. package/dist/okf/types/BatchTask.md +15 -0
  105. package/dist/okf/types/BigLakeCatalog.md +15 -0
  106. package/dist/okf/types/BigLakeDatabase.md +15 -0
  107. package/dist/okf/types/BigLakeTable.md +15 -0
  108. package/dist/okf/types/BigQueryDataPolicy.md +15 -0
  109. package/dist/okf/types/BigQueryDataset.md +15 -0
  110. package/dist/okf/types/BigQueryExport.md +15 -0
  111. package/dist/okf/types/BigQueryTable.md +15 -0
  112. package/dist/okf/types/BigqueryconnectionConnection.md +15 -0
  113. package/dist/okf/types/BigquerydatatransferConfig.md +15 -0
  114. package/dist/okf/types/BigqueryreservationReservation.md +15 -0
  115. package/dist/okf/types/BigtableInstance.md +15 -0
  116. package/dist/okf/types/BigtableTable.md +15 -0
  117. package/dist/okf/types/BillingAccount.md +15 -0
  118. package/dist/okf/types/BinaryauthorizationPolicy.md +15 -0
  119. package/dist/okf/types/Brand.md +15 -0
  120. package/dist/okf/types/BtBackup.md +15 -0
  121. package/dist/okf/types/BtCluster.md +15 -0
  122. package/dist/okf/types/Bucket.md +15 -0
  123. package/dist/okf/types/BucketAccessControl.md +15 -0
  124. package/dist/okf/types/Budget.md +15 -0
  125. package/dist/okf/types/CAPool.md +15 -0
  126. package/dist/okf/types/CapacityCommitment.md +15 -0
  127. package/dist/okf/types/CertificateAuthority.md +15 -0
  128. package/dist/okf/types/CertificateIssuanceConfig.md +15 -0
  129. package/dist/okf/types/CertificateMap.md +15 -0
  130. package/dist/okf/types/CertificateMapEntry.md +15 -0
  131. package/dist/okf/types/CertificateTemplate.md +15 -0
  132. package/dist/okf/types/CertificatemanagerCertificate.md +15 -0
  133. package/dist/okf/types/ClientConnectorService.md +15 -0
  134. package/dist/okf/types/ClientTLSPolicy.md +15 -0
  135. package/dist/okf/types/CloudBatchResourceAllowance.md +15 -0
  136. package/dist/okf/types/CloudFunction.md +15 -0
  137. package/dist/okf/types/CloudRunJob.md +15 -0
  138. package/dist/okf/types/CloudRunService.md +15 -0
  139. package/dist/okf/types/CloudbuildTrigger.md +15 -0
  140. package/dist/okf/types/ClouddmsPrivateConnection.md +15 -0
  141. package/dist/okf/types/CloudidentityGroup.md +15 -0
  142. package/dist/okf/types/CloudidentityMembership.md +15 -0
  143. package/dist/okf/types/CloudidsEndpoint.md +15 -0
  144. package/dist/okf/types/CloudschedulerJob.md +15 -0
  145. package/dist/okf/types/ComposerEnvironment.md +15 -0
  146. package/dist/okf/types/ComputeAddress.md +15 -0
  147. package/dist/okf/types/ComputeDisk.md +15 -0
  148. package/dist/okf/types/ComputeFirewallPolicy.md +15 -0
  149. package/dist/okf/types/ComputeHealthCheck.md +15 -0
  150. package/dist/okf/types/ComputeInstance.md +19 -0
  151. package/dist/okf/types/ComputeNetworkPeering.md +15 -0
  152. package/dist/okf/types/ComputeNodeGroup.md +15 -0
  153. package/dist/okf/types/ComputeReservation.md +15 -0
  154. package/dist/okf/types/ComputeRoute.md +15 -0
  155. package/dist/okf/types/ComputeSnapshot.md +15 -0
  156. package/dist/okf/types/ConfigcontrollerInstance.md +15 -0
  157. package/dist/okf/types/ConnectionProfile.md +15 -0
  158. package/dist/okf/types/ConnectivityTest.md +15 -0
  159. package/dist/okf/types/Connector.md +28 -0
  160. package/dist/okf/types/ConsentStore.md +15 -0
  161. package/dist/okf/types/ConsumerGroup.md +15 -0
  162. package/dist/okf/types/ConsumerQuotaOverride.md +15 -0
  163. package/dist/okf/types/Contact.md +15 -0
  164. package/dist/okf/types/ContainerattachedCluster.md +15 -0
  165. package/dist/okf/types/ConversionWorkspace.md +15 -0
  166. package/dist/okf/types/CryptoKeyVersion.md +15 -0
  167. package/dist/okf/types/CustomClass.md +15 -0
  168. package/dist/okf/types/CustomConstraint.md +15 -0
  169. package/dist/okf/types/CustomRole.md +15 -0
  170. package/dist/okf/types/CustomTargetType.md +15 -0
  171. package/dist/okf/types/DICOMStore.md +15 -0
  172. package/dist/okf/types/DNSAuthorization.md +15 -0
  173. package/dist/okf/types/DNSManagedZone.md +15 -0
  174. package/dist/okf/types/DNSRecordSet.md +15 -0
  175. package/dist/okf/types/Dashboard.md +15 -0
  176. package/dist/okf/types/DataExchange.md +15 -0
  177. package/dist/okf/types/DataLabelingJob.md +15 -0
  178. package/dist/okf/types/DataPolicy.md +15 -0
  179. package/dist/okf/types/DataStore.md +15 -0
  180. package/dist/okf/types/DataStoreTargetSite.md +15 -0
  181. package/dist/okf/types/Database.md +15 -0
  182. package/dist/okf/types/DatacatalogEntryGroup.md +15 -0
  183. package/dist/okf/types/DataflowJob.md +15 -0
  184. package/dist/okf/types/DataformRepository.md +15 -0
  185. package/dist/okf/types/DatafusionInstance.md +15 -0
  186. package/dist/okf/types/DataplexEntryGroup.md +15 -0
  187. package/dist/okf/types/DataplexTask.md +15 -0
  188. package/dist/okf/types/DataprocCluster.md +15 -0
  189. package/dist/okf/types/DataprocJob.md +15 -0
  190. package/dist/okf/types/DataprocNodeGroup.md +15 -0
  191. package/dist/okf/types/DataprocSession.md +15 -0
  192. package/dist/okf/types/DatasetAccess.md +15 -0
  193. package/dist/okf/types/DatastoreIndex.md +15 -0
  194. package/dist/okf/types/DatastreamPrivateConnection.md +15 -0
  195. package/dist/okf/types/DatastreamRoute.md +15 -0
  196. package/dist/okf/types/DefaultObjectAccessControl.md +15 -0
  197. package/dist/okf/types/DefaultSupportedIDPConfig.md +15 -0
  198. package/dist/okf/types/DeidentifyTemplate.md +15 -0
  199. package/dist/okf/types/DeliveryPipeline.md +15 -0
  200. package/dist/okf/types/DenyPolicy.md +15 -0
  201. package/dist/okf/types/DeployPolicy.md +15 -0
  202. package/dist/okf/types/DeploymentResourcePool.md +15 -0
  203. package/dist/okf/types/DeploymentmanagerDeployment.md +15 -0
  204. package/dist/okf/types/Device.md +15 -0
  205. package/dist/okf/types/DeviceRegistry.md +15 -0
  206. package/dist/okf/types/DevicestreamingSession.md +15 -0
  207. package/dist/okf/types/DialogflowAgent.md +15 -0
  208. package/dist/okf/types/DialogflowEntityType.md +15 -0
  209. package/dist/okf/types/DialogflowIntent.md +15 -0
  210. package/dist/okf/types/DialogflowcxAgent.md +15 -0
  211. package/dist/okf/types/DialogflowcxEntityType.md +15 -0
  212. package/dist/okf/types/DialogflowcxIntent.md +15 -0
  213. package/dist/okf/types/DiscoveredService.md +15 -0
  214. package/dist/okf/types/DiscoveredWorkload.md +15 -0
  215. package/dist/okf/types/DiskResourcePolicyAttachment.md +15 -0
  216. package/dist/okf/types/DnsPolicy.md +15 -0
  217. package/dist/okf/types/Document.md +15 -0
  218. package/dist/okf/types/DomainMapping.md +15 -0
  219. package/dist/okf/types/EdgeCacheKeyset.md +15 -0
  220. package/dist/okf/types/EdgeCacheOrigin.md +15 -0
  221. package/dist/okf/types/EdgeCacheService.md +15 -0
  222. package/dist/okf/types/EdgecontainerCluster.md +15 -0
  223. package/dist/okf/types/EdgecontainerNodePool.md +15 -0
  224. package/dist/okf/types/EdgenetworkNetwork.md +15 -0
  225. package/dist/okf/types/EndpointAttachment.md +15 -0
  226. package/dist/okf/types/EndpointPolicy.md +15 -0
  227. package/dist/okf/types/Engine.md +15 -0
  228. package/dist/okf/types/Enrollment.md +15 -0
  229. package/dist/okf/types/Entitlement.md +15 -0
  230. package/dist/okf/types/Entry.md +15 -0
  231. package/dist/okf/types/EntryType.md +15 -0
  232. package/dist/okf/types/Envgroup.md +15 -0
  233. package/dist/okf/types/EnvgroupAttachment.md +15 -0
  234. package/dist/okf/types/EventarcChannel.md +15 -0
  235. package/dist/okf/types/EventarcTrigger.md +15 -0
  236. package/dist/okf/types/ExampleStore.md +15 -0
  237. package/dist/okf/types/ExternalAccessRule.md +15 -0
  238. package/dist/okf/types/ExternalAddress.md +15 -0
  239. package/dist/okf/types/ExternalVPNGateway.md +15 -0
  240. package/dist/okf/types/FHIRStore.md +15 -0
  241. package/dist/okf/types/Feature.md +15 -0
  242. package/dist/okf/types/FeatureMembership.md +15 -0
  243. package/dist/okf/types/Featurestore.md +15 -0
  244. package/dist/okf/types/FeaturestoreEntityType.md +15 -0
  245. package/dist/okf/types/FeaturestoreEntityTypeFeature.md +15 -0
  246. package/dist/okf/types/Federation.md +15 -0
  247. package/dist/okf/types/Feed.md +15 -0
  248. package/dist/okf/types/Field.md +15 -0
  249. package/dist/okf/types/FilestoreBackup.md +15 -0
  250. package/dist/okf/types/FilestoreInstance.md +15 -0
  251. package/dist/okf/types/FilestoreSnapshot.md +15 -0
  252. package/dist/okf/types/FirebaseProject.md +15 -0
  253. package/dist/okf/types/FirebasedatabaseInstance.md +15 -0
  254. package/dist/okf/types/FirebasehostingChannel.md +15 -0
  255. package/dist/okf/types/FirestoreBackupSchedule.md +15 -0
  256. package/dist/okf/types/FirestoreIndex.md +15 -0
  257. package/dist/okf/types/Firewall.md +15 -0
  258. package/dist/okf/types/FirewallPolicyAssociation.md +15 -0
  259. package/dist/okf/types/FirewallPolicyRule.md +15 -0
  260. package/dist/okf/types/FirewallRule.md +15 -0
  261. package/dist/okf/types/FlexTemplateJob.md +15 -0
  262. package/dist/okf/types/FlexibleAppVersion.md +15 -0
  263. package/dist/okf/types/Flow.md +15 -0
  264. package/dist/okf/types/FolderFeed.md +15 -0
  265. package/dist/okf/types/ForwardingRule.md +15 -0
  266. package/dist/okf/types/Fulfillment.md +15 -0
  267. package/dist/okf/types/Function.md +15 -0
  268. package/dist/okf/types/FutureReservation.md +15 -0
  269. package/dist/okf/types/GCPServiceAccount.md +15 -0
  270. package/dist/okf/types/GCPUserAccessBinding.md +15 -0
  271. package/dist/okf/types/GCPolicy.md +15 -0
  272. package/dist/okf/types/GKECluster.md +15 -0
  273. package/dist/okf/types/GRPCRoute.md +15 -0
  274. package/dist/okf/types/GcsFolder.md +15 -0
  275. package/dist/okf/types/GkebackupBackup.md +15 -0
  276. package/dist/okf/types/GkebackupBackupPlan.md +15 -0
  277. package/dist/okf/types/GkehubMembership.md +15 -0
  278. package/dist/okf/types/GkehubNamespace.md +15 -0
  279. package/dist/okf/types/GlobalNetworkEndpoint.md +15 -0
  280. package/dist/okf/types/GlobalNetworkEndpointGroup.md +15 -0
  281. package/dist/okf/types/GoogleChannelConfig.md +15 -0
  282. package/dist/okf/types/GuestPolicy.md +15 -0
  283. package/dist/okf/types/HL7V2Store.md +15 -0
  284. package/dist/okf/types/HMACKey.md +15 -0
  285. package/dist/okf/types/HTTPHealthCheck.md +15 -0
  286. package/dist/okf/types/HTTPRoute.md +15 -0
  287. package/dist/okf/types/HTTPSHealthCheck.md +15 -0
  288. package/dist/okf/types/HealthcareDataset.md +15 -0
  289. package/dist/okf/types/Hub.md +15 -0
  290. package/dist/okf/types/IAMAuditConfig.md +20 -0
  291. package/dist/okf/types/IAMPolicy.md +15 -0
  292. package/dist/okf/types/IAMPolicyMember.md +15 -0
  293. package/dist/okf/types/IdentityAwareProxyClient.md +15 -0
  294. package/dist/okf/types/IdentityplatformConfig.md +15 -0
  295. package/dist/okf/types/Image.md +15 -0
  296. package/dist/okf/types/ImportJob.md +15 -0
  297. package/dist/okf/types/InboundSAMLConfig.md +15 -0
  298. package/dist/okf/types/IndexEndpoint.md +15 -0
  299. package/dist/okf/types/InspectTemplate.md +15 -0
  300. package/dist/okf/types/InstanceAttachment.md +15 -0
  301. package/dist/okf/types/InstanceConfig.md +15 -0
  302. package/dist/okf/types/InstanceEndpoint.md +15 -0
  303. package/dist/okf/types/InstanceGroup.md +15 -0
  304. package/dist/okf/types/InstanceGroupManager.md +15 -0
  305. package/dist/okf/types/InstanceGroupNamedPort.md +15 -0
  306. package/dist/okf/types/InstanceTemplate.md +15 -0
  307. package/dist/okf/types/InterceptDeployment.md +15 -0
  308. package/dist/okf/types/InterceptEndpointGroup.md +15 -0
  309. package/dist/okf/types/Interconnect.md +15 -0
  310. package/dist/okf/types/InterconnectAttachment.md +15 -0
  311. package/dist/okf/types/InternalRange.md +15 -0
  312. package/dist/okf/types/JobTrigger.md +15 -0
  313. package/dist/okf/types/KMSCryptoKey.md +19 -0
  314. package/dist/okf/types/KMSKeyRing.md +15 -0
  315. package/dist/okf/types/KeyHandle.md +15 -0
  316. package/dist/okf/types/KeyRingImportJob.md +15 -0
  317. package/dist/okf/types/LBRouteExtension.md +15 -0
  318. package/dist/okf/types/Lake.md +15 -0
  319. package/dist/okf/types/Lien.md +15 -0
  320. package/dist/okf/types/Link.md +15 -0
  321. package/dist/okf/types/Listing.md +15 -0
  322. package/dist/okf/types/LocationTagBinding.md +15 -0
  323. package/dist/okf/types/LogBucket.md +15 -0
  324. package/dist/okf/types/LogExclusion.md +15 -0
  325. package/dist/okf/types/LogMetric.md +15 -0
  326. package/dist/okf/types/LogSink.md +15 -0
  327. package/dist/okf/types/LogView.md +15 -0
  328. package/dist/okf/types/LogicalView.md +15 -0
  329. package/dist/okf/types/Machine.md +15 -0
  330. package/dist/okf/types/MachineImage.md +15 -0
  331. package/dist/okf/types/ManagedFolder.md +15 -0
  332. package/dist/okf/types/ManagedSSLCertificate.md +15 -0
  333. package/dist/okf/types/ManagedkafkaCluster.md +15 -0
  334. package/dist/okf/types/ManagedkafkaTopic.md +15 -0
  335. package/dist/okf/types/ManagementServer.md +15 -0
  336. package/dist/okf/types/MaterializedView.md +15 -0
  337. package/dist/okf/types/MembershipBinding.md +15 -0
  338. package/dist/okf/types/MemcacheInstance.md +15 -0
  339. package/dist/okf/types/MemorystoreInstance.md +15 -0
  340. package/dist/okf/types/Mesh.md +15 -0
  341. package/dist/okf/types/MetadataStore.md +15 -0
  342. package/dist/okf/types/MetastoreBackup.md +15 -0
  343. package/dist/okf/types/MetastoreService.md +15 -0
  344. package/dist/okf/types/MetricDescriptor.md +15 -0
  345. package/dist/okf/types/MigrationJob.md +15 -0
  346. package/dist/okf/types/MlengineModel.md +15 -0
  347. package/dist/okf/types/MonGroup.md +15 -0
  348. package/dist/okf/types/MonService.md +15 -0
  349. package/dist/okf/types/MonitoredProject.md +15 -0
  350. package/dist/okf/types/MuteConfig.md +15 -0
  351. package/dist/okf/types/NATAddress.md +15 -0
  352. package/dist/okf/types/NetappBackupVault.md +15 -0
  353. package/dist/okf/types/NetworkAttachment.md +15 -0
  354. package/dist/okf/types/NetworkEdgeSecurityService.md +15 -0
  355. package/dist/okf/types/NetworkEndpoint.md +15 -0
  356. package/dist/okf/types/NetworkEndpointGroup.md +15 -0
  357. package/dist/okf/types/NetworkFirewallPolicy.md +15 -0
  358. package/dist/okf/types/NetworkFirewallPolicyAssociation.md +15 -0
  359. package/dist/okf/types/NetworkFirewallPolicyRule.md +15 -0
  360. package/dist/okf/types/NetworkPeeringRoutesConfig.md +15 -0
  361. package/dist/okf/types/NetworkPolicy.md +15 -0
  362. package/dist/okf/types/NetworkservicesGateway.md +15 -0
  363. package/dist/okf/types/Node.md +21 -0
  364. package/dist/okf/types/NodePool.md +15 -0
  365. package/dist/okf/types/NodeTemplate.md +15 -0
  366. package/dist/okf/types/Note.md +15 -0
  367. package/dist/okf/types/NotebookInstance.md +15 -0
  368. package/dist/okf/types/NotebooksEnvironment.md +15 -0
  369. package/dist/okf/types/Notification.md +15 -0
  370. package/dist/okf/types/NotificationChannel.md +15 -0
  371. package/dist/okf/types/NotificationConfig.md +15 -0
  372. package/dist/okf/types/OAuthIDPConfig.md +15 -0
  373. package/dist/okf/types/OSPolicyAssignment.md +15 -0
  374. package/dist/okf/types/Occurrence.md +15 -0
  375. package/dist/okf/types/Organization.md +15 -0
  376. package/dist/okf/types/OrganizationFeed.md +15 -0
  377. package/dist/okf/types/OrganizationSecurityPolicy.md +15 -0
  378. package/dist/okf/types/OrganizationSecurityPolicyAssociation.md +15 -0
  379. package/dist/okf/types/OrganizationSecurityPolicyRule.md +15 -0
  380. package/dist/okf/types/OrgpolicyPolicy.md +15 -0
  381. package/dist/okf/types/PacketMirroring.md +15 -0
  382. package/dist/okf/types/Page.md +15 -0
  383. package/dist/okf/types/Parameter.md +15 -0
  384. package/dist/okf/types/ParameterVersion.md +15 -0
  385. package/dist/okf/types/PartialPolicy.md +15 -0
  386. package/dist/okf/types/PatchDeployment.md +15 -0
  387. package/dist/okf/types/PeeredDNSDomain.md +15 -0
  388. package/dist/okf/types/PerInstanceConfig.md +15 -0
  389. package/dist/okf/types/PhraseSet.md +15 -0
  390. package/dist/okf/types/PlatformPolicy.md +15 -0
  391. package/dist/okf/types/PolicyTag.md +15 -0
  392. package/dist/okf/types/PrivateCloud.md +15 -0
  393. package/dist/okf/types/PrivatecaCertificate.md +15 -0
  394. package/dist/okf/types/Processor.md +15 -0
  395. package/dist/okf/types/ProcessorDefaultVersion.md +15 -0
  396. package/dist/okf/types/ProcessorVersion.md +15 -0
  397. package/dist/okf/types/ProjectDefaultConfig.md +15 -0
  398. package/dist/okf/types/ProjectFeed.md +15 -0
  399. package/dist/okf/types/ProjectMetadata.md +15 -0
  400. package/dist/okf/types/PubSubSnapshot.md +15 -0
  401. package/dist/okf/types/PubSubSubscription.md +15 -0
  402. package/dist/okf/types/PubSubTopic.md +15 -0
  403. package/dist/okf/types/PubsubliteReservation.md +15 -0
  404. package/dist/okf/types/PubsubliteTopic.md +15 -0
  405. package/dist/okf/types/RecaptchaenterpriseFirewallPolicy.md +15 -0
  406. package/dist/okf/types/RecaptchaenterpriseKey.md +15 -0
  407. package/dist/okf/types/Recognizer.md +15 -0
  408. package/dist/okf/types/RedisCluster.md +15 -0
  409. package/dist/okf/types/RedisInstance.md +15 -0
  410. package/dist/okf/types/RegionAutoscaler.md +15 -0
  411. package/dist/okf/types/RegionDiskResourcePolicyAttachment.md +15 -0
  412. package/dist/okf/types/RegionNetworkEndpointGroup.md +15 -0
  413. package/dist/okf/types/RegionPerInstanceConfig.md +15 -0
  414. package/dist/okf/types/RegionSSLPolicy.md +15 -0
  415. package/dist/okf/types/RegionalEndpoint.md +15 -0
  416. package/dist/okf/types/ResourceBundle.md +15 -0
  417. package/dist/okf/types/ResourcePolicy.md +15 -0
  418. package/dist/okf/types/ResourcemanagerFolder.md +15 -0
  419. package/dist/okf/types/ResourcemanagerPolicy.md +15 -0
  420. package/dist/okf/types/ResourcemanagerProject.md +15 -0
  421. package/dist/okf/types/ResponsePolicy.md +15 -0
  422. package/dist/okf/types/ResponsePolicyRule.md +15 -0
  423. package/dist/okf/types/Restore.md +15 -0
  424. package/dist/okf/types/RestorePlan.md +15 -0
  425. package/dist/okf/types/Router.md +15 -0
  426. package/dist/okf/types/RouterInterface.md +15 -0
  427. package/dist/okf/types/RouterNAT.md +15 -0
  428. package/dist/okf/types/RouterPeer.md +15 -0
  429. package/dist/okf/types/Routine.md +15 -0
  430. package/dist/okf/types/Runtime.md +15 -0
  431. package/dist/okf/types/RuntimeTemplate.md +15 -0
  432. package/dist/okf/types/SQLDatabase.md +15 -0
  433. package/dist/okf/types/SQLInstance.md +21 -0
  434. package/dist/okf/types/SQLUser.md +15 -0
  435. package/dist/okf/types/SSHPublicKey.md +15 -0
  436. package/dist/okf/types/SSLCert.md +15 -0
  437. package/dist/okf/types/SSLCertificate.md +15 -0
  438. package/dist/okf/types/SSLPolicy.md +15 -0
  439. package/dist/okf/types/SavedQuery.md +15 -0
  440. package/dist/okf/types/Schema.md +15 -0
  441. package/dist/okf/types/Scope.md +15 -0
  442. package/dist/okf/types/ScopeRBACRoleBinding.md +15 -0
  443. package/dist/okf/types/SecretCiphertext.md +15 -0
  444. package/dist/okf/types/SecretManagerSecret.md +15 -0
  445. package/dist/okf/types/SecretManagerSecretVersion.md +15 -0
  446. package/dist/okf/types/SecuresourcemanagerInstance.md +15 -0
  447. package/dist/okf/types/SecuresourcemanagerRepository.md +15 -0
  448. package/dist/okf/types/SecurityPolicy.md +15 -0
  449. package/dist/okf/types/ServerTLSPolicy.md +15 -0
  450. package/dist/okf/types/ServiceAccountKey.md +15 -0
  451. package/dist/okf/types/ServiceAttachment.md +15 -0
  452. package/dist/okf/types/ServiceBinding.md +15 -0
  453. package/dist/okf/types/ServiceConnectionPolicy.md +15 -0
  454. package/dist/okf/types/ServiceIdentity.md +15 -0
  455. package/dist/okf/types/ServiceLevelObjective.md +15 -0
  456. package/dist/okf/types/ServicePerimeter.md +19 -0
  457. package/dist/okf/types/ServicePerimeterResource.md +15 -0
  458. package/dist/okf/types/ServiceProjectAttachment.md +15 -0
  459. package/dist/okf/types/ServiceSplitTraffic.md +15 -0
  460. package/dist/okf/types/ServicedirectoryEndpoint.md +15 -0
  461. package/dist/okf/types/ServicedirectoryNamespace.md +15 -0
  462. package/dist/okf/types/ServicedirectoryService.md +15 -0
  463. package/dist/okf/types/ServicenetworkingConnection.md +15 -0
  464. package/dist/okf/types/ServiceusageService.md +15 -0
  465. package/dist/okf/types/Settings.md +15 -0
  466. package/dist/okf/types/SharedVPCHostProject.md +15 -0
  467. package/dist/okf/types/SharedVPCServiceProject.md +15 -0
  468. package/dist/okf/types/Site.md +15 -0
  469. package/dist/okf/types/Source.md +15 -0
  470. package/dist/okf/types/SourcerepoRepository.md +15 -0
  471. package/dist/okf/types/SpannerBackupSchedule.md +15 -0
  472. package/dist/okf/types/SpannerDatabase.md +15 -0
  473. package/dist/okf/types/SpannerInstance.md +15 -0
  474. package/dist/okf/types/Spoke.md +15 -0
  475. package/dist/okf/types/StandardAppVersion.md +15 -0
  476. package/dist/okf/types/StorageBucket.md +21 -0
  477. package/dist/okf/types/StoragetransferJob.md +15 -0
  478. package/dist/okf/types/StoredInfoType.md +15 -0
  479. package/dist/okf/types/Stream.md +15 -0
  480. package/dist/okf/types/Subnet.md +15 -0
  481. package/dist/okf/types/Subnetwork.md +15 -0
  482. package/dist/okf/types/Subscription.md +15 -0
  483. package/dist/okf/types/SyncAuthorization.md +15 -0
  484. package/dist/okf/types/TCPRoute.md +15 -0
  485. package/dist/okf/types/TLSRoute.md +15 -0
  486. package/dist/okf/types/Tag.md +15 -0
  487. package/dist/okf/types/TagBinding.md +15 -0
  488. package/dist/okf/types/TagKey.md +15 -0
  489. package/dist/okf/types/TagTemplate.md +15 -0
  490. package/dist/okf/types/TagValue.md +15 -0
  491. package/dist/okf/types/Target.md +15 -0
  492. package/dist/okf/types/TargetGRPCProxy.md +15 -0
  493. package/dist/okf/types/TargetHTTPProxy.md +15 -0
  494. package/dist/okf/types/TargetHTTPSProxy.md +15 -0
  495. package/dist/okf/types/TargetInstance.md +15 -0
  496. package/dist/okf/types/TargetPool.md +15 -0
  497. package/dist/okf/types/TargetSSLProxy.md +15 -0
  498. package/dist/okf/types/TargetTCPProxy.md +15 -0
  499. package/dist/okf/types/TargetVPNGateway.md +15 -0
  500. package/dist/okf/types/TasksQueue.md +15 -0
  501. package/dist/okf/types/Taxonomy.md +15 -0
  502. package/dist/okf/types/Tenant.md +15 -0
  503. package/dist/okf/types/TenantDefaultSupportedIDPConfig.md +15 -0
  504. package/dist/okf/types/TenantInboundSAMLConfig.md +15 -0
  505. package/dist/okf/types/TenantOAuthIDPConfig.md +15 -0
  506. package/dist/okf/types/Tensorboard.md +15 -0
  507. package/dist/okf/types/URLMap.md +15 -0
  508. package/dist/okf/types/UptimeCheckConfig.md +15 -0
  509. package/dist/okf/types/User.md +15 -0
  510. package/dist/okf/types/VPCNetwork.md +15 -0
  511. package/dist/okf/types/VPNGateway.md +15 -0
  512. package/dist/okf/types/VPNTunnel.md +15 -0
  513. package/dist/okf/types/VertexaiDataset.md +15 -0
  514. package/dist/okf/types/VertexaiEndpoint.md +15 -0
  515. package/dist/okf/types/VertexaiIndex.md +15 -0
  516. package/dist/okf/types/VirtualMachine.md +15 -0
  517. package/dist/okf/types/VmwareengineNetwork.md +15 -0
  518. package/dist/okf/types/VmwareengineNetworkPeering.md +15 -0
  519. package/dist/okf/types/VpnConnection.md +15 -0
  520. package/dist/okf/types/WasmPlugin.md +15 -0
  521. package/dist/okf/types/WebApp.md +15 -0
  522. package/dist/okf/types/Webhook.md +15 -0
  523. package/dist/okf/types/WorkerPool.md +15 -0
  524. package/dist/okf/types/Workflow.md +15 -0
  525. package/dist/okf/types/WorkflowTemplate.md +15 -0
  526. package/dist/okf/types/WorkflowsExecution.md +15 -0
  527. package/dist/okf/types/WorkforcePool.md +15 -0
  528. package/dist/okf/types/WorkforcePoolProvider.md +15 -0
  529. package/dist/okf/types/Workload.md +15 -0
  530. package/dist/okf/types/WorkloadIdentityPool.md +15 -0
  531. package/dist/okf/types/WorkloadIdentityPoolProvider.md +15 -0
  532. package/dist/okf/types/Workstation.md +15 -0
  533. package/dist/okf/types/WorkstationCluster.md +15 -0
  534. package/dist/okf/types/WorkstationConfig.md +15 -0
  535. package/dist/okf/types/Zone.md +19 -0
  536. package/dist/rules/wgc501.ts +73 -0
  537. package/dist/rules/wgc502.ts +41 -0
  538. package/dist/rules/wgc503.ts +56 -0
  539. package/dist/serializer.d.ts +12 -0
  540. package/dist/serializer.d.ts.map +1 -1
  541. package/package.json +2 -2
  542. package/src/composites/index.ts +6 -0
  543. package/src/composites/landing-zone.test.ts +67 -0
  544. package/src/composites/landing-zone.ts +173 -0
  545. package/src/deep-observe-hooks.ts +87 -21
  546. package/src/deep-observe.test.ts +158 -13
  547. package/src/deep-observe.ts +143 -142
  548. package/src/describe-resources.test.ts +46 -1
  549. package/src/describe-resources.ts +64 -13
  550. package/src/governance.test.ts +59 -0
  551. package/src/governance.ts +179 -0
  552. package/src/index.ts +10 -0
  553. package/src/lifecycle-integration.test.ts +3 -3
  554. package/src/lint/audit-catalog.ts +5 -0
  555. package/src/lint/post-synth/index.ts +6 -0
  556. package/src/lint/post-synth/wgc501.test.ts +87 -0
  557. package/src/lint/post-synth/wgc501.ts +73 -0
  558. package/src/lint/post-synth/wgc502.test.ts +64 -0
  559. package/src/lint/post-synth/wgc502.ts +41 -0
  560. package/src/lint/post-synth/wgc503.test.ts +77 -0
  561. package/src/lint/post-synth/wgc503.ts +56 -0
  562. package/src/plugin.test.ts +4 -1
  563. package/src/serializer.ts +6 -1
@@ -1,3 +1,5 @@
1
+ export { GovernanceFoundation, LocationRestriction, OrganizationAuditConfig } from "./landing-zone.js";
2
+ export type { GovernanceFoundationProps, LocationRestrictionProps, OrganizationAuditConfigProps, } from "./landing-zone.js";
1
3
  export { GkeCluster } from "./gke-cluster.js";
2
4
  export type { GkeClusterProps } from "./gke-cluster.js";
3
5
  export { CloudRunServiceComposite } from "./cloud-run-service.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/composites/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACpG,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,YAAY,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Landing-zone bootstrap composites (#791, epic #787 C1) — the GCP slice.
3
+ *
4
+ * Fixed-shape resources for greenfield creation of the recommended
5
+ * governance foundation through a Config Connector management stack. The
6
+ * evaluability rules (EVL002/004) require composites to declare a fixed set
7
+ * of resources, so these carry the foundation only; arbitrary folder/project
8
+ * trees are authored as config with `landingZoneConfig()` (../governance.ts)
9
+ * and reconciled by the GCP cloud warden, and further folders/projects are
10
+ * declared as ordinary resources.
11
+ *
12
+ * The pieces compose:
13
+ * const lz = GovernanceFoundation({ orgId: "123456789012" });
14
+ * const lr = LocationRestriction({ orgId: "123456789012", locations: ["in:eu-locations"] });
15
+ * const ac = OrganizationAuditConfig({ orgId: "123456789012" });
16
+ * There is no OrganizationRoot analog — GCP organizations come from Cloud
17
+ * Identity / Workspace, not the resource API, so greenfield and brownfield
18
+ * both start from an existing org id.
19
+ */
20
+ import { IAMAuditConfig, OrgpolicyPolicy, ResourcemanagerFolder } from "../generated/index.js";
21
+ export interface GovernanceFoundationProps {
22
+ /** The organization to hang the foundation off ("123456789012" or "organizations/123456789012"). */
23
+ orgId: string;
24
+ /** Namespace for all resources. */
25
+ namespace?: string;
26
+ }
27
+ export type GovernanceFoundationResult = {
28
+ folderSecurity: InstanceType<typeof ResourcemanagerFolder>;
29
+ folderInfrastructure: InstanceType<typeof ResourcemanagerFolder>;
30
+ folderSandbox: InstanceType<typeof ResourcemanagerFolder>;
31
+ folderWorkloads: InstanceType<typeof ResourcemanagerFolder>;
32
+ policyDisableSaKeyCreation: InstanceType<typeof OrgpolicyPolicy>;
33
+ policySkipDefaultNetwork: InstanceType<typeof OrgpolicyPolicy>;
34
+ };
35
+ /**
36
+ * Security / Infrastructure / Sandbox / Workloads folders with
37
+ * `disable-sa-key-creation` and `skip-default-network` enforced at the
38
+ * organization root — the same baseline `landingZoneConfig()` declares.
39
+ */
40
+ export declare const GovernanceFoundation: import("@intentius/chant").CompositeDefinition<GovernanceFoundationProps, GovernanceFoundationResult>;
41
+ export interface LocationRestrictionProps {
42
+ /** The organization the policy binds to. */
43
+ orgId: string;
44
+ /** The only locations resources may be created in (value groups like "in:eu-locations" work). */
45
+ locations: string[];
46
+ /** Namespace for all resources. */
47
+ namespace?: string;
48
+ }
49
+ export type LocationRestrictionResult = {
50
+ policyResourceLocations: InstanceType<typeof OrgpolicyPolicy>;
51
+ };
52
+ export declare const LocationRestriction: import("@intentius/chant").CompositeDefinition<LocationRestrictionProps, LocationRestrictionResult>;
53
+ export interface OrganizationAuditConfigProps {
54
+ /** The organization audit logging is enabled on. */
55
+ orgId: string;
56
+ /** Defaults to "allServices". */
57
+ service?: string;
58
+ /** Defaults to ADMIN_READ / DATA_READ / DATA_WRITE. */
59
+ logTypes?: string[];
60
+ /** Namespace for all resources. */
61
+ namespace?: string;
62
+ }
63
+ export type OrganizationAuditConfigResult = {
64
+ auditConfig: InstanceType<typeof IAMAuditConfig>;
65
+ };
66
+ export declare const OrganizationAuditConfig: import("@intentius/chant").CompositeDefinition<OrganizationAuditConfigProps, OrganizationAuditConfigResult>;
67
+ //# sourceMappingURL=landing-zone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"landing-zone.d.ts","sourceRoot":"","sources":["../../src/composites/landing-zone.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AA2CtF,MAAM,WAAW,yBAAyB;IACxC,oGAAoG;IACpG,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,cAAc,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC3D,oBAAoB,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IACjE,aAAa,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC1D,eAAe,EAAE,YAAY,CAAC,OAAO,qBAAqB,CAAC,CAAC;IAC5D,0BAA0B,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;IACjE,wBAAwB,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;CAChE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,uGAqBP,CAAC;AAM3B,MAAM,WAAW,wBAAwB;IACvC,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,iGAAiG;IACjG,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,uBAAuB,EAAE,YAAY,CAAC,OAAO,eAAe,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,mBAAmB,qGAQP,CAAC;AAM1B,MAAM,WAAW,4BAA4B;IAC3C,oDAAoD;IACpD,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,mCAAmC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,WAAW,EAAE,YAAY,CAAC,OAAO,cAAc,CAAC,CAAC;CAClD,CAAC;AAEF,eAAO,MAAM,uBAAuB,6GAkBnC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /**
2
- * GCP deep-observation noise rules (#1209) — for REST payloads, not Config
3
- * Connector objects.
2
+ * GCP deep-observation noise rules (#1209, #1210) — for REST payloads, not
3
+ * Config Connector objects.
4
4
  *
5
5
  * ## What this replaced, and why it had to
6
6
  *
@@ -22,6 +22,16 @@
22
22
  * provider populates. It is hand-maintained, which is the honest cost: a
23
23
  * server-set field nobody has listed reads as drift until it is. That is
24
24
  * visible and fixable, where an over-broad rule silently hides real drift.
25
+ *
26
+ * ## The declared side is CNRM, and some of it never reaches GCP
27
+ *
28
+ * The declared tree is a Config Connector spec, and a few of its fields are
29
+ * instructions to the CNRM machinery rather than resource configuration —
30
+ * `projectRef`, `resourceID`, the `cnrm.cloud.google.com/*`
31
+ * annotations. No REST payload will ever echo them (the project is in the
32
+ * URL), so left alone each one reports `absent` drift on every clean apply.
33
+ * They are pruned as declared-side envelope, the mirror image of the
34
+ * live-side server fields.
25
35
  */
26
36
  import type { DeepNormalizationHooks } from "@intentius/chant/deep-observation";
27
37
  /**
@@ -33,7 +43,10 @@ import type { DeepNormalizationHooks } from "@intentius/chant/deep-observation";
33
43
  */
34
44
  export declare const GCP_READ_ONLY_NAMES: ReadonlySet<string>;
35
45
  /**
36
- * Per-kind values GCP fills in when the request omits them.
46
+ * Per-kind values GCP fills in when the request omits them, keyed by the
47
+ * index-erased pattern from the tree root (the declared-props shape
48
+ * `./deep-observe.ts` reshapes the live payload into — spec fields at the
49
+ * root, so `storageClass`, not `spec.storageClass`).
37
50
  *
38
51
  * Unlike {@link GCP_READ_ONLY_NAMES} these are only noise where **source never
39
52
  * declared the property** — a default somebody explicitly wrote is a fact worth
@@ -1 +1 @@
1
- {"version":3,"file":"deep-observe-hooks.d.ts","sourceRoot":"","sources":["../src/deep-observe-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,EAAY,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE1F;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAelD,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA4B5F,CAAC;AAeF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBAiBvC,CAAC"}
1
+ {"version":3,"file":"deep-observe-hooks.d.ts","sourceRoot":"","sources":["../src/deep-observe-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,OAAO,KAAK,EAAY,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAK1F;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAyBlD,CAAC;AAEH;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CA2B5F,CAAC;AAsCF;;;GAGG;AACH,eAAO,MAAM,yBAAyB,EAAE,sBA4BvC,CAAC"}
@@ -1,119 +1,49 @@
1
1
  /**
2
- * GCP deep observation (#1087) the GCP row of the deep-observe contract
3
- * (#1014), reusing the k8s row (#1076) rather than writing a second one, per
4
- * the issue and #1173's own per-row checklist: "A Config Connector resource
5
- * *is* a Kubernetes object, so it carries managed-fields for the same
6
- * reason. Share the hooks rather than writing a second implementation."
7
- *
8
- * ## A Config Connector CR is a Kubernetes object
9
- *
10
- * `kubectl get <kind>.<group> -o json` against a Config Connector-enabled
11
- * cluster (`./describe-resources.ts`'s own transport, reused here) returns a
12
- * real Kubernetes API object: `metadata.managedFields`, `status`,
13
- * `metadata.{uid,resourceVersion,generation,creationTimestamp}` are all
14
- * present for the identical reason they're present on a Deployment — the API
15
- * server that served the read is the same kind of API server. The epic's own
16
- * table lists `metadata.managedFields` under GCP's "field noise" to prune; it
17
- * is the opposite of noise, and it is available here for exactly the reason
18
- * chant #1076 reads it on the k8s row.
19
- *
20
- * So this reader reuses, unchanged, from `@intentius/chant/managed-fields`:
21
- *
22
- * - `K8S_OBJECT_ENVELOPE_PRUNE_PATTERNS` the generic Kubernetes object
23
- * envelope (`status`, `metadata.{uid,resourceVersion,generation,
24
- * creationTimestamp,managedFields,selfLink}`).
25
- * - `k8sListMapOrderKey` Kubernetes' own list-map-key conventions, needed
26
- * because some CNRM kinds embed genuinely k8s-shaped substructures (Cloud
27
- * Run's `RunService` wraps a Knative pod spec with
28
- * `containers`/`env`/`ports`, keyed the same way a Deployment's are).
29
- * - `buildOwnershipSets`/`pruneByOwnership` the managed-fields ownership
30
- * walk itself: chant #1076's actual contribution, and the piece this row
31
- * exists to reuse rather than reimplement.
32
- *
33
- * These live in core, not in the k8s lexicon, specifically so this file can
34
- * reuse them without adding a dependency on the k8s lexicon package or (never,
35
- * per the issue) on `@intentius/chant-k8s-client` this reader shells
36
- * `kubectl` exactly like `./describe-resources.ts` already does. Chant
37
- * #1177/#1180 kept GCP off the typed client deliberately ("a separate
38
- * lexicon and a separate decision"); this row does not revisit that.
39
- *
40
- * ## The GCP twist: who is "chant" on this path?
41
- *
42
- * Chant #1076's rule treats a field as always-diffable when *any* chant field
43
- * manager (`chant`, `chant:<stack>` — chant #1075's SSA identity) owns it.
44
- * That identity is only ever set by the k8s lexicon's typed client, applying
45
- * with an explicit `--field-manager`. GCP has no equivalent apply activity:
46
- * every gcp example's own deploy script (e.g.
47
- * `examples/cockroachdb-multi-region-gke/scripts/deploy.sh`) runs plain
48
- * `kubectl apply -f dist/*.yaml` — classic client-side apply, no
49
- * `--server-side`, no `--field-manager`. kubectl's own hardcoded default
50
- * field manager for that command is `kubectl-client-side-apply`, identical
51
- * to what a human's `kubectl apply -f their-own-file.yaml` would record.
52
- * **There is no field-manager name on GCP's real deploy path that
53
- * distinguishes "chant applied this" from "a person applied this".**
54
- * (Config Connector's own controller is distinguishable — its reconciler
55
- * records itself as `cnrm-controller-manager`, per the k8s-config-connector
56
- * source's own `ControllerManagedFieldManager` constant — just chant isn't,
57
- * on this path.)
58
- *
59
- * That sounds like it breaks question 1 of the three-question rule
60
- * (`isChantManager`) below. It doesn't, because question 3 already covers
61
- * it: chant's own kubectl apply always applies the *exact* built manifest, so
62
- * any field chant's own most recent apply set is, by construction, also in
63
- * `declaredRoot` (`props`) on the very next read — chant never authors a
64
- * field it does not also declare. Working through what that means per field:
65
- *
66
- * - A field only chant's own applies have ever touched: not recognized as
67
- * `chantOwned` (its manager is `kubectl-client-side-apply`, not `chant`),
68
- * but foreign-owned *and* declared → contested → kept diffable anyway.
69
- * Same outcome as being chant-owned would have been.
70
- * - A field CNRM's controller sets and chant never declares: foreign-owned,
71
- * undeclared → pruned. Correct regardless of whether "chant" is recognized.
72
- * - A field a human sets by hand (`kubectl edit`, or their own `kubectl apply
73
- * -f`) that chant *does* declare: foreign-owned (manager is `kubectl-edit`
74
- * or `kubectl-client-side-apply`) and declared → contested → surfaces as
75
- * drift. This is #1087's acceptance criterion 1.
76
- *
77
- * `isGcpChantFieldManager` below still checks the `chant`/`chant:<stack>`
78
- * family, so a future GCP apply path that *does* route through server-side
79
- * apply with an explicit chant field manager (matching the k8s lexicon's own
80
- * path) is recognized with no change needed here. On today's plain-apply
81
- * path it is inert — proven inert by this module's own test suite (the
82
- * "managers-specific case") — and the contested-field rule (question 3) is
83
- * what actually keeps GCP's drift semantics correct without it.
84
- *
85
- * ## What's genuinely GCP-specific
86
- *
87
- * - No typed operation surface (chant #1177's `operationFor` is a k8s
88
- * lexicon/typed-client concept, generated from cluster discovery this
89
- * reader never touches) — `./describe-resources.ts`'s `deriveGVK` stands in.
90
- * - CNRM's own observed-state annotations (`./deep-observe-hooks.ts`'s
91
- * `gcpDeepNormalizationHooks`) — bookkeeping the controller writes into
92
- * `metadata.annotations` for GCP-side properties the CRD schema has no
93
- * field for. See that module's doc for why the list is narrow.
94
- *
95
- * ## Deliberately out of scope
96
- *
97
- * `status.conditions` staleness as its own signal — the issue's own
98
- * "Proposed" section floats this as worth *deciding*, not worth doing here.
99
- * `status` is pruned outright (matching k8s, and the acceptance criteria),
100
- * and a CNRM projection lagging real GCP state is a genuine gap, but
101
- * detecting it means reading the actual GCP API, not the CR — a different
102
- * read than this contract's "normalize what Kubernetes reports" scope.
103
- * Flagged, not papered over.
2
+ * GCP deep observation (#1087, re-landed on direct REST by #1209/#1210) the
3
+ * GCP row of the deep-observe contract (#1014).
4
+ *
5
+ * ## The reader is the applier's transport, pointed at reads
6
+ *
7
+ * chant applies GCP cluster-free over direct REST (#706), and since #1209 it
8
+ * observes the same way: every GET here is built by the same
9
+ * `ResourceMapper.plan().getUrl` the applier writes through (see
10
+ * ./api/read-client.ts), so reader and applier cannot disagree about where a
11
+ * resource lives. `GCP_ENDPOINT_URL` redirects the whole reader at a local
12
+ * floci-gcp; unset means real GCP, exactly as it does for the applier.
13
+ * Coverage is the applier's own dispatch table — a kind with no mapper cannot
14
+ * be applied either, and reports NOT-OBSERVED with `unsupported-kind` (#1089)
15
+ * rather than being dropped.
16
+ *
17
+ * ## Two shapes, one diff
18
+ *
19
+ * The declared side is a CNRM spec as a declarable authors it (`{ metadata:
20
+ * { name }, location, storageClass }`); the REST APIs return their own shapes
21
+ * (`name` is usually the full resource path, a bucket's `iamConfiguration`
22
+ * nests what CNRM flattens, a subscription's `topic` is a path where CNRM
23
+ * writes `topicRef`). Diffed raw, every such field drifts twice: once as
24
+ * `declared -> <absent>` and once as `<undeclared> -> live`.
25
+ * {@link restToCnrmShape} plus the per-kind {@link CNRM_REFINERS} put the live
26
+ * payload into the declared vocabulary before the diff runs — the same move
27
+ * the AWS row makes with its per-type `toModel` (#1207/#1269), and it lives
28
+ * next to the read for the same reason: translation is the price of the
29
+ * richer read, and it does not belong inside the diff.
30
+ *
31
+ * ## Noise is a static table, not an ownership walk
32
+ *
33
+ * The kubectl-era reader pruned by CNRM `metadata.managedFields`. A REST
34
+ * payload never says who wrote a field, so the noise rules are static
35
+ * (./deep-observe-hooks.ts): server-assigned names, chant's own ownership
36
+ * labels, CNRM-only declared fields, and per-kind provider defaults gated on
37
+ * "source never declared it". Core applies the same hooks to both trees.
104
38
  *
105
39
  * ## The build-path boundary
106
40
  *
107
- * This module imports `./describe-resources.ts` for the live kubectl
108
- * transport, which imports `node:child_process`. `gcpPlugin.ts` reaches this
109
- * file only via `await import("./deep-observe.js")` inside
110
- * `observeResourcesDeep` never statically the same way it already
111
- * dynamic-imports `describeResources`/`exportResources`, so `chant build`
112
- * never resolves a process-spawning module just to synthesize a template.
113
- * `deepNormalizationHooks` is plain data with no such dependency
114
- * (`./deep-observe-hooks.ts`) and is imported statically from `plugin.ts`,
115
- * because core normalizes the *declared* tree with it whether or not a
116
- * cluster read ever happens.
41
+ * `gcpPlugin.ts` reaches this file only via `await import("./deep-observe.js")`
42
+ * inside `observeResourcesDeep` never statically — so `chant build` never
43
+ * resolves the live transport just to synthesize a template.
44
+ * `deepNormalizationHooks` is plain data (./deep-observe-hooks.ts) and is
45
+ * imported statically from `plugin.ts`, because core normalizes the
46
+ * *declared* tree with it whether or not a live read ever happens.
117
47
  */
118
48
  import type { DeepObservationResult } from "@intentius/chant/lexicon";
119
49
  import { gcpDeepNormalizationHooks } from "./deep-observe-hooks.js";
@@ -130,36 +60,35 @@ export interface GcpDeepObserveOptions {
130
60
  owned?: boolean;
131
61
  }
132
62
  /**
133
- * Reshape a GCP REST body into the CNRM shape the declared source is written in.
134
- *
135
- * This is the half of the port that is not transport (#1209). chant's GCP
136
- * source declares Config Connector custom resources `{ metadata: { name },
137
- * spec: { location, storageClass } }` while the REST APIs return their own
138
- * flat shape, `{ name, location, storageClass }`. Diffing one against the other
139
- * makes every field drift twice: once as `spec.location: US -> <absent>` and
140
- * again as `location: <undeclared> -> US`.
141
- *
142
- * Verified against floci-gcp before this existed: a bucket that matched its
143
- * declaration exactly reported **7 property drifts**, all of them shape.
144
- *
145
- * chant has met this before. #1207 records it for AWS: Cloud Control returns
146
- * the CloudFormation resource model and lines up for free, while the EC2 API
147
- * returns the EC2 shape and needs mapping onto the declared shape before the
148
- * diff can compare. GCP is the EC2 case.
149
- *
150
- * The mapping is CNRM's own convention rather than a per-kind table: identity
151
- * and labels live under `metadata`, everything else is `spec`. That holds for
152
- * every kind the applier can write, and a per-kind table would be a second
153
- * place to forget a field.
63
+ * Reshape a GCP REST body into the shape the declared props are written in:
64
+ * identity and labels under `metadata`, everything else at the root — a CNRM
65
+ * spec as a chant declarable authors it (`new StorageBucket({ metadata,
66
+ * location, storageClass })`). Kind-specific vocabulary differences on top of
67
+ * it are {@link CNRM_REFINERS}' job. Verified against floci-gcp: diffed raw, a
68
+ * bucket that matched its declaration exactly reported every field as drift
69
+ * twice, once per shape.
154
70
  */
155
71
  export declare function restToCnrmShape(body: Record<string, unknown>): Record<string, unknown>;
72
+ /** What a refiner may need beyond the tree: the read's project, and the REST
73
+ * payload's own full resource name (`projects/p/locations/l/services/s`). */
74
+ interface RefineContext {
75
+ project: string;
76
+ restName?: string;
77
+ }
78
+ /**
79
+ * A REST payload as a CNRM-shaped property tree, in the declared side's
80
+ * vocabulary. The generic reshape runs first, then the full resource path is
81
+ * shortened to the declared `metadata.name` (`projects/p/topics/t` -> `t`),
82
+ * then the kind's own refiner translates what the two schemas name
83
+ * differently.
84
+ */
85
+ export declare function toCnrmTree(kind: string, body: Record<string, unknown>, ctx: RefineContext): Record<string, unknown>;
156
86
  /**
157
- * Read the live property tree for each declared entity via `kubectl get
158
- * <kind>.<group> -o json`, pruning by `metadata.managedFields` (see the
159
- * module doc). Reuses `./describe-resources.ts`'s exact cluster-binding
160
- * resolution and kubectl mechanics the binding check (chant #1100) still
161
- * refuses before any resource is touched, and a connect failure still
162
- * becomes NOT-OBSERVED for every declared entity rather than an empty result.
87
+ * Read the live property tree for each declared entity over the applier's
88
+ * REST transport, normalized into the declared CNRM shape (see the module
89
+ * doc). A connect failure becomes NOT-OBSERVED for every declared entity
90
+ * rather than an empty result, and a 404 is a real absence the thin read
91
+ * already reports.
163
92
  */
164
93
  export declare function observeResourcesDeepGcp(options: GcpDeepObserveOptions): Promise<DeepObservationResult>;
165
94
  //# sourceMappingURL=deep-observe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deep-observe.d.ts","sourceRoot":"","sources":["../src/deep-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoHG;AAEH,OAAO,KAAK,EAEV,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAajE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWtF;AAUD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA0F5G"}
1
+ {"version":3,"file":"deep-observe.d.ts","sourceRoot":"","sources":["../src/deep-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAajE,OAAO,EAAE,yBAAyB,EAAE,CAAC;AAErC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWtF;AAUD;6EAC6E;AAC7E,UAAU,aAAa;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA+DD;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASnH;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4F5G"}
@@ -58,14 +58,38 @@ interface GcpRestResponse {
58
58
  };
59
59
  }
60
60
  /**
61
- * Mirror of `lexicons/gcp/src/serializer.ts:deriveGVKFromType` keeping the
62
- * derivation logic local so describeResources can compute the kubectl resource
63
- * name without importing serializer internals.
61
+ * The CNRM group/kind for an entity type, resolved through the serializer's
62
+ * own GVK map so the reader and the manifest agree on the kind's casing —
63
+ * `GCP::Pubsub::Topic` is `PubSubTopic` in CNRM and in the applier's mapper
64
+ * table, while a naive `${service}${shortKind}` concatenation would produce
65
+ * `PubsubTopic` and silently miss the mapper for 4 of the 6 appliable kinds.
64
66
  */
65
67
  export declare function deriveGVK(entityType: string): {
66
68
  group: string;
67
69
  kind: string;
68
70
  } | null;
71
+ /**
72
+ * The `cnrm.cloud.google.com/project-id` annotations in the built manifest,
73
+ * keyed `kind/name`.
74
+ *
75
+ * The declared entities the observe paths receive are discovery output, and a
76
+ * project-wide `defaultAnnotations({"cnrm.cloud.google.com/project-id": …})`
77
+ * is a separate declarable the serializer merges into each document at
78
+ * synthesis — the entity's own props never see it. The applier resolves its
79
+ * project from the manifest for exactly that reason, so the readers do too:
80
+ * without this, every entity relying on the default annotation reports
81
+ * `no-binding` unless the shell happens to export GOOGLE_CLOUD_PROJECT.
82
+ */
83
+ export declare function manifestProjectAnnotations(buildOutput: string | undefined): Map<string, string>;
84
+ /**
85
+ * The project a read should target: `GOOGLE_CLOUD_PROJECT` / the entity's own
86
+ * annotation (via `resolveGcpProject`, the applier's rule), then the built
87
+ * manifest's merged annotation. Throws the applier's own error when nothing
88
+ * resolves, so the `no-binding` detail names both knobs.
89
+ */
90
+ export declare function resolveReadProject(kind: string, name: string, metadata: {
91
+ annotations?: Record<string, string>;
92
+ } | undefined, manifestProjects: Map<string, string>): string;
69
93
  /**
70
94
  * Status from a REST payload.
71
95
  *
@@ -1 +1 @@
1
- {"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../src/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,0BAA0B,CAAC;AAqBtG;;gCAEgC;AAChC,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CASpF;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAY3D;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmH7B"}
1
+ {"version":3,"file":"describe-resources.d.ts","sourceRoot":"","sources":["../src/describe-resources.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAsC,MAAM,0BAA0B,CAAC;AAsBtG;;gCAEgC;AAChC,UAAU,eAAe;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,UAAU,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACxF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAIpF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAgB/F;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,SAAS,EAC9D,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,MAAM,CAQR;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM,CAY3D;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqH7B"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * GCP governance authoring (#791, epic #787 C1): the desired-state config
3
+ * shape the GCP cloud warden reconciles, and `landingZoneConfig()` — the
4
+ * typed authoring layer that emits it.
5
+ *
6
+ * This is deliberately NOT a composite. The evaluability rules (EVL002/004,
7
+ * #916/#952) require composites to declare a fixed set of resources, so a
8
+ * data-driven folder tree walker cannot be one. The split mirrors the AWS
9
+ * slice (lexicons/aws/src/governance.ts): authoring emits config (this
10
+ * module, arbitrary cardinality); resources for greenfield bootstrap are the
11
+ * fixed-shape composites in `composites/landing-zone.ts`; the warden
12
+ * consumes only the config.
13
+ *
14
+ * GCP has no OrganizationRoot analog — organizations are created through
15
+ * Cloud Identity / Workspace, never through the resource API.
16
+ */
17
+ /** An org-policy definition, keyed by name in `GcpGovernanceConfig.orgPolicies`. */
18
+ export interface OrgPolicyConfig {
19
+ description?: string;
20
+ /** The constraint the policy binds, e.g. "iam.disableServiceAccountKeyCreation". */
21
+ constraint: string;
22
+ /** OrgPolicyPolicy `spec.rules` entries (enforce / values.allowedValues / …). */
23
+ rules: Array<Record<string, unknown>>;
24
+ }
25
+ /** A project declared inside a folder. */
26
+ export interface ProjectConfig {
27
+ name: string;
28
+ /** Defaults to `name`. */
29
+ projectId?: string;
30
+ }
31
+ /** One folder: its guardrails, projects, and child folders, keyed by display name. */
32
+ export interface FolderConfig {
33
+ /** Names of org policies (from `orgPolicies`) attached to this folder. */
34
+ orgPolicies?: string[];
35
+ projects?: ProjectConfig[];
36
+ children?: Record<string, FolderConfig>;
37
+ }
38
+ /**
39
+ * The desired-state governance tree for one GCP organization. This is the
40
+ * shape the GCP cloud warden loads as config — the GCP counterpart of
41
+ * `AwsGovernanceConfig`. Cycles map onto the governance verbs (#790): the
42
+ * folder/project tree is `org-unit`, org policies are `policy-guardrail`,
43
+ * audit configuration is `audit-sink`.
44
+ */
45
+ export interface GcpGovernanceConfig {
46
+ organization: {
47
+ /** Org-policy names enforced at the organization root. */
48
+ orgPolicies?: string[];
49
+ };
50
+ /** Top-level folders under the organization, keyed by display name. */
51
+ folders: Record<string, FolderConfig>;
52
+ /** Org-policy definitions, keyed by the names the tree attaches. */
53
+ orgPolicies: Record<string, OrgPolicyConfig>;
54
+ /** Where audit evidence flows. */
55
+ auditSinks?: {
56
+ auditConfig?: {
57
+ service: string;
58
+ logTypes: string[];
59
+ };
60
+ };
61
+ }
62
+ export declare const DISABLE_SA_KEY_CREATION: OrgPolicyConfig;
63
+ export declare const SKIP_DEFAULT_NETWORK: OrgPolicyConfig;
64
+ /** Allow resource creation only in `locations` (value-group syntax like "in:us-locations" works too). */
65
+ export declare function resourceLocationRestriction(locations: readonly string[]): OrgPolicyConfig;
66
+ /** The audit-log coverage `auditAllServices` declares. */
67
+ export declare const AUDIT_ALL_SERVICES: {
68
+ readonly service: "allServices";
69
+ readonly logTypes: readonly ["ADMIN_READ", "DATA_READ", "DATA_WRITE"];
70
+ };
71
+ /**
72
+ * The recommended foundation folder structure. Exported so callers can
73
+ * extend it rather than restate it.
74
+ */
75
+ export declare const FOUNDATION_FOLDERS: Record<string, FolderConfig>;
76
+ export interface LandingZoneConfigProps {
77
+ /**
78
+ * Start from the recommended foundation: Security / Infrastructure /
79
+ * Sandbox / Workloads folders with `disable-sa-key-creation` and
80
+ * `skip-default-network` enforced at the organization root. Default true;
81
+ * your `folders`/`orgPolicies` merge over it (same-name keys win).
82
+ */
83
+ foundation?: boolean;
84
+ /** Adds a root resource-location org policy allowing only these locations. */
85
+ allowedLocations?: string[];
86
+ /** Folder tree, merged over the foundation's. Greenfield (full tree) and brownfield (partial subtree) are both just this map. */
87
+ folders?: Record<string, FolderConfig>;
88
+ /** Org-policy definitions, merged over the foundation's. */
89
+ orgPolicies?: Record<string, OrgPolicyConfig>;
90
+ /** Extra org-policy names to enforce at the organization root. */
91
+ rootOrgPolicies?: string[];
92
+ /** Declare organization-wide audit logging (allServices, all three log types). */
93
+ auditAllServices?: boolean;
94
+ }
95
+ /**
96
+ * Author the desired-state tree the GCP cloud warden reconciles. Pure.
97
+ * Throws when the tree attaches an org-policy name with no definition; only
98
+ * policies the tree actually attaches are included in the output.
99
+ */
100
+ export declare function landingZoneConfig(props?: LandingZoneConfigProps): GcpGovernanceConfig;
101
+ //# sourceMappingURL=governance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"governance.d.ts","sourceRoot":"","sources":["../src/governance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAMH,oFAAoF;AACpF,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACvC;AAED,0CAA0C;AAC1C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,sFAAsF;AACtF,MAAM,WAAW,YAAY;IAC3B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACzC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE;QACZ,0DAA0D;QAC1D,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;IACF,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,kCAAkC;IAClC,UAAU,CAAC,EAAE;QACX,WAAW,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACvD,CAAC;CACH;AAMD,eAAO,MAAM,uBAAuB,EAAE,eAIrC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,eAIlC,CAAC;AAEF,yGAAyG;AACzG,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,GAAG,eAAe,CAMzF;AAED,0DAA0D;AAC1D,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAK3D,CAAC;AAMF,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,iIAAiI;IACjI,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACvC,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9C,kEAAkE;IAClE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,kFAAkF;IAClF,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,GAAE,sBAA2B,GAAG,mBAAmB,CAwCzF"}
package/dist/index.d.ts CHANGED
@@ -5,8 +5,10 @@ export { DEFAULT_LABELS_MARKER, DEFAULT_ANNOTATIONS_MARKER } from "./default-lab
5
5
  export { GCP, ProjectId, Region, Zone } from "./pseudo.js";
6
6
  export { GcpAnnotations } from "./variables.js";
7
7
  export * from "./generated/index.js";
8
- export { GkeCluster, CloudRunServiceComposite, CloudSqlInstance, GcsBucket, VpcNetwork, PubSubPipeline, CloudFunctionWithTrigger, PrivateService, ManagedCertificate, SecureProject, MemorystoreRedis, MultiRegionVpc, GkeCrdbRegion, } from "./composites/index.js";
9
- export type { GkeClusterProps, CloudRunServiceProps, CloudSqlInstanceProps, GcsBucketProps, VpcNetworkProps, VpcSubnet, PubSubPipelineProps, CloudFunctionWithTriggerProps, PrivateServiceProps, ManagedCertificateProps, SecureProjectProps, MemorystoreRedisProps, MultiRegionVpcConfig, MultiRegionVpcRegion, GkeCrdbRegionConfig, GkeCrdbRegionNodeConfig, } from "./composites/index.js";
8
+ export { GkeCluster, CloudRunServiceComposite, CloudSqlInstance, GcsBucket, VpcNetwork, PubSubPipeline, CloudFunctionWithTrigger, PrivateService, ManagedCertificate, SecureProject, MemorystoreRedis, MultiRegionVpc, GkeCrdbRegion, GovernanceFoundation, LocationRestriction, OrganizationAuditConfig, } from "./composites/index.js";
9
+ export type { GkeClusterProps, CloudRunServiceProps, CloudSqlInstanceProps, GcsBucketProps, VpcNetworkProps, VpcSubnet, PubSubPipelineProps, CloudFunctionWithTriggerProps, PrivateServiceProps, ManagedCertificateProps, SecureProjectProps, MemorystoreRedisProps, MultiRegionVpcConfig, MultiRegionVpcRegion, GkeCrdbRegionConfig, GkeCrdbRegionNodeConfig, GovernanceFoundationProps, LocationRestrictionProps, OrganizationAuditConfigProps, } from "./composites/index.js";
10
+ export { landingZoneConfig, resourceLocationRestriction, DISABLE_SA_KEY_CREATION, SKIP_DEFAULT_NETWORK, AUDIT_ALL_SERVICES, FOUNDATION_FOLDERS, } from "./governance.js";
11
+ export type { GcpGovernanceConfig, LandingZoneConfigProps, FolderConfig, OrgPolicyConfig, ProjectConfig } from "./governance.js";
10
12
  export { StorageRoles, ComputeRoles, ContainerRoles, IAMRoles, SQLRoles, RunRoles, PubSubRoles } from "./actions/index.js";
11
13
  export { fetchCRDBundle, getCachePath, clearCache, KCC_VERSION } from "./spec/fetch.js";
12
14
  export { parseGcpCRD, gcpServiceName, gcpShortName, gcpTypeName, stripServicePrefix } from "./spec/parse.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,UAAU,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAC7E,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAC3F,gBAAgB,EAAE,cAAc,EAAE,aAAa,GAChD,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAAE,SAAS,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,uBAAuB,GAC7C,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrI,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGrC,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5G,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGrF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGxD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAI7C,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EACL,UAAU,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,SAAS,EAAE,UAAU,EAC7E,cAAc,EAAE,wBAAwB,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,EAC3F,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAC/C,oBAAoB,EAAE,mBAAmB,EAAE,uBAAuB,GACnE,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,eAAe,EAAE,SAAS,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EAAE,oBAAoB,EAC1C,mBAAmB,EAAE,uBAAuB,EAC5C,yBAAyB,EAAE,wBAAwB,EAAE,4BAA4B,GAClF,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,iBAAiB,EAAE,2BAA2B,EAC9C,uBAAuB,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,GACtF,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAG9H,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGxH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC1G,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,kBAAkB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGrI,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvE,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "algorithm": "sha256",
3
3
  "artifacts": {
4
- "manifest.json": "e5af48d634795be138922171429f6d971b4c7e6dc8d758b420a00f4c9368bcaf",
4
+ "manifest.json": "a77b96031861d35097dbe5d31f4e5fd6a709f5992c20e887bdc6b8db3680c145",
5
5
  "meta.json": "475f10909854d059a2e2d4fb541c058803422e38b9c64bd4d6858c0623eedb8c",
6
6
  "types/index.d.ts": "5433b54c04b57d6fda8f3d81ef92ed0aca87f7e8e5dd3ea92d8de6e62a3ccfab",
7
7
  "rules/hardcoded-project.ts": "228631d3159e1ffcce2359c66073d4ae59bb0285f378e46e446f416aec50481c",
@@ -32,10 +32,13 @@
32
32
  "rules/wgc401.ts": "287a28258a6987eacf4228df8e57cdc6d5357d5efcb35a732fb01e4b7b8ce797",
33
33
  "rules/wgc402.ts": "4dacefea0ead25987ded5f8f5b83d02d2aa957f3816a7d0cc602cc9872257458",
34
34
  "rules/wgc403.ts": "156a8af8f8e419d36e740f4fc6f2ed7576a1692e3286e4c9ca6f9e9ccf772965",
35
+ "rules/wgc501.ts": "9684ce2c6aa6585aad72eba06386623cffc7790c8c5e928c53677cb2ea6a0160",
36
+ "rules/wgc502.ts": "d82bea32a0d21c715f59b6ee2343357bd15ffb1a2fc18d4fb5102593595c0d46",
37
+ "rules/wgc503.ts": "bbd1a2ba8189ef07ba921b46b57be507b62bca0342f86c3ec0292ba250406991",
35
38
  "skills/chant-gcp.md": "6fd732fb5df2fd6561b4b704379f6779ff4ac12e3069ea4f641d9b222e0c3c81",
36
39
  "skills/chant-gcp-security.md": "39a1c97b7425ed43b081257132449d11ce9d12f2d4755fc30d8b14bbc38f60bd",
37
40
  "skills/chant-gcp-patterns.md": "a7ef31c1eb2f7244d3f73952c300472ef94c1eb09bd7a1003281b89299b6b704",
38
41
  "skills/chant-gcp-gke.md": "be277019da9a722c851e47cd2dfb9c9536668948c3535fb20db7697e934c4e2b"
39
42
  },
40
- "composite": "722b80ea5c02b4272d296c6fe65732c4381ba11655a3be692d7e6cda044270a7"
43
+ "composite": "09c15cce67a44ee4ad75992a765d524d07f8dc97edc20c166dc3f3c92b5d0506"
41
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAI1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAwBpD,CAAC"}
1
+ {"version":3,"file":"audit-catalog.d.ts","sourceRoot":"","sources":["../../src/lint/audit-catalog.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAa,KAAK,QAAQ,EAAkB,MAAM,gCAAgC,CAAC;AAI1F,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CA6BpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAyBvE,eAAO,MAAM,eAAe,EAAE,cAAc,EAwB3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AA4BvE,eAAO,MAAM,eAAe,EAAE,cAAc,EA2B3C,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * WGC501: Org Policy Guardrail Not Enforced (#793, epic #787 C3)
3
+ *
4
+ * Flags OrgPolicyPolicy resources whose rules switch enforcement off or that
5
+ * reset the constraint to its default. A disabled org policy is the GCP
6
+ * shape of a weakened guardrail: the constraint stays visible in the tree
7
+ * while constraining nothing.
8
+ */
9
+ import type { PostSynthCheck } from "@intentius/chant/lint/post-synth";
10
+ import { type GcpManifest } from "./gcp-helpers.js";
11
+ /**
12
+ * OrgPolicyPolicy mirrors the API's own `spec` inside the CRD spec, so rules
13
+ * live at `spec.spec.rules`; accept `spec.rules` too for hand-written manifests.
14
+ */
15
+ export declare function orgPolicySpec(manifest: GcpManifest): Record<string, unknown>;
16
+ export declare function orgPolicyRules(manifest: GcpManifest): Array<Record<string, unknown>>;
17
+ export declare const wgc501: PostSynthCheck;
18
+ //# sourceMappingURL=wgc501.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wgc501.d.ts","sourceRoot":"","sources":["../../../src/lint/post-synth/wgc501.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAyC,MAAM,kCAAkC,CAAC;AAC9G,OAAO,EAAsC,KAAK,WAAW,EAAE,MAAM,eAAe,CAAC;AAErF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAI5E;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAGpF;AAMD,eAAO,MAAM,MAAM,EAAE,cAyCpB,CAAC"}