pulumiverse-scaleway 1.33.0a1755026511__py3-none-any.whl → 1.34.0__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 (52) hide show
  1. pulumiverse_scaleway/__init__.py +8 -0
  2. pulumiverse_scaleway/_inputs.py +235 -34
  3. pulumiverse_scaleway/cockpit.py +14 -0
  4. pulumiverse_scaleway/container_namespace.py +16 -7
  5. pulumiverse_scaleway/containers/namespace.py +16 -7
  6. pulumiverse_scaleway/database_user.py +83 -11
  7. pulumiverse_scaleway/databases/user.py +83 -11
  8. pulumiverse_scaleway/elasticmetal/outputs.py +4 -0
  9. pulumiverse_scaleway/function_namespace.py +16 -7
  10. pulumiverse_scaleway/functions/namespace.py +16 -7
  11. pulumiverse_scaleway/get_mongo_db_instance.py +34 -1
  12. pulumiverse_scaleway/hosting/_inputs.py +42 -0
  13. pulumiverse_scaleway/hosting/outputs.py +84 -0
  14. pulumiverse_scaleway/instance/_inputs.py +107 -13
  15. pulumiverse_scaleway/instance/outputs.py +187 -10
  16. pulumiverse_scaleway/instance/security_group_rules.py +16 -16
  17. pulumiverse_scaleway/instance/snapshot.py +26 -27
  18. pulumiverse_scaleway/instance_security_group_rules.py +16 -16
  19. pulumiverse_scaleway/instance_snapshot.py +26 -27
  20. pulumiverse_scaleway/loadbalancer_backend.py +39 -0
  21. pulumiverse_scaleway/loadbalancers/backend.py +39 -0
  22. pulumiverse_scaleway/loadbalancers/outputs.py +16 -0
  23. pulumiverse_scaleway/mnq/_inputs.py +52 -0
  24. pulumiverse_scaleway/mnq/outputs.py +47 -0
  25. pulumiverse_scaleway/mnq/sqs_queue.py +159 -0
  26. pulumiverse_scaleway/mnq_sqs_queue.py +159 -0
  27. pulumiverse_scaleway/mongo_db_instance.py +171 -23
  28. pulumiverse_scaleway/mongo_db_snapshot.py +2 -2
  29. pulumiverse_scaleway/mongodb/__init__.py +1 -0
  30. pulumiverse_scaleway/mongodb/_inputs.py +73 -0
  31. pulumiverse_scaleway/mongodb/get_instance.py +34 -1
  32. pulumiverse_scaleway/mongodb/instance.py +171 -23
  33. pulumiverse_scaleway/mongodb/outputs.py +62 -0
  34. pulumiverse_scaleway/mongodb/snapshot.py +2 -2
  35. pulumiverse_scaleway/mongodb/user.py +508 -0
  36. pulumiverse_scaleway/network/outputs.py +4 -0
  37. pulumiverse_scaleway/object/_inputs.py +14 -0
  38. pulumiverse_scaleway/object/bucket.py +13 -0
  39. pulumiverse_scaleway/object/outputs.py +30 -0
  40. pulumiverse_scaleway/object_bucket.py +13 -0
  41. pulumiverse_scaleway/observability/__init__.py +1 -0
  42. pulumiverse_scaleway/observability/cockpit.py +14 -0
  43. pulumiverse_scaleway/observability/get_sources.py +376 -0
  44. pulumiverse_scaleway/observability/outputs.py +140 -0
  45. pulumiverse_scaleway/outputs.py +387 -26
  46. pulumiverse_scaleway/pulumi-plugin.json +1 -1
  47. pulumiverse_scaleway/secret.py +8 -0
  48. pulumiverse_scaleway/secrets/secret.py +8 -0
  49. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/METADATA +1 -1
  50. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/RECORD +52 -50
  51. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/WHEEL +0 -0
  52. {pulumiverse_scaleway-1.33.0a1755026511.dist-info → pulumiverse_scaleway-1.34.0.dist-info}/top_level.txt +0 -0
@@ -14,6 +14,8 @@ if sys.version_info >= (3, 11):
14
14
  else:
15
15
  from typing_extensions import NotRequired, TypedDict, TypeAlias
16
16
  from .. import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
17
19
 
18
20
  __all__ = ['SqsQueueArgs', 'SqsQueue']
19
21
 
@@ -23,6 +25,7 @@ class SqsQueueArgs:
23
25
  access_key: pulumi.Input[builtins.str],
24
26
  secret_key: pulumi.Input[builtins.str],
25
27
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
28
+ dead_letter_queue: Optional[pulumi.Input['SqsQueueDeadLetterQueueArgs']] = None,
26
29
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
27
30
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
28
31
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -38,6 +41,7 @@ class SqsQueueArgs:
38
41
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
39
42
  :param pulumi.Input[builtins.str] secret_key: The secret key of the SQS queue.
40
43
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
44
+ :param pulumi.Input['SqsQueueDeadLetterQueueArgs'] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
41
45
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
42
46
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
43
47
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -53,6 +57,8 @@ class SqsQueueArgs:
53
57
  pulumi.set(__self__, "secret_key", secret_key)
54
58
  if content_based_deduplication is not None:
55
59
  pulumi.set(__self__, "content_based_deduplication", content_based_deduplication)
60
+ if dead_letter_queue is not None:
61
+ pulumi.set(__self__, "dead_letter_queue", dead_letter_queue)
56
62
  if fifo_queue is not None:
57
63
  pulumi.set(__self__, "fifo_queue", fifo_queue)
58
64
  if message_max_age is not None:
@@ -110,6 +116,18 @@ class SqsQueueArgs:
110
116
  def content_based_deduplication(self, value: Optional[pulumi.Input[builtins.bool]]):
111
117
  pulumi.set(self, "content_based_deduplication", value)
112
118
 
119
+ @property
120
+ @pulumi.getter(name="deadLetterQueue")
121
+ def dead_letter_queue(self) -> Optional[pulumi.Input['SqsQueueDeadLetterQueueArgs']]:
122
+ """
123
+ Configuration for the dead letter queue. See Dead Letter Queue below for details.
124
+ """
125
+ return pulumi.get(self, "dead_letter_queue")
126
+
127
+ @dead_letter_queue.setter
128
+ def dead_letter_queue(self, value: Optional[pulumi.Input['SqsQueueDeadLetterQueueArgs']]):
129
+ pulumi.set(self, "dead_letter_queue", value)
130
+
113
131
  @property
114
132
  @pulumi.getter(name="fifoQueue")
115
133
  def fifo_queue(self) -> Optional[pulumi.Input[builtins.bool]]:
@@ -235,7 +253,9 @@ class SqsQueueArgs:
235
253
  class _SqsQueueState:
236
254
  def __init__(__self__, *,
237
255
  access_key: Optional[pulumi.Input[builtins.str]] = None,
256
+ arn: Optional[pulumi.Input[builtins.str]] = None,
238
257
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
258
+ dead_letter_queue: Optional[pulumi.Input['SqsQueueDeadLetterQueueArgs']] = None,
239
259
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
240
260
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
241
261
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -251,7 +271,9 @@ class _SqsQueueState:
251
271
  """
252
272
  Input properties used for looking up and filtering SqsQueue resources.
253
273
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
274
+ :param pulumi.Input[builtins.str] arn: The ARN of the queue
254
275
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
276
+ :param pulumi.Input['SqsQueueDeadLetterQueueArgs'] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
255
277
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
256
278
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
257
279
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -267,8 +289,12 @@ class _SqsQueueState:
267
289
  """
268
290
  if access_key is not None:
269
291
  pulumi.set(__self__, "access_key", access_key)
292
+ if arn is not None:
293
+ pulumi.set(__self__, "arn", arn)
270
294
  if content_based_deduplication is not None:
271
295
  pulumi.set(__self__, "content_based_deduplication", content_based_deduplication)
296
+ if dead_letter_queue is not None:
297
+ pulumi.set(__self__, "dead_letter_queue", dead_letter_queue)
272
298
  if fifo_queue is not None:
273
299
  pulumi.set(__self__, "fifo_queue", fifo_queue)
274
300
  if message_max_age is not None:
@@ -306,6 +332,18 @@ class _SqsQueueState:
306
332
  def access_key(self, value: Optional[pulumi.Input[builtins.str]]):
307
333
  pulumi.set(self, "access_key", value)
308
334
 
335
+ @property
336
+ @pulumi.getter
337
+ def arn(self) -> Optional[pulumi.Input[builtins.str]]:
338
+ """
339
+ The ARN of the queue
340
+ """
341
+ return pulumi.get(self, "arn")
342
+
343
+ @arn.setter
344
+ def arn(self, value: Optional[pulumi.Input[builtins.str]]):
345
+ pulumi.set(self, "arn", value)
346
+
309
347
  @property
310
348
  @pulumi.getter(name="contentBasedDeduplication")
311
349
  def content_based_deduplication(self) -> Optional[pulumi.Input[builtins.bool]]:
@@ -318,6 +356,18 @@ class _SqsQueueState:
318
356
  def content_based_deduplication(self, value: Optional[pulumi.Input[builtins.bool]]):
319
357
  pulumi.set(self, "content_based_deduplication", value)
320
358
 
359
+ @property
360
+ @pulumi.getter(name="deadLetterQueue")
361
+ def dead_letter_queue(self) -> Optional[pulumi.Input['SqsQueueDeadLetterQueueArgs']]:
362
+ """
363
+ Configuration for the dead letter queue. See Dead Letter Queue below for details.
364
+ """
365
+ return pulumi.get(self, "dead_letter_queue")
366
+
367
+ @dead_letter_queue.setter
368
+ def dead_letter_queue(self, value: Optional[pulumi.Input['SqsQueueDeadLetterQueueArgs']]):
369
+ pulumi.set(self, "dead_letter_queue", value)
370
+
321
371
  @property
322
372
  @pulumi.getter(name="fifoQueue")
323
373
  def fifo_queue(self) -> Optional[pulumi.Input[builtins.bool]]:
@@ -471,6 +521,7 @@ class SqsQueue(pulumi.CustomResource):
471
521
  opts: Optional[pulumi.ResourceOptions] = None,
472
522
  access_key: Optional[pulumi.Input[builtins.str]] = None,
473
523
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
524
+ dead_letter_queue: Optional[pulumi.Input[Union['SqsQueueDeadLetterQueueArgs', 'SqsQueueDeadLetterQueueArgsDict']]] = None,
474
525
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
475
526
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
476
527
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -513,10 +564,52 @@ class SqsQueue(pulumi.CustomResource):
513
564
  secret_key=main_sqs_credentials.secret_key)
514
565
  ```
515
566
 
567
+ ### With Dead Letter Queue
568
+
569
+ ```python
570
+ import pulumi
571
+ import pulumiverse_scaleway as scaleway
572
+
573
+ main = scaleway.mnq.Sqs("main")
574
+ main_sqs_credentials = scaleway.mnq.SqsCredentials("main",
575
+ project_id=main.project_id,
576
+ name="sqs-credentials",
577
+ permissions={
578
+ "can_manage": True,
579
+ "can_receive": False,
580
+ "can_publish": False,
581
+ })
582
+ dead_letter = scaleway.mnq.SqsQueue("dead_letter",
583
+ project_id=main.project_id,
584
+ name="dead-letter-queue",
585
+ sqs_endpoint=main.endpoint,
586
+ access_key=main_sqs_credentials.access_key,
587
+ secret_key=main_sqs_credentials.secret_key)
588
+ main_sqs_queue = scaleway.mnq.SqsQueue("main",
589
+ project_id=main.project_id,
590
+ name="my-queue",
591
+ sqs_endpoint=main.endpoint,
592
+ access_key=main_sqs_credentials.access_key,
593
+ secret_key=main_sqs_credentials.secret_key,
594
+ dead_letter_queue={
595
+ "id": dead_letter.id,
596
+ "max_receive_count": 3,
597
+ })
598
+ ```
599
+
600
+ ## Dead Letter Queue
601
+
602
+ The `dead_letter_queue` block supports the following:
603
+
604
+ - `id` - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`.
605
+
606
+ - `max_receive_count` - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000.
607
+
516
608
  :param str resource_name: The name of the resource.
517
609
  :param pulumi.ResourceOptions opts: Options for the resource.
518
610
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
519
611
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
612
+ :param pulumi.Input[Union['SqsQueueDeadLetterQueueArgs', 'SqsQueueDeadLetterQueueArgsDict']] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
520
613
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
521
614
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
522
615
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -565,6 +658,47 @@ class SqsQueue(pulumi.CustomResource):
565
658
  secret_key=main_sqs_credentials.secret_key)
566
659
  ```
567
660
 
661
+ ### With Dead Letter Queue
662
+
663
+ ```python
664
+ import pulumi
665
+ import pulumiverse_scaleway as scaleway
666
+
667
+ main = scaleway.mnq.Sqs("main")
668
+ main_sqs_credentials = scaleway.mnq.SqsCredentials("main",
669
+ project_id=main.project_id,
670
+ name="sqs-credentials",
671
+ permissions={
672
+ "can_manage": True,
673
+ "can_receive": False,
674
+ "can_publish": False,
675
+ })
676
+ dead_letter = scaleway.mnq.SqsQueue("dead_letter",
677
+ project_id=main.project_id,
678
+ name="dead-letter-queue",
679
+ sqs_endpoint=main.endpoint,
680
+ access_key=main_sqs_credentials.access_key,
681
+ secret_key=main_sqs_credentials.secret_key)
682
+ main_sqs_queue = scaleway.mnq.SqsQueue("main",
683
+ project_id=main.project_id,
684
+ name="my-queue",
685
+ sqs_endpoint=main.endpoint,
686
+ access_key=main_sqs_credentials.access_key,
687
+ secret_key=main_sqs_credentials.secret_key,
688
+ dead_letter_queue={
689
+ "id": dead_letter.id,
690
+ "max_receive_count": 3,
691
+ })
692
+ ```
693
+
694
+ ## Dead Letter Queue
695
+
696
+ The `dead_letter_queue` block supports the following:
697
+
698
+ - `id` - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`.
699
+
700
+ - `max_receive_count` - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000.
701
+
568
702
  :param str resource_name: The name of the resource.
569
703
  :param SqsQueueArgs args: The arguments to use to populate this resource's properties.
570
704
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -582,6 +716,7 @@ class SqsQueue(pulumi.CustomResource):
582
716
  opts: Optional[pulumi.ResourceOptions] = None,
583
717
  access_key: Optional[pulumi.Input[builtins.str]] = None,
584
718
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
719
+ dead_letter_queue: Optional[pulumi.Input[Union['SqsQueueDeadLetterQueueArgs', 'SqsQueueDeadLetterQueueArgsDict']]] = None,
585
720
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
586
721
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
587
722
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -606,6 +741,7 @@ class SqsQueue(pulumi.CustomResource):
606
741
  raise TypeError("Missing required property 'access_key'")
607
742
  __props__.__dict__["access_key"] = None if access_key is None else pulumi.Output.secret(access_key)
608
743
  __props__.__dict__["content_based_deduplication"] = content_based_deduplication
744
+ __props__.__dict__["dead_letter_queue"] = dead_letter_queue
609
745
  __props__.__dict__["fifo_queue"] = fifo_queue
610
746
  __props__.__dict__["message_max_age"] = message_max_age
611
747
  __props__.__dict__["message_max_size"] = message_max_size
@@ -619,6 +755,7 @@ class SqsQueue(pulumi.CustomResource):
619
755
  __props__.__dict__["secret_key"] = None if secret_key is None else pulumi.Output.secret(secret_key)
620
756
  __props__.__dict__["sqs_endpoint"] = sqs_endpoint
621
757
  __props__.__dict__["visibility_timeout_seconds"] = visibility_timeout_seconds
758
+ __props__.__dict__["arn"] = None
622
759
  __props__.__dict__["url"] = None
623
760
  alias_opts = pulumi.ResourceOptions(aliases=[pulumi.Alias(type_="scaleway:index/mnqSqsQueue:MnqSqsQueue")])
624
761
  opts = pulumi.ResourceOptions.merge(opts, alias_opts)
@@ -635,7 +772,9 @@ class SqsQueue(pulumi.CustomResource):
635
772
  id: pulumi.Input[str],
636
773
  opts: Optional[pulumi.ResourceOptions] = None,
637
774
  access_key: Optional[pulumi.Input[builtins.str]] = None,
775
+ arn: Optional[pulumi.Input[builtins.str]] = None,
638
776
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
777
+ dead_letter_queue: Optional[pulumi.Input[Union['SqsQueueDeadLetterQueueArgs', 'SqsQueueDeadLetterQueueArgsDict']]] = None,
639
778
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
640
779
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
641
780
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -656,7 +795,9 @@ class SqsQueue(pulumi.CustomResource):
656
795
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
657
796
  :param pulumi.ResourceOptions opts: Options for the resource.
658
797
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
798
+ :param pulumi.Input[builtins.str] arn: The ARN of the queue
659
799
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
800
+ :param pulumi.Input[Union['SqsQueueDeadLetterQueueArgs', 'SqsQueueDeadLetterQueueArgsDict']] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
660
801
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
661
802
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
662
803
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -675,7 +816,9 @@ class SqsQueue(pulumi.CustomResource):
675
816
  __props__ = _SqsQueueState.__new__(_SqsQueueState)
676
817
 
677
818
  __props__.__dict__["access_key"] = access_key
819
+ __props__.__dict__["arn"] = arn
678
820
  __props__.__dict__["content_based_deduplication"] = content_based_deduplication
821
+ __props__.__dict__["dead_letter_queue"] = dead_letter_queue
679
822
  __props__.__dict__["fifo_queue"] = fifo_queue
680
823
  __props__.__dict__["message_max_age"] = message_max_age
681
824
  __props__.__dict__["message_max_size"] = message_max_size
@@ -698,6 +841,14 @@ class SqsQueue(pulumi.CustomResource):
698
841
  """
699
842
  return pulumi.get(self, "access_key")
700
843
 
844
+ @property
845
+ @pulumi.getter
846
+ def arn(self) -> pulumi.Output[builtins.str]:
847
+ """
848
+ The ARN of the queue
849
+ """
850
+ return pulumi.get(self, "arn")
851
+
701
852
  @property
702
853
  @pulumi.getter(name="contentBasedDeduplication")
703
854
  def content_based_deduplication(self) -> pulumi.Output[builtins.bool]:
@@ -706,6 +857,14 @@ class SqsQueue(pulumi.CustomResource):
706
857
  """
707
858
  return pulumi.get(self, "content_based_deduplication")
708
859
 
860
+ @property
861
+ @pulumi.getter(name="deadLetterQueue")
862
+ def dead_letter_queue(self) -> pulumi.Output[Optional['outputs.SqsQueueDeadLetterQueue']]:
863
+ """
864
+ Configuration for the dead letter queue. See Dead Letter Queue below for details.
865
+ """
866
+ return pulumi.get(self, "dead_letter_queue")
867
+
709
868
  @property
710
869
  @pulumi.getter(name="fifoQueue")
711
870
  def fifo_queue(self) -> pulumi.Output[builtins.bool]:
@@ -14,6 +14,8 @@ if sys.version_info >= (3, 11):
14
14
  else:
15
15
  from typing_extensions import NotRequired, TypedDict, TypeAlias
16
16
  from . import _utilities
17
+ from . import outputs
18
+ from ._inputs import *
17
19
 
18
20
  __all__ = ['MnqSqsQueueArgs', 'MnqSqsQueue']
19
21
 
@@ -23,6 +25,7 @@ class MnqSqsQueueArgs:
23
25
  access_key: pulumi.Input[builtins.str],
24
26
  secret_key: pulumi.Input[builtins.str],
25
27
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
28
+ dead_letter_queue: Optional[pulumi.Input['MnqSqsQueueDeadLetterQueueArgs']] = None,
26
29
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
27
30
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
28
31
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -38,6 +41,7 @@ class MnqSqsQueueArgs:
38
41
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
39
42
  :param pulumi.Input[builtins.str] secret_key: The secret key of the SQS queue.
40
43
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
44
+ :param pulumi.Input['MnqSqsQueueDeadLetterQueueArgs'] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
41
45
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
42
46
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
43
47
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -53,6 +57,8 @@ class MnqSqsQueueArgs:
53
57
  pulumi.set(__self__, "secret_key", secret_key)
54
58
  if content_based_deduplication is not None:
55
59
  pulumi.set(__self__, "content_based_deduplication", content_based_deduplication)
60
+ if dead_letter_queue is not None:
61
+ pulumi.set(__self__, "dead_letter_queue", dead_letter_queue)
56
62
  if fifo_queue is not None:
57
63
  pulumi.set(__self__, "fifo_queue", fifo_queue)
58
64
  if message_max_age is not None:
@@ -110,6 +116,18 @@ class MnqSqsQueueArgs:
110
116
  def content_based_deduplication(self, value: Optional[pulumi.Input[builtins.bool]]):
111
117
  pulumi.set(self, "content_based_deduplication", value)
112
118
 
119
+ @property
120
+ @pulumi.getter(name="deadLetterQueue")
121
+ def dead_letter_queue(self) -> Optional[pulumi.Input['MnqSqsQueueDeadLetterQueueArgs']]:
122
+ """
123
+ Configuration for the dead letter queue. See Dead Letter Queue below for details.
124
+ """
125
+ return pulumi.get(self, "dead_letter_queue")
126
+
127
+ @dead_letter_queue.setter
128
+ def dead_letter_queue(self, value: Optional[pulumi.Input['MnqSqsQueueDeadLetterQueueArgs']]):
129
+ pulumi.set(self, "dead_letter_queue", value)
130
+
113
131
  @property
114
132
  @pulumi.getter(name="fifoQueue")
115
133
  def fifo_queue(self) -> Optional[pulumi.Input[builtins.bool]]:
@@ -235,7 +253,9 @@ class MnqSqsQueueArgs:
235
253
  class _MnqSqsQueueState:
236
254
  def __init__(__self__, *,
237
255
  access_key: Optional[pulumi.Input[builtins.str]] = None,
256
+ arn: Optional[pulumi.Input[builtins.str]] = None,
238
257
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
258
+ dead_letter_queue: Optional[pulumi.Input['MnqSqsQueueDeadLetterQueueArgs']] = None,
239
259
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
240
260
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
241
261
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -251,7 +271,9 @@ class _MnqSqsQueueState:
251
271
  """
252
272
  Input properties used for looking up and filtering MnqSqsQueue resources.
253
273
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
274
+ :param pulumi.Input[builtins.str] arn: The ARN of the queue
254
275
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
276
+ :param pulumi.Input['MnqSqsQueueDeadLetterQueueArgs'] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
255
277
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
256
278
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
257
279
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -267,8 +289,12 @@ class _MnqSqsQueueState:
267
289
  """
268
290
  if access_key is not None:
269
291
  pulumi.set(__self__, "access_key", access_key)
292
+ if arn is not None:
293
+ pulumi.set(__self__, "arn", arn)
270
294
  if content_based_deduplication is not None:
271
295
  pulumi.set(__self__, "content_based_deduplication", content_based_deduplication)
296
+ if dead_letter_queue is not None:
297
+ pulumi.set(__self__, "dead_letter_queue", dead_letter_queue)
272
298
  if fifo_queue is not None:
273
299
  pulumi.set(__self__, "fifo_queue", fifo_queue)
274
300
  if message_max_age is not None:
@@ -306,6 +332,18 @@ class _MnqSqsQueueState:
306
332
  def access_key(self, value: Optional[pulumi.Input[builtins.str]]):
307
333
  pulumi.set(self, "access_key", value)
308
334
 
335
+ @property
336
+ @pulumi.getter
337
+ def arn(self) -> Optional[pulumi.Input[builtins.str]]:
338
+ """
339
+ The ARN of the queue
340
+ """
341
+ return pulumi.get(self, "arn")
342
+
343
+ @arn.setter
344
+ def arn(self, value: Optional[pulumi.Input[builtins.str]]):
345
+ pulumi.set(self, "arn", value)
346
+
309
347
  @property
310
348
  @pulumi.getter(name="contentBasedDeduplication")
311
349
  def content_based_deduplication(self) -> Optional[pulumi.Input[builtins.bool]]:
@@ -318,6 +356,18 @@ class _MnqSqsQueueState:
318
356
  def content_based_deduplication(self, value: Optional[pulumi.Input[builtins.bool]]):
319
357
  pulumi.set(self, "content_based_deduplication", value)
320
358
 
359
+ @property
360
+ @pulumi.getter(name="deadLetterQueue")
361
+ def dead_letter_queue(self) -> Optional[pulumi.Input['MnqSqsQueueDeadLetterQueueArgs']]:
362
+ """
363
+ Configuration for the dead letter queue. See Dead Letter Queue below for details.
364
+ """
365
+ return pulumi.get(self, "dead_letter_queue")
366
+
367
+ @dead_letter_queue.setter
368
+ def dead_letter_queue(self, value: Optional[pulumi.Input['MnqSqsQueueDeadLetterQueueArgs']]):
369
+ pulumi.set(self, "dead_letter_queue", value)
370
+
321
371
  @property
322
372
  @pulumi.getter(name="fifoQueue")
323
373
  def fifo_queue(self) -> Optional[pulumi.Input[builtins.bool]]:
@@ -476,6 +526,7 @@ class MnqSqsQueue(pulumi.CustomResource):
476
526
  opts: Optional[pulumi.ResourceOptions] = None,
477
527
  access_key: Optional[pulumi.Input[builtins.str]] = None,
478
528
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
529
+ dead_letter_queue: Optional[pulumi.Input[Union['MnqSqsQueueDeadLetterQueueArgs', 'MnqSqsQueueDeadLetterQueueArgsDict']]] = None,
479
530
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
480
531
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
481
532
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -518,10 +569,52 @@ class MnqSqsQueue(pulumi.CustomResource):
518
569
  secret_key=main_sqs_credentials.secret_key)
519
570
  ```
520
571
 
572
+ ### With Dead Letter Queue
573
+
574
+ ```python
575
+ import pulumi
576
+ import pulumiverse_scaleway as scaleway
577
+
578
+ main = scaleway.mnq.Sqs("main")
579
+ main_sqs_credentials = scaleway.mnq.SqsCredentials("main",
580
+ project_id=main.project_id,
581
+ name="sqs-credentials",
582
+ permissions={
583
+ "can_manage": True,
584
+ "can_receive": False,
585
+ "can_publish": False,
586
+ })
587
+ dead_letter = scaleway.mnq.SqsQueue("dead_letter",
588
+ project_id=main.project_id,
589
+ name="dead-letter-queue",
590
+ sqs_endpoint=main.endpoint,
591
+ access_key=main_sqs_credentials.access_key,
592
+ secret_key=main_sqs_credentials.secret_key)
593
+ main_sqs_queue = scaleway.mnq.SqsQueue("main",
594
+ project_id=main.project_id,
595
+ name="my-queue",
596
+ sqs_endpoint=main.endpoint,
597
+ access_key=main_sqs_credentials.access_key,
598
+ secret_key=main_sqs_credentials.secret_key,
599
+ dead_letter_queue={
600
+ "id": dead_letter.id,
601
+ "max_receive_count": 3,
602
+ })
603
+ ```
604
+
605
+ ## Dead Letter Queue
606
+
607
+ The `dead_letter_queue` block supports the following:
608
+
609
+ - `id` - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`.
610
+
611
+ - `max_receive_count` - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000.
612
+
521
613
  :param str resource_name: The name of the resource.
522
614
  :param pulumi.ResourceOptions opts: Options for the resource.
523
615
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
524
616
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
617
+ :param pulumi.Input[Union['MnqSqsQueueDeadLetterQueueArgs', 'MnqSqsQueueDeadLetterQueueArgsDict']] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
525
618
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
526
619
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
527
620
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -570,6 +663,47 @@ class MnqSqsQueue(pulumi.CustomResource):
570
663
  secret_key=main_sqs_credentials.secret_key)
571
664
  ```
572
665
 
666
+ ### With Dead Letter Queue
667
+
668
+ ```python
669
+ import pulumi
670
+ import pulumiverse_scaleway as scaleway
671
+
672
+ main = scaleway.mnq.Sqs("main")
673
+ main_sqs_credentials = scaleway.mnq.SqsCredentials("main",
674
+ project_id=main.project_id,
675
+ name="sqs-credentials",
676
+ permissions={
677
+ "can_manage": True,
678
+ "can_receive": False,
679
+ "can_publish": False,
680
+ })
681
+ dead_letter = scaleway.mnq.SqsQueue("dead_letter",
682
+ project_id=main.project_id,
683
+ name="dead-letter-queue",
684
+ sqs_endpoint=main.endpoint,
685
+ access_key=main_sqs_credentials.access_key,
686
+ secret_key=main_sqs_credentials.secret_key)
687
+ main_sqs_queue = scaleway.mnq.SqsQueue("main",
688
+ project_id=main.project_id,
689
+ name="my-queue",
690
+ sqs_endpoint=main.endpoint,
691
+ access_key=main_sqs_credentials.access_key,
692
+ secret_key=main_sqs_credentials.secret_key,
693
+ dead_letter_queue={
694
+ "id": dead_letter.id,
695
+ "max_receive_count": 3,
696
+ })
697
+ ```
698
+
699
+ ## Dead Letter Queue
700
+
701
+ The `dead_letter_queue` block supports the following:
702
+
703
+ - `id` - (Required) The ID of the dead letter queue. Can be either in the format `{region}/{project-id}/{queue-name}` or `arn:scw:sqs:{region}:project-{project-id}:{queue-name}`.
704
+
705
+ - `max_receive_count` - (Required) The number of times a message is delivered to the source queue before being moved to the dead letter queue. Must be between 1 and 1000.
706
+
573
707
  :param str resource_name: The name of the resource.
574
708
  :param MnqSqsQueueArgs args: The arguments to use to populate this resource's properties.
575
709
  :param pulumi.ResourceOptions opts: Options for the resource.
@@ -587,6 +721,7 @@ class MnqSqsQueue(pulumi.CustomResource):
587
721
  opts: Optional[pulumi.ResourceOptions] = None,
588
722
  access_key: Optional[pulumi.Input[builtins.str]] = None,
589
723
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
724
+ dead_letter_queue: Optional[pulumi.Input[Union['MnqSqsQueueDeadLetterQueueArgs', 'MnqSqsQueueDeadLetterQueueArgsDict']]] = None,
590
725
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
591
726
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
592
727
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -612,6 +747,7 @@ class MnqSqsQueue(pulumi.CustomResource):
612
747
  raise TypeError("Missing required property 'access_key'")
613
748
  __props__.__dict__["access_key"] = None if access_key is None else pulumi.Output.secret(access_key)
614
749
  __props__.__dict__["content_based_deduplication"] = content_based_deduplication
750
+ __props__.__dict__["dead_letter_queue"] = dead_letter_queue
615
751
  __props__.__dict__["fifo_queue"] = fifo_queue
616
752
  __props__.__dict__["message_max_age"] = message_max_age
617
753
  __props__.__dict__["message_max_size"] = message_max_size
@@ -625,6 +761,7 @@ class MnqSqsQueue(pulumi.CustomResource):
625
761
  __props__.__dict__["secret_key"] = None if secret_key is None else pulumi.Output.secret(secret_key)
626
762
  __props__.__dict__["sqs_endpoint"] = sqs_endpoint
627
763
  __props__.__dict__["visibility_timeout_seconds"] = visibility_timeout_seconds
764
+ __props__.__dict__["arn"] = None
628
765
  __props__.__dict__["url"] = None
629
766
  secret_opts = pulumi.ResourceOptions(additional_secret_outputs=["accessKey", "secretKey"])
630
767
  opts = pulumi.ResourceOptions.merge(opts, secret_opts)
@@ -639,7 +776,9 @@ class MnqSqsQueue(pulumi.CustomResource):
639
776
  id: pulumi.Input[str],
640
777
  opts: Optional[pulumi.ResourceOptions] = None,
641
778
  access_key: Optional[pulumi.Input[builtins.str]] = None,
779
+ arn: Optional[pulumi.Input[builtins.str]] = None,
642
780
  content_based_deduplication: Optional[pulumi.Input[builtins.bool]] = None,
781
+ dead_letter_queue: Optional[pulumi.Input[Union['MnqSqsQueueDeadLetterQueueArgs', 'MnqSqsQueueDeadLetterQueueArgsDict']]] = None,
643
782
  fifo_queue: Optional[pulumi.Input[builtins.bool]] = None,
644
783
  message_max_age: Optional[pulumi.Input[builtins.int]] = None,
645
784
  message_max_size: Optional[pulumi.Input[builtins.int]] = None,
@@ -660,7 +799,9 @@ class MnqSqsQueue(pulumi.CustomResource):
660
799
  :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
661
800
  :param pulumi.ResourceOptions opts: Options for the resource.
662
801
  :param pulumi.Input[builtins.str] access_key: The access key of the SQS queue.
802
+ :param pulumi.Input[builtins.str] arn: The ARN of the queue
663
803
  :param pulumi.Input[builtins.bool] content_based_deduplication: Specifies whether to enable content-based deduplication. Defaults to `false`.
804
+ :param pulumi.Input[Union['MnqSqsQueueDeadLetterQueueArgs', 'MnqSqsQueueDeadLetterQueueArgsDict']] dead_letter_queue: Configuration for the dead letter queue. See Dead Letter Queue below for details.
664
805
  :param pulumi.Input[builtins.bool] fifo_queue: Whether the queue is a FIFO queue. If true, the queue name must end with .fifo. Defaults to `false`.
665
806
  :param pulumi.Input[builtins.int] message_max_age: The number of seconds the queue retains a message. Must be between 60 and 1_209_600. Defaults to 345_600.
666
807
  :param pulumi.Input[builtins.int] message_max_size: The maximum size of a message. Should be in bytes. Must be between 1024 and 262_144. Defaults to 262_144.
@@ -679,7 +820,9 @@ class MnqSqsQueue(pulumi.CustomResource):
679
820
  __props__ = _MnqSqsQueueState.__new__(_MnqSqsQueueState)
680
821
 
681
822
  __props__.__dict__["access_key"] = access_key
823
+ __props__.__dict__["arn"] = arn
682
824
  __props__.__dict__["content_based_deduplication"] = content_based_deduplication
825
+ __props__.__dict__["dead_letter_queue"] = dead_letter_queue
683
826
  __props__.__dict__["fifo_queue"] = fifo_queue
684
827
  __props__.__dict__["message_max_age"] = message_max_age
685
828
  __props__.__dict__["message_max_size"] = message_max_size
@@ -702,6 +845,14 @@ class MnqSqsQueue(pulumi.CustomResource):
702
845
  """
703
846
  return pulumi.get(self, "access_key")
704
847
 
848
+ @property
849
+ @pulumi.getter
850
+ def arn(self) -> pulumi.Output[builtins.str]:
851
+ """
852
+ The ARN of the queue
853
+ """
854
+ return pulumi.get(self, "arn")
855
+
705
856
  @property
706
857
  @pulumi.getter(name="contentBasedDeduplication")
707
858
  def content_based_deduplication(self) -> pulumi.Output[builtins.bool]:
@@ -710,6 +861,14 @@ class MnqSqsQueue(pulumi.CustomResource):
710
861
  """
711
862
  return pulumi.get(self, "content_based_deduplication")
712
863
 
864
+ @property
865
+ @pulumi.getter(name="deadLetterQueue")
866
+ def dead_letter_queue(self) -> pulumi.Output[Optional['outputs.MnqSqsQueueDeadLetterQueue']]:
867
+ """
868
+ Configuration for the dead letter queue. See Dead Letter Queue below for details.
869
+ """
870
+ return pulumi.get(self, "dead_letter_queue")
871
+
713
872
  @property
714
873
  @pulumi.getter(name="fifoQueue")
715
874
  def fifo_queue(self) -> pulumi.Output[builtins.bool]: