Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.pulumi.alicloud.amqp.BindingArgs Maven / Gradle / Ivy
Go to download
A Pulumi package for creating and managing AliCloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.pulumi.alicloud.amqp;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import com.pulumi.exceptions.MissingRequiredPropertyException;
import java.lang.String;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
public final class BindingArgs extends com.pulumi.resources.ResourceArgs {
public static final BindingArgs Empty = new BindingArgs();
/**
* The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:
* - `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.
* - `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.
* - > **NOTE:** If the exchange type is not 'HEADERS', the `argument` should not been set, otherwise, there are always "forces replacement" changes.
*
*/
@Import(name="argument")
private @Nullable Output argument;
/**
* @return The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:
* - `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.
* - `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.
* - > **NOTE:** If the exchange type is not 'HEADERS', the `argument` should not been set, otherwise, there are always "forces replacement" changes.
*
*/
public Optional> argument() {
return Optional.ofNullable(this.argument);
}
/**
* The Binding Key.
* * For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* The binding key must be 1 to 255 characters in length.
* * For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* If the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).
* The binding key must be 1 to 255 characters in length.
*
*/
@Import(name="bindingKey", required=true)
private Output bindingKey;
/**
* @return The Binding Key.
* * For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* The binding key must be 1 to 255 characters in length.
* * For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* If the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).
* The binding key must be 1 to 255 characters in length.
*
*/
public Output bindingKey() {
return this.bindingKey;
}
/**
* The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.
*
*/
@Import(name="bindingType", required=true)
private Output bindingType;
/**
* @return The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.
*
*/
public Output bindingType() {
return this.bindingType;
}
/**
* The name of the object that you want to bind to the source exchange.
*
*/
@Import(name="destinationName", required=true)
private Output destinationName;
/**
* @return The name of the object that you want to bind to the source exchange.
*
*/
public Output destinationName() {
return this.destinationName;
}
/**
* The ID of the instance.
*
*/
@Import(name="instanceId", required=true)
private Output instanceId;
/**
* @return The ID of the instance.
*
*/
public Output instanceId() {
return this.instanceId;
}
/**
* The name of the source exchange.
*
*/
@Import(name="sourceExchange", required=true)
private Output sourceExchange;
/**
* @return The name of the source exchange.
*
*/
public Output sourceExchange() {
return this.sourceExchange;
}
/**
* The name of the vhost.
*
*/
@Import(name="virtualHostName", required=true)
private Output virtualHostName;
/**
* @return The name of the vhost.
*
*/
public Output virtualHostName() {
return this.virtualHostName;
}
private BindingArgs() {}
private BindingArgs(BindingArgs $) {
this.argument = $.argument;
this.bindingKey = $.bindingKey;
this.bindingType = $.bindingType;
this.destinationName = $.destinationName;
this.instanceId = $.instanceId;
this.sourceExchange = $.sourceExchange;
this.virtualHostName = $.virtualHostName;
}
public static Builder builder() {
return new Builder();
}
public static Builder builder(BindingArgs defaults) {
return new Builder(defaults);
}
public static final class Builder {
private BindingArgs $;
public Builder() {
$ = new BindingArgs();
}
public Builder(BindingArgs defaults) {
$ = new BindingArgs(Objects.requireNonNull(defaults));
}
/**
* @param argument The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:
* - `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.
* - `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.
* - > **NOTE:** If the exchange type is not 'HEADERS', the `argument` should not been set, otherwise, there are always "forces replacement" changes.
*
* @return builder
*
*/
public Builder argument(@Nullable Output argument) {
$.argument = argument;
return this;
}
/**
* @param argument The key-value pairs that are configured for the headers attributes of a message. Default value: `x-match:all`. Valid values:
* - `x-match:all`: A headers exchange routes a message to a queue only if all binding attributes of the queue except for x-match match the headers attributes of the message.
* - `x-match:any`: A headers exchange routes a message to a queue if one or more binding attributes of the queue except for x-match match the headers attributes of the message.
* - > **NOTE:** If the exchange type is not 'HEADERS', the `argument` should not been set, otherwise, there are always "forces replacement" changes.
*
* @return builder
*
*/
public Builder argument(String argument) {
return argument(Output.of(argument));
}
/**
* @param bindingKey The Binding Key.
* * For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* The binding key must be 1 to 255 characters in length.
* * For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* If the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).
* The binding key must be 1 to 255 characters in length.
*
* @return builder
*
*/
public Builder bindingKey(Output bindingKey) {
$.bindingKey = bindingKey;
return this;
}
/**
* @param bindingKey The Binding Key.
* * For a non-topic source exchange: The binding key can contain only letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* The binding key must be 1 to 255 characters in length.
* * For a topic source exchange: The binding key can contain letters, digits, hyphens (-), underscores (_), periods (.), and at signs ({@literal @}).
* If the binding key contains a number sign (#), the binding key must start with a number sign (#) followed by a period (.) or end with a number sign (#) that follows a period (.).
* The binding key must be 1 to 255 characters in length.
*
* @return builder
*
*/
public Builder bindingKey(String bindingKey) {
return bindingKey(Output.of(bindingKey));
}
/**
* @param bindingType The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.
*
* @return builder
*
*/
public Builder bindingType(Output bindingType) {
$.bindingType = bindingType;
return this;
}
/**
* @param bindingType The type of the object that you want to bind to the source exchange. Valid values: `EXCHANGE`, `QUEUE`.
*
* @return builder
*
*/
public Builder bindingType(String bindingType) {
return bindingType(Output.of(bindingType));
}
/**
* @param destinationName The name of the object that you want to bind to the source exchange.
*
* @return builder
*
*/
public Builder destinationName(Output destinationName) {
$.destinationName = destinationName;
return this;
}
/**
* @param destinationName The name of the object that you want to bind to the source exchange.
*
* @return builder
*
*/
public Builder destinationName(String destinationName) {
return destinationName(Output.of(destinationName));
}
/**
* @param instanceId The ID of the instance.
*
* @return builder
*
*/
public Builder instanceId(Output instanceId) {
$.instanceId = instanceId;
return this;
}
/**
* @param instanceId The ID of the instance.
*
* @return builder
*
*/
public Builder instanceId(String instanceId) {
return instanceId(Output.of(instanceId));
}
/**
* @param sourceExchange The name of the source exchange.
*
* @return builder
*
*/
public Builder sourceExchange(Output sourceExchange) {
$.sourceExchange = sourceExchange;
return this;
}
/**
* @param sourceExchange The name of the source exchange.
*
* @return builder
*
*/
public Builder sourceExchange(String sourceExchange) {
return sourceExchange(Output.of(sourceExchange));
}
/**
* @param virtualHostName The name of the vhost.
*
* @return builder
*
*/
public Builder virtualHostName(Output virtualHostName) {
$.virtualHostName = virtualHostName;
return this;
}
/**
* @param virtualHostName The name of the vhost.
*
* @return builder
*
*/
public Builder virtualHostName(String virtualHostName) {
return virtualHostName(Output.of(virtualHostName));
}
public BindingArgs build() {
if ($.bindingKey == null) {
throw new MissingRequiredPropertyException("BindingArgs", "bindingKey");
}
if ($.bindingType == null) {
throw new MissingRequiredPropertyException("BindingArgs", "bindingType");
}
if ($.destinationName == null) {
throw new MissingRequiredPropertyException("BindingArgs", "destinationName");
}
if ($.instanceId == null) {
throw new MissingRequiredPropertyException("BindingArgs", "instanceId");
}
if ($.sourceExchange == null) {
throw new MissingRequiredPropertyException("BindingArgs", "sourceExchange");
}
if ($.virtualHostName == null) {
throw new MissingRequiredPropertyException("BindingArgs", "virtualHostName");
}
return $;
}
}
}