pulumi-gcp 7.28.0a1718950249__py3-none-any.whl → 7.28.0a1718995220__py3-none-any.whl

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 (58) hide show
  1. pulumi_gcp/__init__.py +59 -0
  2. pulumi_gcp/accesscontextmanager/_inputs.py +58 -74
  3. pulumi_gcp/accesscontextmanager/access_levels.py +0 -20
  4. pulumi_gcp/accesscontextmanager/outputs.py +58 -74
  5. pulumi_gcp/accesscontextmanager/service_perimeter.py +2 -0
  6. pulumi_gcp/bigtable/_inputs.py +40 -0
  7. pulumi_gcp/bigtable/outputs.py +49 -0
  8. pulumi_gcp/bigtable/table.py +54 -0
  9. pulumi_gcp/cloudbuildv2/_inputs.py +383 -0
  10. pulumi_gcp/cloudbuildv2/connection.py +110 -2
  11. pulumi_gcp/cloudbuildv2/outputs.py +421 -0
  12. pulumi_gcp/composer/__init__.py +3 -0
  13. pulumi_gcp/composer/get_user_workloads_config_map.py +190 -0
  14. pulumi_gcp/composer/get_user_workloads_secret.py +188 -0
  15. pulumi_gcp/composer/user_workloads_config_map.py +475 -0
  16. pulumi_gcp/compute/_inputs.py +4 -2
  17. pulumi_gcp/compute/backend_service.py +28 -48
  18. pulumi_gcp/compute/interconnect.py +4 -4
  19. pulumi_gcp/compute/outputs.py +10 -4
  20. pulumi_gcp/compute/region_backend_service.py +35 -48
  21. pulumi_gcp/compute/region_network_endpoint.py +187 -0
  22. pulumi_gcp/compute/region_network_endpoint_group.py +49 -9
  23. pulumi_gcp/compute/region_target_https_proxy.py +7 -14
  24. pulumi_gcp/compute/target_https_proxy.py +28 -14
  25. pulumi_gcp/config/__init__.pyi +2 -0
  26. pulumi_gcp/config/vars.py +4 -0
  27. pulumi_gcp/container/_inputs.py +2 -2
  28. pulumi_gcp/container/outputs.py +4 -4
  29. pulumi_gcp/discoveryengine/_inputs.py +227 -0
  30. pulumi_gcp/discoveryengine/data_store.py +108 -0
  31. pulumi_gcp/discoveryengine/outputs.py +280 -0
  32. pulumi_gcp/edgecontainer/_inputs.py +107 -1
  33. pulumi_gcp/edgecontainer/outputs.py +123 -1
  34. pulumi_gcp/gkehub/_inputs.py +16 -0
  35. pulumi_gcp/gkehub/outputs.py +15 -1
  36. pulumi_gcp/logging/folder_sink.py +14 -14
  37. pulumi_gcp/logging/organization_sink.py +14 -14
  38. pulumi_gcp/managedkafka/__init__.py +11 -0
  39. pulumi_gcp/managedkafka/_inputs.py +169 -0
  40. pulumi_gcp/managedkafka/cluster.py +807 -0
  41. pulumi_gcp/managedkafka/outputs.py +197 -0
  42. pulumi_gcp/managedkafka/topic.py +599 -0
  43. pulumi_gcp/netapp/__init__.py +1 -0
  44. pulumi_gcp/netapp/active_directory.py +55 -0
  45. pulumi_gcp/netapp/backup.py +903 -0
  46. pulumi_gcp/provider.py +20 -0
  47. pulumi_gcp/pulumi-plugin.json +1 -1
  48. pulumi_gcp/securitycenter/__init__.py +3 -0
  49. pulumi_gcp/securitycenter/_inputs.py +1105 -0
  50. pulumi_gcp/securitycenter/management_folder_security_health_analytics_custom_module.py +725 -0
  51. pulumi_gcp/securitycenter/management_organization_security_health_analytics_custom_module.py +713 -0
  52. pulumi_gcp/securitycenter/management_project_security_health_analytics_custom_module.py +706 -0
  53. pulumi_gcp/securitycenter/outputs.py +1048 -0
  54. pulumi_gcp/vertex/ai_feature_online_store.py +37 -8
  55. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/METADATA +1 -1
  56. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/RECORD +58 -46
  57. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/WHEEL +0 -0
  58. {pulumi_gcp-7.28.0a1718950249.dist-info → pulumi_gcp-7.28.0a1718995220.dist-info}/top_level.txt +0 -0
@@ -19,6 +19,24 @@ __all__ = [
19
19
  'FolderCustomModuleCustomConfigResourceSelector',
20
20
  'InstanceIamBindingCondition',
21
21
  'InstanceIamMemberCondition',
22
+ 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfig',
23
+ 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput',
24
+ 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty',
25
+ 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression',
26
+ 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigPredicate',
27
+ 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector',
28
+ 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfig',
29
+ 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput',
30
+ 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty',
31
+ 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression',
32
+ 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicate',
33
+ 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector',
34
+ 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfig',
35
+ 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput',
36
+ 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty',
37
+ 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression',
38
+ 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigPredicate',
39
+ 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector',
22
40
  'NotificationConfigStreamingConfig',
23
41
  'OrganizationCustomModuleCustomConfig',
24
42
  'OrganizationCustomModuleCustomConfigCustomOutput',
@@ -448,6 +466,1036 @@ class InstanceIamMemberCondition(dict):
448
466
  return pulumi.get(self, "description")
449
467
 
450
468
 
469
+ @pulumi.output_type
470
+ class ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfig(dict):
471
+ @staticmethod
472
+ def __key_warning(key: str):
473
+ suggest = None
474
+ if key == "customOutput":
475
+ suggest = "custom_output"
476
+ elif key == "resourceSelector":
477
+ suggest = "resource_selector"
478
+
479
+ if suggest:
480
+ pulumi.log.warn(f"Key '{key}' not found in ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfig. Access the value via the '{suggest}' property getter instead.")
481
+
482
+ def __getitem__(self, key: str) -> Any:
483
+ ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfig.__key_warning(key)
484
+ return super().__getitem__(key)
485
+
486
+ def get(self, key: str, default = None) -> Any:
487
+ ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfig.__key_warning(key)
488
+ return super().get(key, default)
489
+
490
+ def __init__(__self__, *,
491
+ custom_output: Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput'] = None,
492
+ description: Optional[str] = None,
493
+ predicate: Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigPredicate'] = None,
494
+ recommendation: Optional[str] = None,
495
+ resource_selector: Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector'] = None,
496
+ severity: Optional[str] = None):
497
+ """
498
+ :param 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputArgs' custom_output: Custom output properties.
499
+ Structure is documented below.
500
+ :param str description: Text that describes the vulnerability or misconfiguration that the custom
501
+ module detects. This explanation is returned with each finding instance to
502
+ help investigators understand the detected issue. The text must be enclosed in quotation marks.
503
+ :param 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs' predicate: The CEL expression to evaluate to produce findings. When the expression evaluates
504
+ to true against a resource, a finding is generated.
505
+ Structure is documented below.
506
+ :param str recommendation: An explanation of the recommended steps that security teams can take to resolve
507
+ the detected issue. This explanation is returned with each finding generated by
508
+ this module in the nextSteps property of the finding JSON.
509
+ :param 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs' resource_selector: The resource types that the custom module operates on. Each custom module
510
+ can specify up to 5 resource types.
511
+ Structure is documented below.
512
+ :param str severity: The severity to assign to findings generated by the module.
513
+ Possible values are: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
514
+ """
515
+ if custom_output is not None:
516
+ pulumi.set(__self__, "custom_output", custom_output)
517
+ if description is not None:
518
+ pulumi.set(__self__, "description", description)
519
+ if predicate is not None:
520
+ pulumi.set(__self__, "predicate", predicate)
521
+ if recommendation is not None:
522
+ pulumi.set(__self__, "recommendation", recommendation)
523
+ if resource_selector is not None:
524
+ pulumi.set(__self__, "resource_selector", resource_selector)
525
+ if severity is not None:
526
+ pulumi.set(__self__, "severity", severity)
527
+
528
+ @property
529
+ @pulumi.getter(name="customOutput")
530
+ def custom_output(self) -> Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput']:
531
+ """
532
+ Custom output properties.
533
+ Structure is documented below.
534
+ """
535
+ return pulumi.get(self, "custom_output")
536
+
537
+ @property
538
+ @pulumi.getter
539
+ def description(self) -> Optional[str]:
540
+ """
541
+ Text that describes the vulnerability or misconfiguration that the custom
542
+ module detects. This explanation is returned with each finding instance to
543
+ help investigators understand the detected issue. The text must be enclosed in quotation marks.
544
+ """
545
+ return pulumi.get(self, "description")
546
+
547
+ @property
548
+ @pulumi.getter
549
+ def predicate(self) -> Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigPredicate']:
550
+ """
551
+ The CEL expression to evaluate to produce findings. When the expression evaluates
552
+ to true against a resource, a finding is generated.
553
+ Structure is documented below.
554
+ """
555
+ return pulumi.get(self, "predicate")
556
+
557
+ @property
558
+ @pulumi.getter
559
+ def recommendation(self) -> Optional[str]:
560
+ """
561
+ An explanation of the recommended steps that security teams can take to resolve
562
+ the detected issue. This explanation is returned with each finding generated by
563
+ this module in the nextSteps property of the finding JSON.
564
+ """
565
+ return pulumi.get(self, "recommendation")
566
+
567
+ @property
568
+ @pulumi.getter(name="resourceSelector")
569
+ def resource_selector(self) -> Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector']:
570
+ """
571
+ The resource types that the custom module operates on. Each custom module
572
+ can specify up to 5 resource types.
573
+ Structure is documented below.
574
+ """
575
+ return pulumi.get(self, "resource_selector")
576
+
577
+ @property
578
+ @pulumi.getter
579
+ def severity(self) -> Optional[str]:
580
+ """
581
+ The severity to assign to findings generated by the module.
582
+ Possible values are: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
583
+ """
584
+ return pulumi.get(self, "severity")
585
+
586
+
587
+ @pulumi.output_type
588
+ class ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput(dict):
589
+ def __init__(__self__, *,
590
+ properties: Optional[Sequence['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty']] = None):
591
+ """
592
+ :param Sequence['ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyArgs'] properties: A list of custom output properties to add to the finding.
593
+ Structure is documented below.
594
+ """
595
+ if properties is not None:
596
+ pulumi.set(__self__, "properties", properties)
597
+
598
+ @property
599
+ @pulumi.getter
600
+ def properties(self) -> Optional[Sequence['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty']]:
601
+ """
602
+ A list of custom output properties to add to the finding.
603
+ Structure is documented below.
604
+ """
605
+ return pulumi.get(self, "properties")
606
+
607
+
608
+ @pulumi.output_type
609
+ class ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty(dict):
610
+ @staticmethod
611
+ def __key_warning(key: str):
612
+ suggest = None
613
+ if key == "valueExpression":
614
+ suggest = "value_expression"
615
+
616
+ if suggest:
617
+ pulumi.log.warn(f"Key '{key}' not found in ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty. Access the value via the '{suggest}' property getter instead.")
618
+
619
+ def __getitem__(self, key: str) -> Any:
620
+ ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty.__key_warning(key)
621
+ return super().__getitem__(key)
622
+
623
+ def get(self, key: str, default = None) -> Any:
624
+ ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty.__key_warning(key)
625
+ return super().get(key, default)
626
+
627
+ def __init__(__self__, *,
628
+ name: Optional[str] = None,
629
+ value_expression: Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression'] = None):
630
+ """
631
+ :param str name: Name of the property for the custom output.
632
+ :param 'ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpressionArgs' value_expression: The CEL expression for the custom output. A resource property can be specified
633
+ to return the value of the property or a text string enclosed in quotation marks.
634
+ Structure is documented below.
635
+ """
636
+ if name is not None:
637
+ pulumi.set(__self__, "name", name)
638
+ if value_expression is not None:
639
+ pulumi.set(__self__, "value_expression", value_expression)
640
+
641
+ @property
642
+ @pulumi.getter
643
+ def name(self) -> Optional[str]:
644
+ """
645
+ Name of the property for the custom output.
646
+ """
647
+ return pulumi.get(self, "name")
648
+
649
+ @property
650
+ @pulumi.getter(name="valueExpression")
651
+ def value_expression(self) -> Optional['outputs.ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression']:
652
+ """
653
+ The CEL expression for the custom output. A resource property can be specified
654
+ to return the value of the property or a text string enclosed in quotation marks.
655
+ Structure is documented below.
656
+ """
657
+ return pulumi.get(self, "value_expression")
658
+
659
+
660
+ @pulumi.output_type
661
+ class ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression(dict):
662
+ def __init__(__self__, *,
663
+ expression: str,
664
+ description: Optional[str] = None,
665
+ location: Optional[str] = None,
666
+ title: Optional[str] = None):
667
+ """
668
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
669
+ :param str description: Description of the expression. This is a longer text which describes the
670
+ expression, e.g. when hovered over it in a UI.
671
+ :param str location: String indicating the location of the expression for error reporting, e.g. a
672
+ file name and a position in the file.
673
+ :param str title: Title for the expression, i.e. a short string describing its purpose. This can
674
+ be used e.g. in UIs which allow to enter the expression.
675
+ """
676
+ pulumi.set(__self__, "expression", expression)
677
+ if description is not None:
678
+ pulumi.set(__self__, "description", description)
679
+ if location is not None:
680
+ pulumi.set(__self__, "location", location)
681
+ if title is not None:
682
+ pulumi.set(__self__, "title", title)
683
+
684
+ @property
685
+ @pulumi.getter
686
+ def expression(self) -> str:
687
+ """
688
+ Textual representation of an expression in Common Expression Language syntax.
689
+ """
690
+ return pulumi.get(self, "expression")
691
+
692
+ @property
693
+ @pulumi.getter
694
+ def description(self) -> Optional[str]:
695
+ """
696
+ Description of the expression. This is a longer text which describes the
697
+ expression, e.g. when hovered over it in a UI.
698
+ """
699
+ return pulumi.get(self, "description")
700
+
701
+ @property
702
+ @pulumi.getter
703
+ def location(self) -> Optional[str]:
704
+ """
705
+ String indicating the location of the expression for error reporting, e.g. a
706
+ file name and a position in the file.
707
+ """
708
+ return pulumi.get(self, "location")
709
+
710
+ @property
711
+ @pulumi.getter
712
+ def title(self) -> Optional[str]:
713
+ """
714
+ Title for the expression, i.e. a short string describing its purpose. This can
715
+ be used e.g. in UIs which allow to enter the expression.
716
+ """
717
+ return pulumi.get(self, "title")
718
+
719
+
720
+ @pulumi.output_type
721
+ class ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigPredicate(dict):
722
+ def __init__(__self__, *,
723
+ expression: str,
724
+ description: Optional[str] = None,
725
+ location: Optional[str] = None,
726
+ title: Optional[str] = None):
727
+ """
728
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
729
+ :param str description: Description of the expression. This is a longer text which describes the
730
+ expression, e.g. when hovered over it in a UI.
731
+ :param str location: String indicating the location of the expression for error reporting, e.g. a
732
+ file name and a position in the file.
733
+ :param str title: Title for the expression, i.e. a short string describing its purpose. This can
734
+ be used e.g. in UIs which allow to enter the expression.
735
+ """
736
+ pulumi.set(__self__, "expression", expression)
737
+ if description is not None:
738
+ pulumi.set(__self__, "description", description)
739
+ if location is not None:
740
+ pulumi.set(__self__, "location", location)
741
+ if title is not None:
742
+ pulumi.set(__self__, "title", title)
743
+
744
+ @property
745
+ @pulumi.getter
746
+ def expression(self) -> str:
747
+ """
748
+ Textual representation of an expression in Common Expression Language syntax.
749
+ """
750
+ return pulumi.get(self, "expression")
751
+
752
+ @property
753
+ @pulumi.getter
754
+ def description(self) -> Optional[str]:
755
+ """
756
+ Description of the expression. This is a longer text which describes the
757
+ expression, e.g. when hovered over it in a UI.
758
+ """
759
+ return pulumi.get(self, "description")
760
+
761
+ @property
762
+ @pulumi.getter
763
+ def location(self) -> Optional[str]:
764
+ """
765
+ String indicating the location of the expression for error reporting, e.g. a
766
+ file name and a position in the file.
767
+ """
768
+ return pulumi.get(self, "location")
769
+
770
+ @property
771
+ @pulumi.getter
772
+ def title(self) -> Optional[str]:
773
+ """
774
+ Title for the expression, i.e. a short string describing its purpose. This can
775
+ be used e.g. in UIs which allow to enter the expression.
776
+ """
777
+ return pulumi.get(self, "title")
778
+
779
+
780
+ @pulumi.output_type
781
+ class ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector(dict):
782
+ @staticmethod
783
+ def __key_warning(key: str):
784
+ suggest = None
785
+ if key == "resourceTypes":
786
+ suggest = "resource_types"
787
+
788
+ if suggest:
789
+ pulumi.log.warn(f"Key '{key}' not found in ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector. Access the value via the '{suggest}' property getter instead.")
790
+
791
+ def __getitem__(self, key: str) -> Any:
792
+ ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector.__key_warning(key)
793
+ return super().__getitem__(key)
794
+
795
+ def get(self, key: str, default = None) -> Any:
796
+ ManagementFolderSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector.__key_warning(key)
797
+ return super().get(key, default)
798
+
799
+ def __init__(__self__, *,
800
+ resource_types: Sequence[str]):
801
+ """
802
+ :param Sequence[str] resource_types: The resource types to run the detector on.
803
+ """
804
+ pulumi.set(__self__, "resource_types", resource_types)
805
+
806
+ @property
807
+ @pulumi.getter(name="resourceTypes")
808
+ def resource_types(self) -> Sequence[str]:
809
+ """
810
+ The resource types to run the detector on.
811
+ """
812
+ return pulumi.get(self, "resource_types")
813
+
814
+
815
+ @pulumi.output_type
816
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfig(dict):
817
+ @staticmethod
818
+ def __key_warning(key: str):
819
+ suggest = None
820
+ if key == "resourceSelector":
821
+ suggest = "resource_selector"
822
+ elif key == "customOutput":
823
+ suggest = "custom_output"
824
+
825
+ if suggest:
826
+ pulumi.log.warn(f"Key '{key}' not found in ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfig. Access the value via the '{suggest}' property getter instead.")
827
+
828
+ def __getitem__(self, key: str) -> Any:
829
+ ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfig.__key_warning(key)
830
+ return super().__getitem__(key)
831
+
832
+ def get(self, key: str, default = None) -> Any:
833
+ ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfig.__key_warning(key)
834
+ return super().get(key, default)
835
+
836
+ def __init__(__self__, *,
837
+ predicate: 'outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicate',
838
+ recommendation: str,
839
+ resource_selector: 'outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector',
840
+ severity: str,
841
+ custom_output: Optional['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput'] = None,
842
+ description: Optional[str] = None):
843
+ """
844
+ :param 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs' predicate: The CEL expression to evaluate to produce findings. When the expression evaluates
845
+ to true against a resource, a finding is generated.
846
+ Structure is documented below.
847
+ :param str recommendation: An explanation of the recommended steps that security teams can take to resolve
848
+ the detected issue. This explanation is returned with each finding generated by
849
+ this module in the nextSteps property of the finding JSON.
850
+ :param 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs' resource_selector: The resource types that the custom module operates on. Each custom module
851
+ can specify up to 5 resource types.
852
+ Structure is documented below.
853
+ :param str severity: The severity to assign to findings generated by the module.
854
+ Possible values are: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
855
+ :param 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputArgs' custom_output: Custom output properties.
856
+ Structure is documented below.
857
+ :param str description: Text that describes the vulnerability or misconfiguration that the custom
858
+ module detects. This explanation is returned with each finding instance to
859
+ help investigators understand the detected issue. The text must be enclosed in quotation marks.
860
+ """
861
+ pulumi.set(__self__, "predicate", predicate)
862
+ pulumi.set(__self__, "recommendation", recommendation)
863
+ pulumi.set(__self__, "resource_selector", resource_selector)
864
+ pulumi.set(__self__, "severity", severity)
865
+ if custom_output is not None:
866
+ pulumi.set(__self__, "custom_output", custom_output)
867
+ if description is not None:
868
+ pulumi.set(__self__, "description", description)
869
+
870
+ @property
871
+ @pulumi.getter
872
+ def predicate(self) -> 'outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicate':
873
+ """
874
+ The CEL expression to evaluate to produce findings. When the expression evaluates
875
+ to true against a resource, a finding is generated.
876
+ Structure is documented below.
877
+ """
878
+ return pulumi.get(self, "predicate")
879
+
880
+ @property
881
+ @pulumi.getter
882
+ def recommendation(self) -> str:
883
+ """
884
+ An explanation of the recommended steps that security teams can take to resolve
885
+ the detected issue. This explanation is returned with each finding generated by
886
+ this module in the nextSteps property of the finding JSON.
887
+ """
888
+ return pulumi.get(self, "recommendation")
889
+
890
+ @property
891
+ @pulumi.getter(name="resourceSelector")
892
+ def resource_selector(self) -> 'outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector':
893
+ """
894
+ The resource types that the custom module operates on. Each custom module
895
+ can specify up to 5 resource types.
896
+ Structure is documented below.
897
+ """
898
+ return pulumi.get(self, "resource_selector")
899
+
900
+ @property
901
+ @pulumi.getter
902
+ def severity(self) -> str:
903
+ """
904
+ The severity to assign to findings generated by the module.
905
+ Possible values are: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
906
+ """
907
+ return pulumi.get(self, "severity")
908
+
909
+ @property
910
+ @pulumi.getter(name="customOutput")
911
+ def custom_output(self) -> Optional['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput']:
912
+ """
913
+ Custom output properties.
914
+ Structure is documented below.
915
+ """
916
+ return pulumi.get(self, "custom_output")
917
+
918
+ @property
919
+ @pulumi.getter
920
+ def description(self) -> Optional[str]:
921
+ """
922
+ Text that describes the vulnerability or misconfiguration that the custom
923
+ module detects. This explanation is returned with each finding instance to
924
+ help investigators understand the detected issue. The text must be enclosed in quotation marks.
925
+ """
926
+ return pulumi.get(self, "description")
927
+
928
+
929
+ @pulumi.output_type
930
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput(dict):
931
+ def __init__(__self__, *,
932
+ properties: Optional[Sequence['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty']] = None):
933
+ """
934
+ :param Sequence['ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyArgs'] properties: A list of custom output properties to add to the finding.
935
+ Structure is documented below.
936
+ """
937
+ if properties is not None:
938
+ pulumi.set(__self__, "properties", properties)
939
+
940
+ @property
941
+ @pulumi.getter
942
+ def properties(self) -> Optional[Sequence['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty']]:
943
+ """
944
+ A list of custom output properties to add to the finding.
945
+ Structure is documented below.
946
+ """
947
+ return pulumi.get(self, "properties")
948
+
949
+
950
+ @pulumi.output_type
951
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty(dict):
952
+ @staticmethod
953
+ def __key_warning(key: str):
954
+ suggest = None
955
+ if key == "valueExpression":
956
+ suggest = "value_expression"
957
+
958
+ if suggest:
959
+ pulumi.log.warn(f"Key '{key}' not found in ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty. Access the value via the '{suggest}' property getter instead.")
960
+
961
+ def __getitem__(self, key: str) -> Any:
962
+ ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty.__key_warning(key)
963
+ return super().__getitem__(key)
964
+
965
+ def get(self, key: str, default = None) -> Any:
966
+ ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty.__key_warning(key)
967
+ return super().get(key, default)
968
+
969
+ def __init__(__self__, *,
970
+ name: Optional[str] = None,
971
+ value_expression: Optional['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression'] = None):
972
+ """
973
+ :param str name: Name of the property for the custom output.
974
+ :param 'ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpressionArgs' value_expression: The CEL expression for the custom output. A resource property can be specified
975
+ to return the value of the property or a text string enclosed in quotation marks.
976
+ Structure is documented below.
977
+ """
978
+ if name is not None:
979
+ pulumi.set(__self__, "name", name)
980
+ if value_expression is not None:
981
+ pulumi.set(__self__, "value_expression", value_expression)
982
+
983
+ @property
984
+ @pulumi.getter
985
+ def name(self) -> Optional[str]:
986
+ """
987
+ Name of the property for the custom output.
988
+ """
989
+ return pulumi.get(self, "name")
990
+
991
+ @property
992
+ @pulumi.getter(name="valueExpression")
993
+ def value_expression(self) -> Optional['outputs.ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression']:
994
+ """
995
+ The CEL expression for the custom output. A resource property can be specified
996
+ to return the value of the property or a text string enclosed in quotation marks.
997
+ Structure is documented below.
998
+ """
999
+ return pulumi.get(self, "value_expression")
1000
+
1001
+
1002
+ @pulumi.output_type
1003
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression(dict):
1004
+ def __init__(__self__, *,
1005
+ expression: str,
1006
+ description: Optional[str] = None,
1007
+ location: Optional[str] = None,
1008
+ title: Optional[str] = None):
1009
+ """
1010
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
1011
+ :param str description: Description of the expression. This is a longer text which describes the
1012
+ expression, e.g. when hovered over it in a UI.
1013
+ :param str location: String indicating the location of the expression for error reporting, e.g. a
1014
+ file name and a position in the file.
1015
+ :param str title: Title for the expression, i.e. a short string describing its purpose. This can
1016
+ be used e.g. in UIs which allow to enter the expression.
1017
+ """
1018
+ pulumi.set(__self__, "expression", expression)
1019
+ if description is not None:
1020
+ pulumi.set(__self__, "description", description)
1021
+ if location is not None:
1022
+ pulumi.set(__self__, "location", location)
1023
+ if title is not None:
1024
+ pulumi.set(__self__, "title", title)
1025
+
1026
+ @property
1027
+ @pulumi.getter
1028
+ def expression(self) -> str:
1029
+ """
1030
+ Textual representation of an expression in Common Expression Language syntax.
1031
+ """
1032
+ return pulumi.get(self, "expression")
1033
+
1034
+ @property
1035
+ @pulumi.getter
1036
+ def description(self) -> Optional[str]:
1037
+ """
1038
+ Description of the expression. This is a longer text which describes the
1039
+ expression, e.g. when hovered over it in a UI.
1040
+ """
1041
+ return pulumi.get(self, "description")
1042
+
1043
+ @property
1044
+ @pulumi.getter
1045
+ def location(self) -> Optional[str]:
1046
+ """
1047
+ String indicating the location of the expression for error reporting, e.g. a
1048
+ file name and a position in the file.
1049
+ """
1050
+ return pulumi.get(self, "location")
1051
+
1052
+ @property
1053
+ @pulumi.getter
1054
+ def title(self) -> Optional[str]:
1055
+ """
1056
+ Title for the expression, i.e. a short string describing its purpose. This can
1057
+ be used e.g. in UIs which allow to enter the expression.
1058
+ """
1059
+ return pulumi.get(self, "title")
1060
+
1061
+
1062
+ @pulumi.output_type
1063
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigPredicate(dict):
1064
+ def __init__(__self__, *,
1065
+ expression: str,
1066
+ description: Optional[str] = None,
1067
+ location: Optional[str] = None,
1068
+ title: Optional[str] = None):
1069
+ """
1070
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
1071
+ :param str description: Description of the expression. This is a longer text which describes the
1072
+ expression, e.g. when hovered over it in a UI.
1073
+ :param str location: String indicating the location of the expression for error reporting, e.g. a
1074
+ file name and a position in the file.
1075
+ :param str title: Title for the expression, i.e. a short string describing its purpose. This can
1076
+ be used e.g. in UIs which allow to enter the expression.
1077
+ """
1078
+ pulumi.set(__self__, "expression", expression)
1079
+ if description is not None:
1080
+ pulumi.set(__self__, "description", description)
1081
+ if location is not None:
1082
+ pulumi.set(__self__, "location", location)
1083
+ if title is not None:
1084
+ pulumi.set(__self__, "title", title)
1085
+
1086
+ @property
1087
+ @pulumi.getter
1088
+ def expression(self) -> str:
1089
+ """
1090
+ Textual representation of an expression in Common Expression Language syntax.
1091
+ """
1092
+ return pulumi.get(self, "expression")
1093
+
1094
+ @property
1095
+ @pulumi.getter
1096
+ def description(self) -> Optional[str]:
1097
+ """
1098
+ Description of the expression. This is a longer text which describes the
1099
+ expression, e.g. when hovered over it in a UI.
1100
+ """
1101
+ return pulumi.get(self, "description")
1102
+
1103
+ @property
1104
+ @pulumi.getter
1105
+ def location(self) -> Optional[str]:
1106
+ """
1107
+ String indicating the location of the expression for error reporting, e.g. a
1108
+ file name and a position in the file.
1109
+ """
1110
+ return pulumi.get(self, "location")
1111
+
1112
+ @property
1113
+ @pulumi.getter
1114
+ def title(self) -> Optional[str]:
1115
+ """
1116
+ Title for the expression, i.e. a short string describing its purpose. This can
1117
+ be used e.g. in UIs which allow to enter the expression.
1118
+ """
1119
+ return pulumi.get(self, "title")
1120
+
1121
+
1122
+ @pulumi.output_type
1123
+ class ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector(dict):
1124
+ @staticmethod
1125
+ def __key_warning(key: str):
1126
+ suggest = None
1127
+ if key == "resourceTypes":
1128
+ suggest = "resource_types"
1129
+
1130
+ if suggest:
1131
+ pulumi.log.warn(f"Key '{key}' not found in ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector. Access the value via the '{suggest}' property getter instead.")
1132
+
1133
+ def __getitem__(self, key: str) -> Any:
1134
+ ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector.__key_warning(key)
1135
+ return super().__getitem__(key)
1136
+
1137
+ def get(self, key: str, default = None) -> Any:
1138
+ ManagementOrganizationSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector.__key_warning(key)
1139
+ return super().get(key, default)
1140
+
1141
+ def __init__(__self__, *,
1142
+ resource_types: Sequence[str]):
1143
+ """
1144
+ :param Sequence[str] resource_types: The resource types to run the detector on.
1145
+ """
1146
+ pulumi.set(__self__, "resource_types", resource_types)
1147
+
1148
+ @property
1149
+ @pulumi.getter(name="resourceTypes")
1150
+ def resource_types(self) -> Sequence[str]:
1151
+ """
1152
+ The resource types to run the detector on.
1153
+ """
1154
+ return pulumi.get(self, "resource_types")
1155
+
1156
+
1157
+ @pulumi.output_type
1158
+ class ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfig(dict):
1159
+ @staticmethod
1160
+ def __key_warning(key: str):
1161
+ suggest = None
1162
+ if key == "resourceSelector":
1163
+ suggest = "resource_selector"
1164
+ elif key == "customOutput":
1165
+ suggest = "custom_output"
1166
+
1167
+ if suggest:
1168
+ pulumi.log.warn(f"Key '{key}' not found in ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfig. Access the value via the '{suggest}' property getter instead.")
1169
+
1170
+ def __getitem__(self, key: str) -> Any:
1171
+ ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfig.__key_warning(key)
1172
+ return super().__getitem__(key)
1173
+
1174
+ def get(self, key: str, default = None) -> Any:
1175
+ ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfig.__key_warning(key)
1176
+ return super().get(key, default)
1177
+
1178
+ def __init__(__self__, *,
1179
+ predicate: 'outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigPredicate',
1180
+ recommendation: str,
1181
+ resource_selector: 'outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector',
1182
+ severity: str,
1183
+ custom_output: Optional['outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput'] = None,
1184
+ description: Optional[str] = None):
1185
+ """
1186
+ :param 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigPredicateArgs' predicate: The CEL expression to evaluate to produce findings. When the expression evaluates
1187
+ to true against a resource, a finding is generated.
1188
+ Structure is documented below.
1189
+ :param str recommendation: An explanation of the recommended steps that security teams can take to resolve
1190
+ the detected issue. This explanation is returned with each finding generated by
1191
+ this module in the nextSteps property of the finding JSON.
1192
+ :param 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelectorArgs' resource_selector: The resource types that the custom module operates on. Each custom module
1193
+ can specify up to 5 resource types.
1194
+ Structure is documented below.
1195
+ :param str severity: The severity to assign to findings generated by the module.
1196
+ Possible values are: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
1197
+ :param 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputArgs' custom_output: Custom output properties.
1198
+ Structure is documented below.
1199
+ :param str description: Text that describes the vulnerability or misconfiguration that the custom
1200
+ module detects. This explanation is returned with each finding instance to
1201
+ help investigators understand the detected issue. The text must be enclosed in quotation marks.
1202
+ """
1203
+ pulumi.set(__self__, "predicate", predicate)
1204
+ pulumi.set(__self__, "recommendation", recommendation)
1205
+ pulumi.set(__self__, "resource_selector", resource_selector)
1206
+ pulumi.set(__self__, "severity", severity)
1207
+ if custom_output is not None:
1208
+ pulumi.set(__self__, "custom_output", custom_output)
1209
+ if description is not None:
1210
+ pulumi.set(__self__, "description", description)
1211
+
1212
+ @property
1213
+ @pulumi.getter
1214
+ def predicate(self) -> 'outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigPredicate':
1215
+ """
1216
+ The CEL expression to evaluate to produce findings. When the expression evaluates
1217
+ to true against a resource, a finding is generated.
1218
+ Structure is documented below.
1219
+ """
1220
+ return pulumi.get(self, "predicate")
1221
+
1222
+ @property
1223
+ @pulumi.getter
1224
+ def recommendation(self) -> str:
1225
+ """
1226
+ An explanation of the recommended steps that security teams can take to resolve
1227
+ the detected issue. This explanation is returned with each finding generated by
1228
+ this module in the nextSteps property of the finding JSON.
1229
+ """
1230
+ return pulumi.get(self, "recommendation")
1231
+
1232
+ @property
1233
+ @pulumi.getter(name="resourceSelector")
1234
+ def resource_selector(self) -> 'outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector':
1235
+ """
1236
+ The resource types that the custom module operates on. Each custom module
1237
+ can specify up to 5 resource types.
1238
+ Structure is documented below.
1239
+ """
1240
+ return pulumi.get(self, "resource_selector")
1241
+
1242
+ @property
1243
+ @pulumi.getter
1244
+ def severity(self) -> str:
1245
+ """
1246
+ The severity to assign to findings generated by the module.
1247
+ Possible values are: `CRITICAL`, `HIGH`, `MEDIUM`, `LOW`.
1248
+ """
1249
+ return pulumi.get(self, "severity")
1250
+
1251
+ @property
1252
+ @pulumi.getter(name="customOutput")
1253
+ def custom_output(self) -> Optional['outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput']:
1254
+ """
1255
+ Custom output properties.
1256
+ Structure is documented below.
1257
+ """
1258
+ return pulumi.get(self, "custom_output")
1259
+
1260
+ @property
1261
+ @pulumi.getter
1262
+ def description(self) -> Optional[str]:
1263
+ """
1264
+ Text that describes the vulnerability or misconfiguration that the custom
1265
+ module detects. This explanation is returned with each finding instance to
1266
+ help investigators understand the detected issue. The text must be enclosed in quotation marks.
1267
+ """
1268
+ return pulumi.get(self, "description")
1269
+
1270
+
1271
+ @pulumi.output_type
1272
+ class ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutput(dict):
1273
+ def __init__(__self__, *,
1274
+ properties: Optional[Sequence['outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty']] = None):
1275
+ """
1276
+ :param Sequence['ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyArgs'] properties: A list of custom output properties to add to the finding.
1277
+ Structure is documented below.
1278
+ """
1279
+ if properties is not None:
1280
+ pulumi.set(__self__, "properties", properties)
1281
+
1282
+ @property
1283
+ @pulumi.getter
1284
+ def properties(self) -> Optional[Sequence['outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty']]:
1285
+ """
1286
+ A list of custom output properties to add to the finding.
1287
+ Structure is documented below.
1288
+ """
1289
+ return pulumi.get(self, "properties")
1290
+
1291
+
1292
+ @pulumi.output_type
1293
+ class ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty(dict):
1294
+ @staticmethod
1295
+ def __key_warning(key: str):
1296
+ suggest = None
1297
+ if key == "valueExpression":
1298
+ suggest = "value_expression"
1299
+
1300
+ if suggest:
1301
+ pulumi.log.warn(f"Key '{key}' not found in ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty. Access the value via the '{suggest}' property getter instead.")
1302
+
1303
+ def __getitem__(self, key: str) -> Any:
1304
+ ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty.__key_warning(key)
1305
+ return super().__getitem__(key)
1306
+
1307
+ def get(self, key: str, default = None) -> Any:
1308
+ ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputProperty.__key_warning(key)
1309
+ return super().get(key, default)
1310
+
1311
+ def __init__(__self__, *,
1312
+ name: Optional[str] = None,
1313
+ value_expression: Optional['outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression'] = None):
1314
+ """
1315
+ :param str name: Name of the property for the custom output.
1316
+ :param 'ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpressionArgs' value_expression: The CEL expression for the custom output. A resource property can be specified
1317
+ to return the value of the property or a text string enclosed in quotation marks.
1318
+ Structure is documented below.
1319
+ """
1320
+ if name is not None:
1321
+ pulumi.set(__self__, "name", name)
1322
+ if value_expression is not None:
1323
+ pulumi.set(__self__, "value_expression", value_expression)
1324
+
1325
+ @property
1326
+ @pulumi.getter
1327
+ def name(self) -> Optional[str]:
1328
+ """
1329
+ Name of the property for the custom output.
1330
+ """
1331
+ return pulumi.get(self, "name")
1332
+
1333
+ @property
1334
+ @pulumi.getter(name="valueExpression")
1335
+ def value_expression(self) -> Optional['outputs.ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression']:
1336
+ """
1337
+ The CEL expression for the custom output. A resource property can be specified
1338
+ to return the value of the property or a text string enclosed in quotation marks.
1339
+ Structure is documented below.
1340
+ """
1341
+ return pulumi.get(self, "value_expression")
1342
+
1343
+
1344
+ @pulumi.output_type
1345
+ class ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigCustomOutputPropertyValueExpression(dict):
1346
+ def __init__(__self__, *,
1347
+ expression: str,
1348
+ description: Optional[str] = None,
1349
+ location: Optional[str] = None,
1350
+ title: Optional[str] = None):
1351
+ """
1352
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
1353
+ :param str description: Description of the expression. This is a longer text which describes the
1354
+ expression, e.g. when hovered over it in a UI.
1355
+ :param str location: String indicating the location of the expression for error reporting, e.g. a
1356
+ file name and a position in the file.
1357
+ :param str title: Title for the expression, i.e. a short string describing its purpose. This can
1358
+ be used e.g. in UIs which allow to enter the expression.
1359
+ """
1360
+ pulumi.set(__self__, "expression", expression)
1361
+ if description is not None:
1362
+ pulumi.set(__self__, "description", description)
1363
+ if location is not None:
1364
+ pulumi.set(__self__, "location", location)
1365
+ if title is not None:
1366
+ pulumi.set(__self__, "title", title)
1367
+
1368
+ @property
1369
+ @pulumi.getter
1370
+ def expression(self) -> str:
1371
+ """
1372
+ Textual representation of an expression in Common Expression Language syntax.
1373
+ """
1374
+ return pulumi.get(self, "expression")
1375
+
1376
+ @property
1377
+ @pulumi.getter
1378
+ def description(self) -> Optional[str]:
1379
+ """
1380
+ Description of the expression. This is a longer text which describes the
1381
+ expression, e.g. when hovered over it in a UI.
1382
+ """
1383
+ return pulumi.get(self, "description")
1384
+
1385
+ @property
1386
+ @pulumi.getter
1387
+ def location(self) -> Optional[str]:
1388
+ """
1389
+ String indicating the location of the expression for error reporting, e.g. a
1390
+ file name and a position in the file.
1391
+ """
1392
+ return pulumi.get(self, "location")
1393
+
1394
+ @property
1395
+ @pulumi.getter
1396
+ def title(self) -> Optional[str]:
1397
+ """
1398
+ Title for the expression, i.e. a short string describing its purpose. This can
1399
+ be used e.g. in UIs which allow to enter the expression.
1400
+ """
1401
+ return pulumi.get(self, "title")
1402
+
1403
+
1404
+ @pulumi.output_type
1405
+ class ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigPredicate(dict):
1406
+ def __init__(__self__, *,
1407
+ expression: str,
1408
+ description: Optional[str] = None,
1409
+ location: Optional[str] = None,
1410
+ title: Optional[str] = None):
1411
+ """
1412
+ :param str expression: Textual representation of an expression in Common Expression Language syntax.
1413
+ :param str description: Description of the expression. This is a longer text which describes the
1414
+ expression, e.g. when hovered over it in a UI.
1415
+ :param str location: String indicating the location of the expression for error reporting, e.g. a
1416
+ file name and a position in the file.
1417
+ :param str title: Title for the expression, i.e. a short string describing its purpose. This can
1418
+ be used e.g. in UIs which allow to enter the expression.
1419
+ """
1420
+ pulumi.set(__self__, "expression", expression)
1421
+ if description is not None:
1422
+ pulumi.set(__self__, "description", description)
1423
+ if location is not None:
1424
+ pulumi.set(__self__, "location", location)
1425
+ if title is not None:
1426
+ pulumi.set(__self__, "title", title)
1427
+
1428
+ @property
1429
+ @pulumi.getter
1430
+ def expression(self) -> str:
1431
+ """
1432
+ Textual representation of an expression in Common Expression Language syntax.
1433
+ """
1434
+ return pulumi.get(self, "expression")
1435
+
1436
+ @property
1437
+ @pulumi.getter
1438
+ def description(self) -> Optional[str]:
1439
+ """
1440
+ Description of the expression. This is a longer text which describes the
1441
+ expression, e.g. when hovered over it in a UI.
1442
+ """
1443
+ return pulumi.get(self, "description")
1444
+
1445
+ @property
1446
+ @pulumi.getter
1447
+ def location(self) -> Optional[str]:
1448
+ """
1449
+ String indicating the location of the expression for error reporting, e.g. a
1450
+ file name and a position in the file.
1451
+ """
1452
+ return pulumi.get(self, "location")
1453
+
1454
+ @property
1455
+ @pulumi.getter
1456
+ def title(self) -> Optional[str]:
1457
+ """
1458
+ Title for the expression, i.e. a short string describing its purpose. This can
1459
+ be used e.g. in UIs which allow to enter the expression.
1460
+ """
1461
+ return pulumi.get(self, "title")
1462
+
1463
+
1464
+ @pulumi.output_type
1465
+ class ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector(dict):
1466
+ @staticmethod
1467
+ def __key_warning(key: str):
1468
+ suggest = None
1469
+ if key == "resourceTypes":
1470
+ suggest = "resource_types"
1471
+
1472
+ if suggest:
1473
+ pulumi.log.warn(f"Key '{key}' not found in ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector. Access the value via the '{suggest}' property getter instead.")
1474
+
1475
+ def __getitem__(self, key: str) -> Any:
1476
+ ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector.__key_warning(key)
1477
+ return super().__getitem__(key)
1478
+
1479
+ def get(self, key: str, default = None) -> Any:
1480
+ ManagementProjectSecurityHealthAnalyticsCustomModuleCustomConfigResourceSelector.__key_warning(key)
1481
+ return super().get(key, default)
1482
+
1483
+ def __init__(__self__, *,
1484
+ resource_types: Sequence[str]):
1485
+ """
1486
+ :param Sequence[str] resource_types: The resource types to run the detector on.
1487
+ """
1488
+ pulumi.set(__self__, "resource_types", resource_types)
1489
+
1490
+ @property
1491
+ @pulumi.getter(name="resourceTypes")
1492
+ def resource_types(self) -> Sequence[str]:
1493
+ """
1494
+ The resource types to run the detector on.
1495
+ """
1496
+ return pulumi.get(self, "resource_types")
1497
+
1498
+
451
1499
  @pulumi.output_type
452
1500
  class NotificationConfigStreamingConfig(dict):
453
1501
  def __init__(__self__, *,