ExchangeArgs

data class ExchangeArgs(val alternateExchange: Output<String>? = null, val autoDeleteState: Output<Boolean>? = null, val exchangeName: Output<String>? = null, val exchangeType: Output<String>? = null, val instanceId: Output<String>? = null, val internal: Output<Boolean>? = null, val virtualHostName: Output<String>? = null, val xDelayedType: Output<String>? = null) : ConvertibleToJava<ExchangeArgs>

Provides a RabbitMQ (AMQP) Exchange resource. For information about RabbitMQ (AMQP) Exchange and how to use it, see What is Exchange.

NOTE: Available since v1.128.0.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as alicloud from "@pulumi/alicloud";
const config = new pulumi.Config();
const name = config.get("name") || "tf-example";
const virtualHostName = config.get("virtualHostName") || "/";
const createInstance = new alicloud.amqp.Instance("CreateInstance", {
renewalDuration: 1,
maxTps: "3000",
periodCycle: "Month",
maxConnections: 2000,
supportEip: true,
autoRenew: false,
renewalStatus: "AutoRenewal",
period: 12,
instanceName: name,
supportTracing: false,
paymentType: "Subscription",
renewalDurationUnit: "Month",
instanceType: "enterprise",
queueCapacity: "200",
maxEipTps: "128",
storageSize: "0",
});
const _default = new alicloud.amqp.Exchange("default", {
virtualHostName: virtualHostName,
instanceId: createInstance.id,
internal: true,
autoDeleteState: false,
exchangeName: name,
exchangeType: "X_CONSISTENT_HASH",
alternateExchange: "bakExchange",
xDelayedType: "DIRECT",
});
import pulumi
import pulumi_alicloud as alicloud
config = pulumi.Config()
name = config.get("name")
if name is None:
name = "tf-example"
virtual_host_name = config.get("virtualHostName")
if virtual_host_name is None:
virtual_host_name = "/"
create_instance = alicloud.amqp.Instance("CreateInstance",
renewal_duration=1,
max_tps="3000",
period_cycle="Month",
max_connections=2000,
support_eip=True,
auto_renew=False,
renewal_status="AutoRenewal",
period=12,
instance_name=name,
support_tracing=False,
payment_type="Subscription",
renewal_duration_unit="Month",
instance_type="enterprise",
queue_capacity="200",
max_eip_tps="128",
storage_size="0")
default = alicloud.amqp.Exchange("default",
virtual_host_name=virtual_host_name,
instance_id=create_instance.id,
internal=True,
auto_delete_state=False,
exchange_name=name,
exchange_type="X_CONSISTENT_HASH",
alternate_exchange="bakExchange",
x_delayed_type="DIRECT")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AliCloud = Pulumi.AliCloud;
return await Deployment.RunAsync(() =>
{
var config = new Config();
var name = config.Get("name") ?? "tf-example";
var virtualHostName = config.Get("virtualHostName") ?? "/";
var createInstance = new AliCloud.Amqp.Instance("CreateInstance", new()
{
RenewalDuration = 1,
MaxTps = "3000",
PeriodCycle = "Month",
MaxConnections = 2000,
SupportEip = true,
AutoRenew = false,
RenewalStatus = "AutoRenewal",
Period = 12,
InstanceName = name,
SupportTracing = false,
PaymentType = "Subscription",
RenewalDurationUnit = "Month",
InstanceType = "enterprise",
QueueCapacity = "200",
MaxEipTps = "128",
StorageSize = "0",
});
var @default = new AliCloud.Amqp.Exchange("default", new()
{
VirtualHostName = virtualHostName,
InstanceId = createInstance.Id,
Internal = true,
AutoDeleteState = false,
ExchangeName = name,
ExchangeType = "X_CONSISTENT_HASH",
AlternateExchange = "bakExchange",
XDelayedType = "DIRECT",
});
});
package main
import (
"github.com/pulumi/pulumi-alicloud/sdk/v3/go/alicloud/amqp"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
cfg := config.New(ctx, "")
name := "tf-example"
if param := cfg.Get("name"); param != "" {
name = param
}
virtualHostName := "/"
if param := cfg.Get("virtualHostName"); param != "" {
virtualHostName = param
}
createInstance, err := amqp.NewInstance(ctx, "CreateInstance", &amqp.InstanceArgs{
RenewalDuration: pulumi.Int(1),
MaxTps: pulumi.String("3000"),
PeriodCycle: pulumi.String("Month"),
MaxConnections: pulumi.Int(2000),
SupportEip: pulumi.Bool(true),
AutoRenew: pulumi.Bool(false),
RenewalStatus: pulumi.String("AutoRenewal"),
Period: pulumi.Int(12),
InstanceName: pulumi.String(name),
SupportTracing: pulumi.Bool(false),
PaymentType: pulumi.String("Subscription"),
RenewalDurationUnit: pulumi.String("Month"),
InstanceType: pulumi.String("enterprise"),
QueueCapacity: pulumi.String("200"),
MaxEipTps: pulumi.String("128"),
StorageSize: pulumi.String("0"),
})
if err != nil {
return err
}
_, err = amqp.NewExchange(ctx, "default", &amqp.ExchangeArgs{
VirtualHostName: pulumi.String(virtualHostName),
InstanceId: createInstance.ID(),
Internal: pulumi.Bool(true),
AutoDeleteState: pulumi.Bool(false),
ExchangeName: pulumi.String(name),
ExchangeType: pulumi.String("X_CONSISTENT_HASH"),
AlternateExchange: pulumi.String("bakExchange"),
XDelayedType: pulumi.String("DIRECT"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.alicloud.amqp.Instance;
import com.pulumi.alicloud.amqp.InstanceArgs;
import com.pulumi.alicloud.amqp.Exchange;
import com.pulumi.alicloud.amqp.ExchangeArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
final var config = ctx.config();
final var name = config.get("name").orElse("tf-example");
final var virtualHostName = config.get("virtualHostName").orElse("/");
var createInstance = new Instance("createInstance", InstanceArgs.builder()
.renewalDuration(1)
.maxTps("3000")
.periodCycle("Month")
.maxConnections(2000)
.supportEip(true)
.autoRenew(false)
.renewalStatus("AutoRenewal")
.period(12)
.instanceName(name)
.supportTracing(false)
.paymentType("Subscription")
.renewalDurationUnit("Month")
.instanceType("enterprise")
.queueCapacity("200")
.maxEipTps("128")
.storageSize("0")
.build());
var default_ = new Exchange("default", ExchangeArgs.builder()
.virtualHostName(virtualHostName)
.instanceId(createInstance.id())
.internal(true)
.autoDeleteState(false)
.exchangeName(name)
.exchangeType("X_CONSISTENT_HASH")
.alternateExchange("bakExchange")
.xDelayedType("DIRECT")
.build());
}
}
configuration:
name:
type: string
default: tf-example
virtualHostName:
type: string
default: /
resources:
createInstance:
type: alicloud:amqp:Instance
name: CreateInstance
properties:
renewalDuration: '1'
maxTps: '3000'
periodCycle: Month
maxConnections: '2000'
supportEip: true
autoRenew: false
renewalStatus: AutoRenewal
period: '12'
instanceName: ${name}
supportTracing: false
paymentType: Subscription
renewalDurationUnit: Month
instanceType: enterprise
queueCapacity: '200'
maxEipTps: '128'
storageSize: '0'
default:
type: alicloud:amqp:Exchange
properties:
virtualHostName: ${virtualHostName}
instanceId: ${createInstance.id}
internal: 'true'
autoDeleteState: 'false'
exchangeName: ${name}
exchangeType: X_CONSISTENT_HASH
alternateExchange: bakExchange
xDelayedType: DIRECT

Import

RabbitMQ (AMQP) Exchange can be imported using the id, e.g.

$ pulumi import alicloud:amqp/exchange:Exchange example <instance_id>:<virtual_host_name>:<exchange_name>

Constructors

Link copied to clipboard
constructor(alternateExchange: Output<String>? = null, autoDeleteState: Output<Boolean>? = null, exchangeName: Output<String>? = null, exchangeType: Output<String>? = null, instanceId: Output<String>? = null, internal: Output<Boolean>? = null, virtualHostName: Output<String>? = null, xDelayedType: Output<String>? = null)

Properties

Link copied to clipboard
val alternateExchange: Output<String>? = null

The alternate exchange. An alternate exchange is used to receive messages that fail to be routed to queues from the current exchange.

Link copied to clipboard
val autoDeleteState: Output<Boolean>? = null

Specifies whether to automatically delete the exchange. Valid values:

Link copied to clipboard
val exchangeName: Output<String>? = null

The name of the exchange that you want to create. The exchange name must meet the following conventions:

Link copied to clipboard
val exchangeType: Output<String>? = null

The Exchange type. Value:

Link copied to clipboard
val instanceId: Output<String>? = null

The ID of the ApsaraMQ for RabbitMQ instance whose exchange you want to delete.

Link copied to clipboard
val internal: Output<Boolean>? = null

Specifies whether the exchange is an internal exchange. Valid values:

Link copied to clipboard
val virtualHostName: Output<String>? = null

The name of the vhost to which the exchange that you want to create belongs.

Link copied to clipboard
val xDelayedType: Output<String>? = null

RabbitMQ supports the x-delayed-message Exchange. By declaring this type of Exchange, you can customize the x-delay header attribute to specify the delay period for message delivery, measured in milliseconds. The message will be delivered to the corresponding Queue after the period defined in x-delay. The routing rules are determined by the type of Exchange specified in x-delayed-type.

Functions

Link copied to clipboard
open override fun toJava(): ExchangeArgs