pulumi-cloudamqp 3.18.0a1710156088__py3-none-any.whl → 3.21.0a1736849154__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.

Potentially problematic release.


This version of pulumi-cloudamqp might be problematic. Click here for more details.

Files changed (48) hide show
  1. pulumi_cloudamqp/__init__.py +9 -0
  2. pulumi_cloudamqp/_inputs.py +157 -6
  3. pulumi_cloudamqp/_utilities.py +41 -5
  4. pulumi_cloudamqp/account_action.py +5 -0
  5. pulumi_cloudamqp/alarm.py +5 -130
  6. pulumi_cloudamqp/config/__init__.pyi +5 -0
  7. pulumi_cloudamqp/config/vars.py +5 -0
  8. pulumi_cloudamqp/custom_domain.py +7 -6
  9. pulumi_cloudamqp/extra_disk_size.py +44 -31
  10. pulumi_cloudamqp/get_account.py +12 -77
  11. pulumi_cloudamqp/get_account_vpcs.py +12 -9
  12. pulumi_cloudamqp/get_alarm.py +29 -11
  13. pulumi_cloudamqp/get_credentials.py +17 -11
  14. pulumi_cloudamqp/get_instance.py +30 -5
  15. pulumi_cloudamqp/get_nodes.py +20 -11
  16. pulumi_cloudamqp/get_notification.py +23 -11
  17. pulumi_cloudamqp/get_plugins.py +49 -14
  18. pulumi_cloudamqp/get_plugins_community.py +49 -14
  19. pulumi_cloudamqp/get_upgradable_versions.py +17 -11
  20. pulumi_cloudamqp/get_vpc_gcp_info.py +26 -17
  21. pulumi_cloudamqp/get_vpc_info.py +23 -17
  22. pulumi_cloudamqp/instance.py +68 -147
  23. pulumi_cloudamqp/integration_aws_eventbridge.py +9 -6
  24. pulumi_cloudamqp/integration_log.py +120 -121
  25. pulumi_cloudamqp/integration_metric.py +326 -23
  26. pulumi_cloudamqp/node_actions.py +57 -58
  27. pulumi_cloudamqp/notification.py +114 -87
  28. pulumi_cloudamqp/outputs.py +71 -60
  29. pulumi_cloudamqp/plugin.py +54 -35
  30. pulumi_cloudamqp/plugin_community.py +54 -35
  31. pulumi_cloudamqp/privatelink_aws.py +43 -74
  32. pulumi_cloudamqp/privatelink_azure.py +43 -74
  33. pulumi_cloudamqp/provider.py +5 -5
  34. pulumi_cloudamqp/pulumi-plugin.json +2 -1
  35. pulumi_cloudamqp/rabbit_configuration.py +5 -0
  36. pulumi_cloudamqp/security_firewall.py +70 -24
  37. pulumi_cloudamqp/upgrade_lavinmq.py +276 -0
  38. pulumi_cloudamqp/upgrade_rabbitmq.py +300 -39
  39. pulumi_cloudamqp/vpc.py +13 -6
  40. pulumi_cloudamqp/vpc_connect.py +57 -102
  41. pulumi_cloudamqp/vpc_gcp_peering.py +260 -139
  42. pulumi_cloudamqp/vpc_peering.py +19 -2
  43. pulumi_cloudamqp/webhook.py +91 -90
  44. {pulumi_cloudamqp-3.18.0a1710156088.dist-info → pulumi_cloudamqp-3.21.0a1736849154.dist-info}/METADATA +7 -6
  45. pulumi_cloudamqp-3.21.0a1736849154.dist-info/RECORD +49 -0
  46. {pulumi_cloudamqp-3.18.0a1710156088.dist-info → pulumi_cloudamqp-3.21.0a1736849154.dist-info}/WHEEL +1 -1
  47. pulumi_cloudamqp-3.18.0a1710156088.dist-info/RECORD +0 -48
  48. {pulumi_cloudamqp-3.18.0a1710156088.dist-info → pulumi_cloudamqp-3.21.0a1736849154.dist-info}/top_level.txt +0 -0
@@ -4,9 +4,14 @@
4
4
 
5
5
  import copy
6
6
  import warnings
7
+ import sys
7
8
  import pulumi
8
9
  import pulumi.runtime
9
10
  from typing import Any, Mapping, Optional, Sequence, Union, overload
11
+ if sys.version_info >= (3, 11):
12
+ from typing import NotRequired, TypedDict, TypeAlias
13
+ else:
14
+ from typing_extensions import NotRequired, TypedDict, TypeAlias
10
15
  from . import _utilities
11
16
 
12
17
  __all__ = ['IntegrationMetricArgs', 'IntegrationMetric']
@@ -273,13 +278,11 @@ class IntegrationMetricArgs:
273
278
 
274
279
  @property
275
280
  @pulumi.getter(name="queueWhitelist")
281
+ @_utilities.deprecated("""use queue_allowlist instead""")
276
282
  def queue_whitelist(self) -> Optional[pulumi.Input[str]]:
277
283
  """
278
284
  **Deprecated**
279
285
  """
280
- warnings.warn("""use queue_allowlist instead""", DeprecationWarning)
281
- pulumi.log.warn("""queue_whitelist is deprecated: use queue_allowlist instead""")
282
-
283
286
  return pulumi.get(self, "queue_whitelist")
284
287
 
285
288
  @queue_whitelist.setter
@@ -336,13 +339,11 @@ class IntegrationMetricArgs:
336
339
 
337
340
  @property
338
341
  @pulumi.getter(name="vhostWhitelist")
342
+ @_utilities.deprecated("""use vhost_allowlist instead""")
339
343
  def vhost_whitelist(self) -> Optional[pulumi.Input[str]]:
340
344
  """
341
345
  **Deprecated**
342
346
  """
343
- warnings.warn("""use vhost_allowlist instead""", DeprecationWarning)
344
- pulumi.log.warn("""vhost_whitelist is deprecated: use vhost_allowlist instead""")
345
-
346
347
  return pulumi.get(self, "vhost_whitelist")
347
348
 
348
349
  @vhost_whitelist.setter
@@ -613,13 +614,11 @@ class _IntegrationMetricState:
613
614
 
614
615
  @property
615
616
  @pulumi.getter(name="queueWhitelist")
617
+ @_utilities.deprecated("""use queue_allowlist instead""")
616
618
  def queue_whitelist(self) -> Optional[pulumi.Input[str]]:
617
619
  """
618
620
  **Deprecated**
619
621
  """
620
- warnings.warn("""use queue_allowlist instead""", DeprecationWarning)
621
- pulumi.log.warn("""queue_whitelist is deprecated: use queue_allowlist instead""")
622
-
623
622
  return pulumi.get(self, "queue_whitelist")
624
623
 
625
624
  @queue_whitelist.setter
@@ -676,13 +675,11 @@ class _IntegrationMetricState:
676
675
 
677
676
  @property
678
677
  @pulumi.getter(name="vhostWhitelist")
678
+ @_utilities.deprecated("""use vhost_allowlist instead""")
679
679
  def vhost_whitelist(self) -> Optional[pulumi.Input[str]]:
680
680
  """
681
681
  **Deprecated**
682
682
  """
683
- warnings.warn("""use vhost_allowlist instead""", DeprecationWarning)
684
- pulumi.log.warn("""vhost_whitelist is deprecated: use vhost_allowlist instead""")
685
-
686
683
  return pulumi.get(self, "vhost_whitelist")
687
684
 
688
685
  @vhost_whitelist.setter
@@ -717,7 +714,162 @@ class IntegrationMetric(pulumi.CustomResource):
717
714
  vhost_whitelist: Optional[pulumi.Input[str]] = None,
718
715
  __props__=None):
719
716
  """
720
- Create a IntegrationMetric resource with the given unique name, props, and options.
717
+ This resource allows you to create and manage, forwarding metrics to third party integrations for a CloudAMQP instance. Once configured, the metrics produced will be forward to corresponding integration.
718
+
719
+ Only available for dedicated subscription plans.
720
+
721
+ ## Example Usage
722
+
723
+ <details>
724
+ <summary>
725
+ <b>
726
+ <i>Cloudwatch v1 and v2 metric integration</i>
727
+ </b>
728
+ </summary>
729
+
730
+ ***Access key***
731
+
732
+ ```python
733
+ import pulumi
734
+ import pulumi_cloudamqp as cloudamqp
735
+
736
+ cloudwatch = cloudamqp.IntegrationMetric("cloudwatch",
737
+ instance_id=instance["id"],
738
+ name="cloudwatch",
739
+ access_key_id=aws_access_key_id,
740
+ secret_access_key=var_aws_secret_acccess_key,
741
+ region=aws_region)
742
+ cloudwatch_v2 = cloudamqp.IntegrationMetric("cloudwatch_v2",
743
+ instance_id=instance["id"],
744
+ name="cloudwatch_v2",
745
+ access_key_id=aws_access_key_id,
746
+ secret_access_key=var_aws_secret_acccess_key,
747
+ region=aws_region)
748
+ ```
749
+
750
+ ***Assume role***
751
+
752
+ ```python
753
+ import pulumi
754
+ import pulumi_cloudamqp as cloudamqp
755
+
756
+ cloudwatch = cloudamqp.IntegrationMetric("cloudwatch",
757
+ instance_id=instance["id"],
758
+ name="cloudwatch",
759
+ iam_role=aws_iam_role,
760
+ iam_external_id=external_id,
761
+ region=aws_region)
762
+ cloudwatch_v2 = cloudamqp.IntegrationMetric("cloudwatch_v2",
763
+ instance_id=instance["id"],
764
+ name="cloudwatch_v2",
765
+ iam_role=aws_iam_role,
766
+ iam_external_id=external_id,
767
+ region=aws_region)
768
+ ```
769
+
770
+ * AWS IAM role: arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME
771
+ * External id: Create own external identifier that match the role created. E.g. "cloudamqp-abc123".
772
+
773
+ </details>
774
+
775
+ <details>
776
+ <summary>
777
+ <b>
778
+ <i>Datadog v1 and v2 metric integration</i>
779
+ </b>
780
+ </summary>
781
+
782
+ ```python
783
+ import pulumi
784
+ import pulumi_cloudamqp as cloudamqp
785
+
786
+ datadog = cloudamqp.IntegrationMetric("datadog",
787
+ instance_id=instance["id"],
788
+ name="datadog",
789
+ api_key=datadog_api_key,
790
+ region=datadog_region,
791
+ tags="env=prod,region=us1,version=v1.0")
792
+ datadog_v2 = cloudamqp.IntegrationMetric("datadog_v2",
793
+ instance_id=instance["id"],
794
+ name="datadog_v2",
795
+ api_key=datadog_api_key,
796
+ region=datadog_region,
797
+ tags="env=prod,region=us1,version=v1.0")
798
+ ```
799
+
800
+ </details>
801
+
802
+ <details>
803
+ <summary>
804
+ <b>
805
+ <i>Librato metric integration</i>
806
+ </b>
807
+ </summary>
808
+
809
+ ```python
810
+ import pulumi
811
+ import pulumi_cloudamqp as cloudamqp
812
+
813
+ librato = cloudamqp.IntegrationMetric("librato",
814
+ instance_id=instance["id"],
815
+ name="librato",
816
+ email=librato_email,
817
+ api_key=librato_api_key)
818
+ ```
819
+
820
+ </details>
821
+
822
+ <details>
823
+ <summary>
824
+ <b>
825
+ <i>New relic v2 metric integration</i>
826
+ </b>
827
+ </summary>
828
+
829
+ ```python
830
+ import pulumi
831
+ import pulumi_cloudamqp as cloudamqp
832
+
833
+ newrelic = cloudamqp.IntegrationMetric("newrelic",
834
+ instance_id=instance["id"],
835
+ name="newrelic_v2",
836
+ api_key=newrelic_api_key,
837
+ region=newrelic_region)
838
+ ```
839
+
840
+ </details>
841
+
842
+ <details>
843
+ <summary>
844
+ <b>
845
+ <i>Stackdriver metric integration (v1.20.2 or earlier versions)</i>
846
+ </b>
847
+ </summary>
848
+
849
+ Use variable file populated with project_id, private_key and client_email
850
+
851
+ ```python
852
+ import pulumi
853
+ import pulumi_cloudamqp as cloudamqp
854
+
855
+ stackdriver = cloudamqp.IntegrationMetric("stackdriver",
856
+ instance_id=instance["id"],
857
+ name="stackdriver",
858
+ project_id=stackdriver_project_id,
859
+ private_key=stackdriver_private_key,
860
+ client_email=stackriver_email)
861
+ ```
862
+
863
+ or by using google_service_account_key resource from Google provider
864
+
865
+ ## Import
866
+
867
+ `cloudamqp_integration_metric`can be imported using the resource identifier together with CloudAMQP instance identifier. The name and identifier are CSV separated, see example below.
868
+
869
+ ```sh
870
+ $ pulumi import cloudamqp:index/integrationMetric:IntegrationMetric <resource_name> <resource_id>,<instance_id>`
871
+ ```
872
+
721
873
  :param str resource_name: The name of the resource.
722
874
  :param pulumi.ResourceOptions opts: Options for the resource.
723
875
  :param pulumi.Input[str] access_key_id: AWS access key identifier. (Cloudwatch)
@@ -748,7 +900,162 @@ class IntegrationMetric(pulumi.CustomResource):
748
900
  args: IntegrationMetricArgs,
749
901
  opts: Optional[pulumi.ResourceOptions] = None):
750
902
  """
751
- Create a IntegrationMetric resource with the given unique name, props, and options.
903
+ This resource allows you to create and manage, forwarding metrics to third party integrations for a CloudAMQP instance. Once configured, the metrics produced will be forward to corresponding integration.
904
+
905
+ Only available for dedicated subscription plans.
906
+
907
+ ## Example Usage
908
+
909
+ <details>
910
+ <summary>
911
+ <b>
912
+ <i>Cloudwatch v1 and v2 metric integration</i>
913
+ </b>
914
+ </summary>
915
+
916
+ ***Access key***
917
+
918
+ ```python
919
+ import pulumi
920
+ import pulumi_cloudamqp as cloudamqp
921
+
922
+ cloudwatch = cloudamqp.IntegrationMetric("cloudwatch",
923
+ instance_id=instance["id"],
924
+ name="cloudwatch",
925
+ access_key_id=aws_access_key_id,
926
+ secret_access_key=var_aws_secret_acccess_key,
927
+ region=aws_region)
928
+ cloudwatch_v2 = cloudamqp.IntegrationMetric("cloudwatch_v2",
929
+ instance_id=instance["id"],
930
+ name="cloudwatch_v2",
931
+ access_key_id=aws_access_key_id,
932
+ secret_access_key=var_aws_secret_acccess_key,
933
+ region=aws_region)
934
+ ```
935
+
936
+ ***Assume role***
937
+
938
+ ```python
939
+ import pulumi
940
+ import pulumi_cloudamqp as cloudamqp
941
+
942
+ cloudwatch = cloudamqp.IntegrationMetric("cloudwatch",
943
+ instance_id=instance["id"],
944
+ name="cloudwatch",
945
+ iam_role=aws_iam_role,
946
+ iam_external_id=external_id,
947
+ region=aws_region)
948
+ cloudwatch_v2 = cloudamqp.IntegrationMetric("cloudwatch_v2",
949
+ instance_id=instance["id"],
950
+ name="cloudwatch_v2",
951
+ iam_role=aws_iam_role,
952
+ iam_external_id=external_id,
953
+ region=aws_region)
954
+ ```
955
+
956
+ * AWS IAM role: arn:aws:iam::ACCOUNT-ID:role/ROLE-NAME
957
+ * External id: Create own external identifier that match the role created. E.g. "cloudamqp-abc123".
958
+
959
+ </details>
960
+
961
+ <details>
962
+ <summary>
963
+ <b>
964
+ <i>Datadog v1 and v2 metric integration</i>
965
+ </b>
966
+ </summary>
967
+
968
+ ```python
969
+ import pulumi
970
+ import pulumi_cloudamqp as cloudamqp
971
+
972
+ datadog = cloudamqp.IntegrationMetric("datadog",
973
+ instance_id=instance["id"],
974
+ name="datadog",
975
+ api_key=datadog_api_key,
976
+ region=datadog_region,
977
+ tags="env=prod,region=us1,version=v1.0")
978
+ datadog_v2 = cloudamqp.IntegrationMetric("datadog_v2",
979
+ instance_id=instance["id"],
980
+ name="datadog_v2",
981
+ api_key=datadog_api_key,
982
+ region=datadog_region,
983
+ tags="env=prod,region=us1,version=v1.0")
984
+ ```
985
+
986
+ </details>
987
+
988
+ <details>
989
+ <summary>
990
+ <b>
991
+ <i>Librato metric integration</i>
992
+ </b>
993
+ </summary>
994
+
995
+ ```python
996
+ import pulumi
997
+ import pulumi_cloudamqp as cloudamqp
998
+
999
+ librato = cloudamqp.IntegrationMetric("librato",
1000
+ instance_id=instance["id"],
1001
+ name="librato",
1002
+ email=librato_email,
1003
+ api_key=librato_api_key)
1004
+ ```
1005
+
1006
+ </details>
1007
+
1008
+ <details>
1009
+ <summary>
1010
+ <b>
1011
+ <i>New relic v2 metric integration</i>
1012
+ </b>
1013
+ </summary>
1014
+
1015
+ ```python
1016
+ import pulumi
1017
+ import pulumi_cloudamqp as cloudamqp
1018
+
1019
+ newrelic = cloudamqp.IntegrationMetric("newrelic",
1020
+ instance_id=instance["id"],
1021
+ name="newrelic_v2",
1022
+ api_key=newrelic_api_key,
1023
+ region=newrelic_region)
1024
+ ```
1025
+
1026
+ </details>
1027
+
1028
+ <details>
1029
+ <summary>
1030
+ <b>
1031
+ <i>Stackdriver metric integration (v1.20.2 or earlier versions)</i>
1032
+ </b>
1033
+ </summary>
1034
+
1035
+ Use variable file populated with project_id, private_key and client_email
1036
+
1037
+ ```python
1038
+ import pulumi
1039
+ import pulumi_cloudamqp as cloudamqp
1040
+
1041
+ stackdriver = cloudamqp.IntegrationMetric("stackdriver",
1042
+ instance_id=instance["id"],
1043
+ name="stackdriver",
1044
+ project_id=stackdriver_project_id,
1045
+ private_key=stackdriver_private_key,
1046
+ client_email=stackriver_email)
1047
+ ```
1048
+
1049
+ or by using google_service_account_key resource from Google provider
1050
+
1051
+ ## Import
1052
+
1053
+ `cloudamqp_integration_metric`can be imported using the resource identifier together with CloudAMQP instance identifier. The name and identifier are CSV separated, see example below.
1054
+
1055
+ ```sh
1056
+ $ pulumi import cloudamqp:index/integrationMetric:IntegrationMetric <resource_name> <resource_id>,<instance_id>`
1057
+ ```
1058
+
752
1059
  :param str resource_name: The name of the resource.
753
1060
  :param IntegrationMetricArgs args: The arguments to use to populate this resource's properties.
754
1061
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -794,7 +1101,7 @@ class IntegrationMetric(pulumi.CustomResource):
794
1101
  __props__ = IntegrationMetricArgs.__new__(IntegrationMetricArgs)
795
1102
 
796
1103
  __props__.__dict__["access_key_id"] = access_key_id
797
- __props__.__dict__["api_key"] = api_key
1104
+ __props__.__dict__["api_key"] = None if api_key is None else pulumi.Output.secret(api_key)
798
1105
  __props__.__dict__["client_email"] = client_email
799
1106
  __props__.__dict__["credentials"] = None if credentials is None else pulumi.Output.secret(credentials)
800
1107
  __props__.__dict__["email"] = email
@@ -803,7 +1110,7 @@ class IntegrationMetric(pulumi.CustomResource):
803
1110
  if instance_id is None and not opts.urn:
804
1111
  raise TypeError("Missing required property 'instance_id'")
805
1112
  __props__.__dict__["instance_id"] = instance_id
806
- __props__.__dict__["license_key"] = license_key
1113
+ __props__.__dict__["license_key"] = None if license_key is None else pulumi.Output.secret(license_key)
807
1114
  __props__.__dict__["name"] = name
808
1115
  __props__.__dict__["private_key"] = None if private_key is None else pulumi.Output.secret(private_key)
809
1116
  __props__.__dict__["private_key_id"] = None if private_key_id is None else pulumi.Output.secret(private_key_id)
@@ -815,7 +1122,7 @@ class IntegrationMetric(pulumi.CustomResource):
815
1122
  __props__.__dict__["tags"] = tags
816
1123
  __props__.__dict__["vhost_allowlist"] = vhost_allowlist
817
1124
  __props__.__dict__["vhost_whitelist"] = vhost_whitelist
818
- secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["credentials", "privateKey", "privateKeyId", "secretAccessKey"])
1125
+ secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["apiKey", "credentials", "licenseKey", "privateKey", "privateKeyId", "secretAccessKey"])
819
1126
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
820
1127
  super(IntegrationMetric, __self__).__init__(
821
1128
  'cloudamqp:index/integrationMetric:IntegrationMetric',
@@ -1015,13 +1322,11 @@ class IntegrationMetric(pulumi.CustomResource):
1015
1322
 
1016
1323
  @property
1017
1324
  @pulumi.getter(name="queueWhitelist")
1325
+ @_utilities.deprecated("""use queue_allowlist instead""")
1018
1326
  def queue_whitelist(self) -> pulumi.Output[Optional[str]]:
1019
1327
  """
1020
1328
  **Deprecated**
1021
1329
  """
1022
- warnings.warn("""use queue_allowlist instead""", DeprecationWarning)
1023
- pulumi.log.warn("""queue_whitelist is deprecated: use queue_allowlist instead""")
1024
-
1025
1330
  return pulumi.get(self, "queue_whitelist")
1026
1331
 
1027
1332
  @property
@@ -1058,12 +1363,10 @@ class IntegrationMetric(pulumi.CustomResource):
1058
1363
 
1059
1364
  @property
1060
1365
  @pulumi.getter(name="vhostWhitelist")
1366
+ @_utilities.deprecated("""use vhost_allowlist instead""")
1061
1367
  def vhost_whitelist(self) -> pulumi.Output[Optional[str]]:
1062
1368
  """
1063
1369
  **Deprecated**
1064
1370
  """
1065
- warnings.warn("""use vhost_allowlist instead""", DeprecationWarning)
1066
- pulumi.log.warn("""vhost_whitelist is deprecated: use vhost_allowlist instead""")
1067
-
1068
1371
  return pulumi.get(self, "vhost_whitelist")
1069
1372