rabbitmq.FederationUpstream
Explore with Pulumi AI
The rabbitmq.FederationUpstream
resource creates and manages a federation upstream parameter.
Example Usage
using System.Collections.Generic;
using Pulumi;
using RabbitMQ = Pulumi.RabbitMQ;
return await Deployment.RunAsync(() =>
{
var test = new RabbitMQ.VHost("test");
var guest = new RabbitMQ.Permissions("guest", new()
{
User = "guest",
Vhost = test.Name,
PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs
{
Configure = ".*",
Write = ".*",
Read = ".*",
},
});
// downstream exchange
var fooExchange = new RabbitMQ.Exchange("fooExchange", new()
{
Vhost = guest.Vhost,
Settings = new RabbitMQ.Inputs.ExchangeSettingsArgs
{
Type = "topic",
Durable = true,
},
});
// upstream broker
var fooFederationUpstream = new RabbitMQ.FederationUpstream("fooFederationUpstream", new()
{
Vhost = guest.Vhost,
Definition = new RabbitMQ.Inputs.FederationUpstreamDefinitionArgs
{
Uri = "amqp://guest:guest@upstream-server-name:5672/%2f",
PrefetchCount = 1000,
ReconnectDelay = 5,
AckMode = "on-confirm",
TrustUserId = false,
MaxHops = 1,
},
});
var fooPolicy = new RabbitMQ.Policy("fooPolicy", new()
{
Vhost = guest.Vhost,
PolicyBlock = new RabbitMQ.Inputs.PolicyPolicyArgs
{
Pattern = fooExchange.Name.Apply(name => $"(^{name}$)"),
Priority = 1,
ApplyTo = "exchanges",
Definition =
{
{ "federation-upstream", fooFederationUpstream.Name },
},
},
});
});
package main
import (
"fmt"
"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
test, err := rabbitmq.NewVHost(ctx, "test", nil)
if err != nil {
return err
}
guest, err := rabbitmq.NewPermissions(ctx, "guest", &rabbitmq.PermissionsArgs{
User: pulumi.String("guest"),
Vhost: test.Name,
Permissions: &rabbitmq.PermissionsPermissionsArgs{
Configure: pulumi.String(".*"),
Write: pulumi.String(".*"),
Read: pulumi.String(".*"),
},
})
if err != nil {
return err
}
fooExchange, err := rabbitmq.NewExchange(ctx, "fooExchange", &rabbitmq.ExchangeArgs{
Vhost: guest.Vhost,
Settings: &rabbitmq.ExchangeSettingsArgs{
Type: pulumi.String("topic"),
Durable: pulumi.Bool(true),
},
})
if err != nil {
return err
}
fooFederationUpstream, err := rabbitmq.NewFederationUpstream(ctx, "fooFederationUpstream", &rabbitmq.FederationUpstreamArgs{
Vhost: guest.Vhost,
Definition: &rabbitmq.FederationUpstreamDefinitionArgs{
Uri: pulumi.String("amqp://guest:guest@upstream-server-name:5672/%2f"),
PrefetchCount: pulumi.Int(1000),
ReconnectDelay: pulumi.Int(5),
AckMode: pulumi.String("on-confirm"),
TrustUserId: pulumi.Bool(false),
MaxHops: pulumi.Int(1),
},
})
if err != nil {
return err
}
_, err = rabbitmq.NewPolicy(ctx, "fooPolicy", &rabbitmq.PolicyArgs{
Vhost: guest.Vhost,
Policy: &rabbitmq.PolicyPolicyArgs{
Pattern: fooExchange.Name.ApplyT(func(name string) (string, error) {
return fmt.Sprintf("(^%v$)", name), nil
}).(pulumi.StringOutput),
Priority: pulumi.Int(1),
ApplyTo: pulumi.String("exchanges"),
Definition: pulumi.AnyMap{
"federation-upstream": fooFederationUpstream.Name,
},
},
})
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.rabbitmq.VHost;
import com.pulumi.rabbitmq.Permissions;
import com.pulumi.rabbitmq.PermissionsArgs;
import com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;
import com.pulumi.rabbitmq.Exchange;
import com.pulumi.rabbitmq.ExchangeArgs;
import com.pulumi.rabbitmq.inputs.ExchangeSettingsArgs;
import com.pulumi.rabbitmq.FederationUpstream;
import com.pulumi.rabbitmq.FederationUpstreamArgs;
import com.pulumi.rabbitmq.inputs.FederationUpstreamDefinitionArgs;
import com.pulumi.rabbitmq.Policy;
import com.pulumi.rabbitmq.PolicyArgs;
import com.pulumi.rabbitmq.inputs.PolicyPolicyArgs;
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) {
var test = new VHost("test");
var guest = new Permissions("guest", PermissionsArgs.builder()
.user("guest")
.vhost(test.name())
.permissions(PermissionsPermissionsArgs.builder()
.configure(".*")
.write(".*")
.read(".*")
.build())
.build());
var fooExchange = new Exchange("fooExchange", ExchangeArgs.builder()
.vhost(guest.vhost())
.settings(ExchangeSettingsArgs.builder()
.type("topic")
.durable("true")
.build())
.build());
var fooFederationUpstream = new FederationUpstream("fooFederationUpstream", FederationUpstreamArgs.builder()
.vhost(guest.vhost())
.definition(FederationUpstreamDefinitionArgs.builder()
.uri("amqp://guest:guest@upstream-server-name:5672/%2f")
.prefetchCount(1000)
.reconnectDelay(5)
.ackMode("on-confirm")
.trustUserId(false)
.maxHops(1)
.build())
.build());
var fooPolicy = new Policy("fooPolicy", PolicyArgs.builder()
.vhost(guest.vhost())
.policy(PolicyPolicyArgs.builder()
.pattern(fooExchange.name().applyValue(name -> String.format("(^%s$)", name)))
.priority(1)
.applyTo("exchanges")
.definition(Map.of("federation-upstream", fooFederationUpstream.name()))
.build())
.build());
}
}
import pulumi
import pulumi_rabbitmq as rabbitmq
test = rabbitmq.VHost("test")
guest = rabbitmq.Permissions("guest",
user="guest",
vhost=test.name,
permissions=rabbitmq.PermissionsPermissionsArgs(
configure=".*",
write=".*",
read=".*",
))
# downstream exchange
foo_exchange = rabbitmq.Exchange("fooExchange",
vhost=guest.vhost,
settings=rabbitmq.ExchangeSettingsArgs(
type="topic",
durable=True,
))
# upstream broker
foo_federation_upstream = rabbitmq.FederationUpstream("fooFederationUpstream",
vhost=guest.vhost,
definition=rabbitmq.FederationUpstreamDefinitionArgs(
uri="amqp://guest:guest@upstream-server-name:5672/%2f",
prefetch_count=1000,
reconnect_delay=5,
ack_mode="on-confirm",
trust_user_id=False,
max_hops=1,
))
foo_policy = rabbitmq.Policy("fooPolicy",
vhost=guest.vhost,
policy=rabbitmq.PolicyPolicyArgs(
pattern=foo_exchange.name.apply(lambda name: f"(^{name}$)"),
priority=1,
apply_to="exchanges",
definition={
"federation-upstream": foo_federation_upstream.name,
},
))
import * as pulumi from "@pulumi/pulumi";
import * as rabbitmq from "@pulumi/rabbitmq";
const test = new rabbitmq.VHost("test", {});
const guest = new rabbitmq.Permissions("guest", {
user: "guest",
vhost: test.name,
permissions: {
configure: ".*",
write: ".*",
read: ".*",
},
});
// downstream exchange
const fooExchange = new rabbitmq.Exchange("fooExchange", {
vhost: guest.vhost,
settings: {
type: "topic",
durable: true,
},
});
// upstream broker
const fooFederationUpstream = new rabbitmq.FederationUpstream("fooFederationUpstream", {
vhost: guest.vhost,
definition: {
uri: "amqp://guest:guest@upstream-server-name:5672/%2f",
prefetchCount: 1000,
reconnectDelay: 5,
ackMode: "on-confirm",
trustUserId: false,
maxHops: 1,
},
});
const fooPolicy = new rabbitmq.Policy("fooPolicy", {
vhost: guest.vhost,
policy: {
pattern: pulumi.interpolate`(^${fooExchange.name}$)`,
priority: 1,
applyTo: "exchanges",
definition: {
"federation-upstream": fooFederationUpstream.name,
},
},
});
resources:
test:
type: rabbitmq:VHost
guest:
type: rabbitmq:Permissions
properties:
user: guest
vhost: ${test.name}
permissions:
configure: .*
write: .*
read: .*
# downstream exchange
fooExchange:
type: rabbitmq:Exchange
properties:
vhost: ${guest.vhost}
settings:
type: topic
durable: 'true'
# upstream broker
fooFederationUpstream:
type: rabbitmq:FederationUpstream
properties:
vhost: ${guest.vhost}
definition:
uri: amqp://guest:guest@upstream-server-name:5672/%2f
prefetchCount: 1000
reconnectDelay: 5
ackMode: on-confirm
trustUserId: false
maxHops: 1
fooPolicy:
type: rabbitmq:Policy
properties:
vhost: ${guest.vhost}
policy:
pattern: (^${fooExchange.name}$)
priority: 1
applyTo: exchanges
definition:
federation-upstream: ${fooFederationUpstream.name}
Create FederationUpstream Resource
new FederationUpstream(name: string, args: FederationUpstreamArgs, opts?: CustomResourceOptions);
@overload
def FederationUpstream(resource_name: str,
opts: Optional[ResourceOptions] = None,
definition: Optional[FederationUpstreamDefinitionArgs] = None,
name: Optional[str] = None,
vhost: Optional[str] = None)
@overload
def FederationUpstream(resource_name: str,
args: FederationUpstreamArgs,
opts: Optional[ResourceOptions] = None)
func NewFederationUpstream(ctx *Context, name string, args FederationUpstreamArgs, opts ...ResourceOption) (*FederationUpstream, error)
public FederationUpstream(string name, FederationUpstreamArgs args, CustomResourceOptions? opts = null)
public FederationUpstream(String name, FederationUpstreamArgs args)
public FederationUpstream(String name, FederationUpstreamArgs args, CustomResourceOptions options)
type: rabbitmq:FederationUpstream
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args FederationUpstreamArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args FederationUpstreamArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args FederationUpstreamArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args FederationUpstreamArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args FederationUpstreamArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
FederationUpstream Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The FederationUpstream resource accepts the following input properties:
- Definition
Pulumi.
Rabbit MQ. Inputs. Federation Upstream Definition The configuration of the federation upstream. The structure is described below.
- Vhost string
The vhost to create the resource in.
- Name string
The name of the federation upstream.
- Definition
Federation
Upstream Definition Args The configuration of the federation upstream. The structure is described below.
- Vhost string
The vhost to create the resource in.
- Name string
The name of the federation upstream.
- definition
Federation
Upstream Definition The configuration of the federation upstream. The structure is described below.
- vhost String
The vhost to create the resource in.
- name String
The name of the federation upstream.
- definition
Federation
Upstream Definition The configuration of the federation upstream. The structure is described below.
- vhost string
The vhost to create the resource in.
- name string
The name of the federation upstream.
- definition
Federation
Upstream Definition Args The configuration of the federation upstream. The structure is described below.
- vhost str
The vhost to create the resource in.
- name str
The name of the federation upstream.
- definition Property Map
The configuration of the federation upstream. The structure is described below.
- vhost String
The vhost to create the resource in.
- name String
The name of the federation upstream.
Outputs
All input properties are implicitly available as output properties. Additionally, the FederationUpstream resource produces the following output properties:
Look up Existing FederationUpstream Resource
Get an existing FederationUpstream resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: FederationUpstreamState, opts?: CustomResourceOptions): FederationUpstream
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
component: Optional[str] = None,
definition: Optional[FederationUpstreamDefinitionArgs] = None,
name: Optional[str] = None,
vhost: Optional[str] = None) -> FederationUpstream
func GetFederationUpstream(ctx *Context, name string, id IDInput, state *FederationUpstreamState, opts ...ResourceOption) (*FederationUpstream, error)
public static FederationUpstream Get(string name, Input<string> id, FederationUpstreamState? state, CustomResourceOptions? opts = null)
public static FederationUpstream get(String name, Output<String> id, FederationUpstreamState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Component string
Set to
federation-upstream
by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.- Definition
Pulumi.
Rabbit MQ. Inputs. Federation Upstream Definition The configuration of the federation upstream. The structure is described below.
- Name string
The name of the federation upstream.
- Vhost string
The vhost to create the resource in.
- Component string
Set to
federation-upstream
by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.- Definition
Federation
Upstream Definition Args The configuration of the federation upstream. The structure is described below.
- Name string
The name of the federation upstream.
- Vhost string
The vhost to create the resource in.
- component String
Set to
federation-upstream
by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.- definition
Federation
Upstream Definition The configuration of the federation upstream. The structure is described below.
- name String
The name of the federation upstream.
- vhost String
The vhost to create the resource in.
- component string
Set to
federation-upstream
by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.- definition
Federation
Upstream Definition The configuration of the federation upstream. The structure is described below.
- name string
The name of the federation upstream.
- vhost string
The vhost to create the resource in.
- component str
Set to
federation-upstream
by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.- definition
Federation
Upstream Definition Args The configuration of the federation upstream. The structure is described below.
- name str
The name of the federation upstream.
- vhost str
The vhost to create the resource in.
- component String
Set to
federation-upstream
by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.- definition Property Map
The configuration of the federation upstream. The structure is described below.
- name String
The name of the federation upstream.
- vhost String
The vhost to create the resource in.
Supporting Types
FederationUpstreamDefinition, FederationUpstreamDefinitionArgs
- Uri string
The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
- Ack
Mode string Determines how the link should acknowledge messages. Valid values are
on-confirm
,on-publish
, andno-ack
. Default ison-confirm
.- Exchange string
The name of the upstream exchange.
- Expires int
The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
- Max
Hops int Maximum number of federation links that messages can traverse before being dropped. Default is
1
.- Message
Ttl int The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
- Prefetch
Count int Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is
1000
.- Queue string
The name of the upstream queue.
- Reconnect
Delay int Time in seconds to wait after a network link goes down before attempting reconnection. Default is
5
.- Trust
User boolId Determines how federation should interact with the validated user-id feature. Default is
false
.
- Uri string
The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
- Ack
Mode string Determines how the link should acknowledge messages. Valid values are
on-confirm
,on-publish
, andno-ack
. Default ison-confirm
.- Exchange string
The name of the upstream exchange.
- Expires int
The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
- Max
Hops int Maximum number of federation links that messages can traverse before being dropped. Default is
1
.- Message
Ttl int The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
- Prefetch
Count int Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is
1000
.- Queue string
The name of the upstream queue.
- Reconnect
Delay int Time in seconds to wait after a network link goes down before attempting reconnection. Default is
5
.- Trust
User boolId Determines how federation should interact with the validated user-id feature. Default is
false
.
- uri String
The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
- ack
Mode String Determines how the link should acknowledge messages. Valid values are
on-confirm
,on-publish
, andno-ack
. Default ison-confirm
.- exchange String
The name of the upstream exchange.
- expires Integer
The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
- max
Hops Integer Maximum number of federation links that messages can traverse before being dropped. Default is
1
.- message
Ttl Integer The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
- prefetch
Count Integer Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is
1000
.- queue String
The name of the upstream queue.
- reconnect
Delay Integer Time in seconds to wait after a network link goes down before attempting reconnection. Default is
5
.- trust
User BooleanId Determines how federation should interact with the validated user-id feature. Default is
false
.
- uri string
The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
- ack
Mode string Determines how the link should acknowledge messages. Valid values are
on-confirm
,on-publish
, andno-ack
. Default ison-confirm
.- exchange string
The name of the upstream exchange.
- expires number
The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
- max
Hops number Maximum number of federation links that messages can traverse before being dropped. Default is
1
.- message
Ttl number The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
- prefetch
Count number Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is
1000
.- queue string
The name of the upstream queue.
- reconnect
Delay number Time in seconds to wait after a network link goes down before attempting reconnection. Default is
5
.- trust
User booleanId Determines how federation should interact with the validated user-id feature. Default is
false
.
- uri str
The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
- ack_
mode str Determines how the link should acknowledge messages. Valid values are
on-confirm
,on-publish
, andno-ack
. Default ison-confirm
.- exchange str
The name of the upstream exchange.
- expires int
The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
- max_
hops int Maximum number of federation links that messages can traverse before being dropped. Default is
1
.- message_
ttl int The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
- prefetch_
count int Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is
1000
.- queue str
The name of the upstream queue.
- reconnect_
delay int Time in seconds to wait after a network link goes down before attempting reconnection. Default is
5
.- trust_
user_ boolid Determines how federation should interact with the validated user-id feature. Default is
false
.
- uri String
The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
- ack
Mode String Determines how the link should acknowledge messages. Valid values are
on-confirm
,on-publish
, andno-ack
. Default ison-confirm
.- exchange String
The name of the upstream exchange.
- expires Number
The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
- max
Hops Number Maximum number of federation links that messages can traverse before being dropped. Default is
1
.- message
Ttl Number The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
- prefetch
Count Number Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is
1000
.- queue String
The name of the upstream queue.
- reconnect
Delay Number Time in seconds to wait after a network link goes down before attempting reconnection. Default is
5
.- trust
User BooleanId Determines how federation should interact with the validated user-id feature. Default is
false
.
Import
A Federation upstream can be imported using the resource id
which is composed of name@vhost
, e.g.
$ pulumi import rabbitmq:index/federationUpstream:FederationUpstream foo foo@test
Package Details
- Repository
- RabbitMQ pulumi/pulumi-rabbitmq
- License
- Apache-2.0
- Notes
This Pulumi package is based on the
rabbitmq
Terraform Provider.