{
    "name": "rabbitmq",
    "description": "A Pulumi package for creating and managing RabbitMQ resources.",
    "keywords": [
        "pulumi",
        "rabbitmq"
    ],
    "homepage": "https://pulumi.io",
    "license": "Apache-2.0",
    "attribution": "This Pulumi package is based on the [`rabbitmq` Terraform Provider](https://github.com/terraform-providers/terraform-provider-rabbitmq).",
    "repository": "https://github.com/pulumi/pulumi-rabbitmq",
    "meta": {
        "moduleFormat": "(.*)(?:/[^/]*)"
    },
    "language": {
        "csharp": {
            "packageReferences": {
                "Pulumi": "3.*"
            },
            "namespaces": {
                "rabbitmq": "RabbitMQ"
            },
            "compatibility": "tfbridge20",
            "respectSchemaVersion": true
        },
        "go": {
            "importBasePath": "github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq",
            "generateResourceContainerTypes": true,
            "generateExtraInputTypes": true,
            "respectSchemaVersion": true
        },
        "nodejs": {
            "packageDescription": "A Pulumi package for creating and managing RabbitMQ resources.",
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-rabbitmq)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-rabbitmq` repo](https://github.com/pulumi/pulumi-rabbitmq/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-rabbitmq` repo](https://github.com/terraform-providers/terraform-provider-rabbitmq/issues).",
            "devDependencies": {
                "@types/mime": "^2.0.0",
                "@types/node": "^10.0.0"
            },
            "compatibility": "tfbridge20",
            "disableUnionOutputTypes": true,
            "respectSchemaVersion": true
        },
        "python": {
            "readme": "\u003e This provider is a derived work of the [Terraform Provider](https://github.com/terraform-providers/terraform-provider-rabbitmq)\n\u003e distributed under [MPL 2.0](https://www.mozilla.org/en-US/MPL/2.0/). If you encounter a bug or missing feature,\n\u003e first check the [`pulumi-rabbitmq` repo](https://github.com/pulumi/pulumi-rabbitmq/issues); however, if that doesn't turn up anything,\n\u003e please consult the source [`terraform-provider-rabbitmq` repo](https://github.com/terraform-providers/terraform-provider-rabbitmq/issues).",
            "compatibility": "tfbridge20",
            "respectSchemaVersion": true,
            "pyproject": {
                "enabled": true
            }
        }
    },
    "config": {
        "variables": {
            "cacertFile": {
                "type": "string",
                "defaultInfo": {
                    "environment": [
                        "RABBITMQ_CACERT"
                    ]
                }
            },
            "clientcertFile": {
                "type": "string"
            },
            "clientkeyFile": {
                "type": "string"
            },
            "endpoint": {
                "type": "string"
            },
            "insecure": {
                "type": "boolean",
                "defaultInfo": {
                    "environment": [
                        "RABBITMQ_INSECURE"
                    ]
                }
            },
            "password": {
                "type": "string"
            },
            "proxy": {
                "type": "string"
            },
            "username": {
                "type": "string"
            }
        },
        "defaults": [
            "endpoint",
            "password",
            "username"
        ]
    },
    "types": {
        "rabbitmq:index/ExchangeSettings:ExchangeSettings": {
            "properties": {
                "arguments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Additional key/value settings for the exchange.\n",
                    "willReplaceOnChanges": true
                },
                "autoDelete": {
                    "type": "boolean",
                    "description": "Whether the exchange will self-delete when all\nqueues have finished using it.\n",
                    "willReplaceOnChanges": true
                },
                "durable": {
                    "type": "boolean",
                    "description": "Whether the exchange survives server restarts.\nDefaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "type": {
                    "type": "string",
                    "description": "The type of exchange.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "type"
            ]
        },
        "rabbitmq:index/FederationUpstreamDefinition:FederationUpstreamDefinition": {
            "properties": {
                "ackMode": {
                    "type": "string",
                    "description": "Determines how the link should acknowledge messages. Valid values are `on-confirm`, `on-publish`, and `no-ack`. Default is `on-confirm`.\n"
                },
                "exchange": {
                    "type": "string",
                    "description": "The name of the upstream exchange.\n"
                },
                "expires": {
                    "type": "integer",
                    "description": "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.\n"
                },
                "maxHops": {
                    "type": "integer",
                    "description": "Maximum number of federation links that messages can traverse before being dropped. Default is \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n"
                },
                "messageTtl": {
                    "type": "integer",
                    "description": "The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).\n\nApplicable to Federated Queues Only\n"
                },
                "prefetchCount": {
                    "type": "integer",
                    "description": "Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is \u003cspan pulumi-lang-nodejs=\"`1000`\" pulumi-lang-dotnet=\"`1000`\" pulumi-lang-go=\"`1000`\" pulumi-lang-python=\"`1000`\" pulumi-lang-yaml=\"`1000`\" pulumi-lang-java=\"`1000`\"\u003e`1000`\u003c/span\u003e.\n"
                },
                "queue": {
                    "type": "string",
                    "description": "The name of the upstream queue.\n\nConsult the RabbitMQ [Federation Reference](https://www.rabbitmq.com/federation-reference.html) documentation for detailed information and guidance on setting these values.\n"
                },
                "reconnectDelay": {
                    "type": "integer",
                    "description": "Time in seconds to wait after a network link goes down before attempting reconnection. Default is \u003cspan pulumi-lang-nodejs=\"`5`\" pulumi-lang-dotnet=\"`5`\" pulumi-lang-go=\"`5`\" pulumi-lang-python=\"`5`\" pulumi-lang-yaml=\"`5`\" pulumi-lang-java=\"`5`\"\u003e`5`\u003c/span\u003e.\n"
                },
                "trustUserId": {
                    "type": "boolean",
                    "description": "Determines how federation should interact with the validated user-id feature. Default is \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n\nApplicable to Federated Exchanges Only\n"
                },
                "uri": {
                    "type": "string",
                    "description": "The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.\n",
                    "secret": true
                }
            },
            "type": "object",
            "required": [
                "uri"
            ]
        },
        "rabbitmq:index/OperatorPolicyPolicy:OperatorPolicyPolicy": {
            "properties": {
                "applyTo": {
                    "type": "string",
                    "description": "Can be \"queues\".\n"
                },
                "definition": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Key/value pairs of the operator policy definition. See the\nRabbitMQ documentation for definition references and examples.\n"
                },
                "pattern": {
                    "type": "string",
                    "description": "A pattern to match an exchange or queue name.\n"
                },
                "priority": {
                    "type": "integer",
                    "description": "The policy with the greater priority is applied first.\n"
                }
            },
            "type": "object",
            "required": [
                "applyTo",
                "definition",
                "pattern",
                "priority"
            ]
        },
        "rabbitmq:index/PermissionsPermissions:PermissionsPermissions": {
            "properties": {
                "configure": {
                    "type": "string",
                    "description": "The \"configure\" ACL.\n"
                },
                "read": {
                    "type": "string",
                    "description": "The \"read\" ACL.\n"
                },
                "write": {
                    "type": "string",
                    "description": "The \"write\" ACL.\n"
                }
            },
            "type": "object",
            "required": [
                "configure",
                "read",
                "write"
            ]
        },
        "rabbitmq:index/PolicyPolicy:PolicyPolicy": {
            "properties": {
                "applyTo": {
                    "type": "string",
                    "description": "Can either be \"exchanges\", \"queues\", or \"all\".\n"
                },
                "definition": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Key/value pairs of the policy definition. See the\nRabbitMQ documentation for definition references and examples.\n"
                },
                "pattern": {
                    "type": "string",
                    "description": "A pattern to match an exchange or queue name.\n"
                },
                "priority": {
                    "type": "integer",
                    "description": "The policy with the greater priority is applied first.\n"
                }
            },
            "type": "object",
            "required": [
                "applyTo",
                "definition",
                "pattern",
                "priority"
            ]
        },
        "rabbitmq:index/QueueSettings:QueueSettings": {
            "properties": {
                "arguments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Additional key/value settings for the queue.\nAll values will be sent to RabbitMQ as a string. If you require non-string\nvalues, use \u003cspan pulumi-lang-nodejs=\"`argumentsJson`\" pulumi-lang-dotnet=\"`ArgumentsJson`\" pulumi-lang-go=\"`argumentsJson`\" pulumi-lang-python=\"`arguments_json`\" pulumi-lang-yaml=\"`argumentsJson`\" pulumi-lang-java=\"`argumentsJson`\"\u003e`argumentsJson`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "argumentsJson": {
                    "type": "string",
                    "description": "A nested JSON string which contains additional\nsettings for the queue. This is useful for when the arguments contain\nnon-string values.\n",
                    "willReplaceOnChanges": true
                },
                "autoDelete": {
                    "type": "boolean",
                    "description": "Whether the queue will self-delete when all\nconsumers have unsubscribed.\n",
                    "willReplaceOnChanges": true
                },
                "durable": {
                    "type": "boolean",
                    "description": "Whether the queue survives server restarts.\nDefaults to \u003cspan pulumi-lang-nodejs=\"`false`\" pulumi-lang-dotnet=\"`False`\" pulumi-lang-go=\"`false`\" pulumi-lang-python=\"`false`\" pulumi-lang-yaml=\"`false`\" pulumi-lang-java=\"`false`\"\u003e`false`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object"
        },
        "rabbitmq:index/ShovelInfo:ShovelInfo": {
            "properties": {
                "ackMode": {
                    "type": "string",
                    "description": "Determines how the shovel should acknowledge messages. Possible values are: `on-confirm`, `on-publish` and `no-ack`.\nDefaults to `on-confirm`.\n",
                    "willReplaceOnChanges": true
                },
                "addForwardHeaders": {
                    "type": "boolean",
                    "description": "Whether to add `x-shovelled` headers to shovelled messages.\n",
                    "deprecationMessage": "use\u003cspan pulumi-lang-nodejs=\" destinationAddForwardHeaders \" pulumi-lang-dotnet=\" DestinationAddForwardHeaders \" pulumi-lang-go=\" destinationAddForwardHeaders \" pulumi-lang-python=\" destination_add_forward_headers \" pulumi-lang-yaml=\" destinationAddForwardHeaders \" pulumi-lang-java=\" destinationAddForwardHeaders \"\u003e destinationAddForwardHeaders \u003c/span\u003einstead",
                    "willReplaceOnChanges": true
                },
                "deleteAfter": {
                    "type": "string",
                    "description": "Determines when (if ever) the shovel should delete itself. Possible values are: \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e, `queue-length` or an integer.\n",
                    "deprecationMessage": "use\u003cspan pulumi-lang-nodejs=\" sourceDeleteAfter \" pulumi-lang-dotnet=\" SourceDeleteAfter \" pulumi-lang-go=\" sourceDeleteAfter \" pulumi-lang-python=\" source_delete_after \" pulumi-lang-yaml=\" sourceDeleteAfter \" pulumi-lang-java=\" sourceDeleteAfter \"\u003e sourceDeleteAfter \u003c/span\u003einstead",
                    "willReplaceOnChanges": true
                },
                "destinationAddForwardHeaders": {
                    "type": "boolean",
                    "description": "Whether to add `x-shovelled` headers to shovelled messages.\n",
                    "willReplaceOnChanges": true
                },
                "destinationAddTimestampHeader": {
                    "type": "boolean",
                    "willReplaceOnChanges": true
                },
                "destinationAddress": {
                    "type": "string",
                    "description": "The AMQP 1.0 destination link address.\n",
                    "willReplaceOnChanges": true
                },
                "destinationApplicationProperties": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Application properties to set when shovelling messages.\n",
                    "willReplaceOnChanges": true
                },
                "destinationExchange": {
                    "type": "string",
                    "description": "The exchange to which messages should be published.\nEither this or \u003cspan pulumi-lang-nodejs=\"`destinationQueue`\" pulumi-lang-dotnet=\"`DestinationQueue`\" pulumi-lang-go=\"`destinationQueue`\" pulumi-lang-python=\"`destination_queue`\" pulumi-lang-yaml=\"`destinationQueue`\" pulumi-lang-java=\"`destinationQueue`\"\u003e`destinationQueue`\u003c/span\u003e must be specified but not both.\n",
                    "willReplaceOnChanges": true
                },
                "destinationExchangeKey": {
                    "type": "string",
                    "description": "The routing key when using \u003cspan pulumi-lang-nodejs=\"`destinationExchange`\" pulumi-lang-dotnet=\"`DestinationExchange`\" pulumi-lang-go=\"`destinationExchange`\" pulumi-lang-python=\"`destination_exchange`\" pulumi-lang-yaml=\"`destinationExchange`\" pulumi-lang-java=\"`destinationExchange`\"\u003e`destinationExchange`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "destinationProperties": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Properties to overwrite when shovelling messages.\n\nFor more details regarding dynamic shovel parameters please have a look at the official reference documentaion at [RabbitMQ: Configuring Dynamic Shovels](https://www.rabbitmq.com/shovel-dynamic.html).\n",
                    "willReplaceOnChanges": true
                },
                "destinationProtocol": {
                    "type": "string",
                    "description": "The protocol (\u003cspan pulumi-lang-nodejs=\"`amqp091`\" pulumi-lang-dotnet=\"`Amqp091`\" pulumi-lang-go=\"`amqp091`\" pulumi-lang-python=\"`amqp091`\" pulumi-lang-yaml=\"`amqp091`\" pulumi-lang-java=\"`amqp091`\"\u003e`amqp091`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`amqp10`\" pulumi-lang-dotnet=\"`Amqp10`\" pulumi-lang-go=\"`amqp10`\" pulumi-lang-python=\"`amqp10`\" pulumi-lang-yaml=\"`amqp10`\" pulumi-lang-java=\"`amqp10`\"\u003e`amqp10`\u003c/span\u003e) to use when connecting to the destination.\nDefaults to \u003cspan pulumi-lang-nodejs=\"`amqp091`\" pulumi-lang-dotnet=\"`Amqp091`\" pulumi-lang-go=\"`amqp091`\" pulumi-lang-python=\"`amqp091`\" pulumi-lang-yaml=\"`amqp091`\" pulumi-lang-java=\"`amqp091`\"\u003e`amqp091`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "destinationPublishProperties": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "A map of properties to overwrite when shovelling messages.\n",
                    "willReplaceOnChanges": true
                },
                "destinationQueue": {
                    "type": "string",
                    "description": "The queue to which messages should be published.\nEither this or \u003cspan pulumi-lang-nodejs=\"`destinationExchange`\" pulumi-lang-dotnet=\"`DestinationExchange`\" pulumi-lang-go=\"`destinationExchange`\" pulumi-lang-python=\"`destination_exchange`\" pulumi-lang-yaml=\"`destinationExchange`\" pulumi-lang-java=\"`destinationExchange`\"\u003e`destinationExchange`\u003c/span\u003e must be specified but not both.\n",
                    "willReplaceOnChanges": true
                },
                "destinationQueueArguments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "willReplaceOnChanges": true
                },
                "destinationUri": {
                    "type": "string",
                    "description": "The amqp uri for the destination .\n",
                    "willReplaceOnChanges": true
                },
                "prefetchCount": {
                    "type": "integer",
                    "description": "The maximum number of unacknowledged messages copied over a shovel at any one time.\n",
                    "deprecationMessage": "use\u003cspan pulumi-lang-nodejs=\" sourcePrefetchCount \" pulumi-lang-dotnet=\" SourcePrefetchCount \" pulumi-lang-go=\" sourcePrefetchCount \" pulumi-lang-python=\" source_prefetch_count \" pulumi-lang-yaml=\" sourcePrefetchCount \" pulumi-lang-java=\" sourcePrefetchCount \"\u003e sourcePrefetchCount \u003c/span\u003einstead",
                    "willReplaceOnChanges": true
                },
                "reconnectDelay": {
                    "type": "integer",
                    "description": "The duration in seconds to reconnect to a broker after disconnected.\nDefaults to \u003cspan pulumi-lang-nodejs=\"`1`\" pulumi-lang-dotnet=\"`1`\" pulumi-lang-go=\"`1`\" pulumi-lang-python=\"`1`\" pulumi-lang-yaml=\"`1`\" pulumi-lang-java=\"`1`\"\u003e`1`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "sourceAddress": {
                    "type": "string",
                    "description": "The AMQP 1.0 source link address.\n",
                    "willReplaceOnChanges": true
                },
                "sourceDeleteAfter": {
                    "type": "string",
                    "description": "Determines when (if ever) the shovel should delete itself. Possible values are: \u003cspan pulumi-lang-nodejs=\"`never`\" pulumi-lang-dotnet=\"`Never`\" pulumi-lang-go=\"`never`\" pulumi-lang-python=\"`never`\" pulumi-lang-yaml=\"`never`\" pulumi-lang-java=\"`never`\"\u003e`never`\u003c/span\u003e, `queue-length` or an integer.\n",
                    "willReplaceOnChanges": true
                },
                "sourceExchange": {
                    "type": "string",
                    "description": "The exchange from which to consume.\nEither this or \u003cspan pulumi-lang-nodejs=\"`sourceQueue`\" pulumi-lang-dotnet=\"`SourceQueue`\" pulumi-lang-go=\"`sourceQueue`\" pulumi-lang-python=\"`source_queue`\" pulumi-lang-yaml=\"`sourceQueue`\" pulumi-lang-java=\"`sourceQueue`\"\u003e`sourceQueue`\u003c/span\u003e must be specified but not both.\n",
                    "willReplaceOnChanges": true
                },
                "sourceExchangeKey": {
                    "type": "string",
                    "description": "The routing key when using \u003cspan pulumi-lang-nodejs=\"`sourceExchange`\" pulumi-lang-dotnet=\"`SourceExchange`\" pulumi-lang-go=\"`sourceExchange`\" pulumi-lang-python=\"`source_exchange`\" pulumi-lang-yaml=\"`sourceExchange`\" pulumi-lang-java=\"`sourceExchange`\"\u003e`sourceExchange`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "sourcePrefetchCount": {
                    "type": "integer",
                    "description": "The maximum number of unacknowledged messages copied over a shovel at any one time.\n",
                    "willReplaceOnChanges": true
                },
                "sourceProtocol": {
                    "type": "string",
                    "description": "The protocol (\u003cspan pulumi-lang-nodejs=\"`amqp091`\" pulumi-lang-dotnet=\"`Amqp091`\" pulumi-lang-go=\"`amqp091`\" pulumi-lang-python=\"`amqp091`\" pulumi-lang-yaml=\"`amqp091`\" pulumi-lang-java=\"`amqp091`\"\u003e`amqp091`\u003c/span\u003e or \u003cspan pulumi-lang-nodejs=\"`amqp10`\" pulumi-lang-dotnet=\"`Amqp10`\" pulumi-lang-go=\"`amqp10`\" pulumi-lang-python=\"`amqp10`\" pulumi-lang-yaml=\"`amqp10`\" pulumi-lang-java=\"`amqp10`\"\u003e`amqp10`\u003c/span\u003e) to use when connecting to the source.\nDefaults to \u003cspan pulumi-lang-nodejs=\"`amqp091`\" pulumi-lang-dotnet=\"`Amqp091`\" pulumi-lang-go=\"`amqp091`\" pulumi-lang-python=\"`amqp091`\" pulumi-lang-yaml=\"`amqp091`\" pulumi-lang-java=\"`amqp091`\"\u003e`amqp091`\u003c/span\u003e.\n",
                    "willReplaceOnChanges": true
                },
                "sourceQueue": {
                    "type": "string",
                    "description": "The queue from which to consume.\nEither this or \u003cspan pulumi-lang-nodejs=\"`sourceExchange`\" pulumi-lang-dotnet=\"`SourceExchange`\" pulumi-lang-go=\"`sourceExchange`\" pulumi-lang-python=\"`source_exchange`\" pulumi-lang-yaml=\"`sourceExchange`\" pulumi-lang-java=\"`sourceExchange`\"\u003e`sourceExchange`\u003c/span\u003e must be specified but not both.\n",
                    "willReplaceOnChanges": true
                },
                "sourceUri": {
                    "type": "string",
                    "description": "The amqp uri for the source.\n",
                    "willReplaceOnChanges": true
                }
            },
            "type": "object",
            "required": [
                "destinationUri",
                "sourceUri"
            ]
        },
        "rabbitmq:index/TopicPermissionsPermission:TopicPermissionsPermission": {
            "properties": {
                "exchange": {
                    "type": "string",
                    "description": "The exchange to set the permissions for.\n"
                },
                "read": {
                    "type": "string",
                    "description": "The \"read\" ACL.\n"
                },
                "write": {
                    "type": "string",
                    "description": "The \"write\" ACL.\n"
                }
            },
            "type": "object",
            "required": [
                "exchange",
                "read",
                "write"
            ]
        },
        "rabbitmq:index/getExchangeSetting:getExchangeSetting": {
            "properties": {
                "arguments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "autoDelete": {
                    "type": "boolean"
                },
                "durable": {
                    "type": "boolean"
                },
                "type": {
                    "type": "string"
                }
            },
            "type": "object",
            "required": [
                "type"
            ],
            "language": {
                "nodejs": {
                    "requiredInputs": []
                }
            }
        }
    },
    "provider": {
        "description": "The provider type for the rabbitmq package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n",
        "properties": {
            "cacertFile": {
                "type": "string"
            },
            "clientcertFile": {
                "type": "string"
            },
            "clientkeyFile": {
                "type": "string"
            },
            "endpoint": {
                "type": "string"
            },
            "insecure": {
                "type": "boolean"
            },
            "password": {
                "type": "string"
            },
            "proxy": {
                "type": "string"
            },
            "username": {
                "type": "string"
            }
        },
        "inputProperties": {
            "cacertFile": {
                "type": "string",
                "defaultInfo": {
                    "environment": [
                        "RABBITMQ_CACERT"
                    ]
                }
            },
            "clientcertFile": {
                "type": "string"
            },
            "clientkeyFile": {
                "type": "string"
            },
            "endpoint": {
                "type": "string"
            },
            "insecure": {
                "type": "boolean",
                "defaultInfo": {
                    "environment": [
                        "RABBITMQ_INSECURE"
                    ]
                }
            },
            "password": {
                "type": "string"
            },
            "proxy": {
                "type": "string"
            },
            "username": {
                "type": "string"
            }
        },
        "methods": {
            "terraformConfig": "pulumi:providers:rabbitmq/terraformConfig"
        }
    },
    "resources": {
        "rabbitmq:index/binding:Binding": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.Binding`\" pulumi-lang-dotnet=\"`rabbitmq.Binding`\" pulumi-lang-go=\"`Binding`\" pulumi-lang-python=\"`Binding`\" pulumi-lang-yaml=\"`rabbitmq.Binding`\" pulumi-lang-java=\"`rabbitmq.Binding`\"\u003e`rabbitmq.Binding`\u003c/span\u003e` resource creates and manages a binding relationship\nbetween a queue an exchange.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\nconst testExchange = new rabbitmq.Exchange(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    settings: {\n        type: \"fanout\",\n        durable: false,\n        autoDelete: true,\n    },\n});\nconst testQueue = new rabbitmq.Queue(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    settings: {\n        durable: true,\n        autoDelete: false,\n    },\n});\nconst testBinding = new rabbitmq.Binding(\"test\", {\n    source: testExchange.name,\n    vhost: test.name,\n    destination: testQueue.name,\n    destinationType: \"queue\",\n    routingKey: \"#\",\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\ntest_exchange = rabbitmq.Exchange(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    settings={\n        \"type\": \"fanout\",\n        \"durable\": False,\n        \"auto_delete\": True,\n    })\ntest_queue = rabbitmq.Queue(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    settings={\n        \"durable\": True,\n        \"auto_delete\": False,\n    })\ntest_binding = rabbitmq.Binding(\"test\",\n    source=test_exchange.name,\n    vhost=test.name,\n    destination=test_queue.name,\n    destination_type=\"queue\",\n    routing_key=\"#\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    var testExchange = new RabbitMQ.Index.Exchange(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        Settings = new RabbitMQ.Inputs.ExchangeSettingsArgs\n        {\n            Type = \"fanout\",\n            Durable = false,\n            AutoDelete = true,\n        },\n    });\n\n    var testQueue = new RabbitMQ.Index.Queue(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        Settings = new RabbitMQ.Inputs.QueueSettingsArgs\n        {\n            Durable = true,\n            AutoDelete = false,\n        },\n    });\n\n    var testBinding = new RabbitMQ.Index.Binding(\"test\", new()\n    {\n        Source = testExchange.Name,\n        Vhost = test.Name,\n        Destination = testQueue.Name,\n        DestinationType = \"queue\",\n        RoutingKey = \"#\",\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestExchange, err := rabbitmq.NewExchange(ctx, \"test\", \u0026rabbitmq.ExchangeArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tSettings: \u0026rabbitmq.ExchangeSettingsArgs{\n\t\t\t\tType:       pulumi.String(\"fanout\"),\n\t\t\t\tDurable:    pulumi.Bool(false),\n\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestQueue, err := rabbitmq.NewQueue(ctx, \"test\", \u0026rabbitmq.QueueArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tSettings: \u0026rabbitmq.QueueSettingsArgs{\n\t\t\t\tDurable:    pulumi.Bool(true),\n\t\t\t\tAutoDelete: pulumi.Bool(false),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewBinding(ctx, \"test\", \u0026rabbitmq.BindingArgs{\n\t\t\tSource:          testExchange.Name,\n\t\t\tVhost:           test.Name,\n\t\t\tDestination:     testQueue.Name,\n\t\t\tDestinationType: pulumi.String(\"queue\"),\n\t\t\tRoutingKey:      pulumi.String(\"#\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.Exchange;\nimport com.pulumi.rabbitmq.ExchangeArgs;\nimport com.pulumi.rabbitmq.inputs.ExchangeSettingsArgs;\nimport com.pulumi.rabbitmq.Queue;\nimport com.pulumi.rabbitmq.QueueArgs;\nimport com.pulumi.rabbitmq.inputs.QueueSettingsArgs;\nimport com.pulumi.rabbitmq.Binding;\nimport com.pulumi.rabbitmq.BindingArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        var testExchange = new Exchange(\"testExchange\", ExchangeArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .settings(ExchangeSettingsArgs.builder()\n                .type(\"fanout\")\n                .durable(false)\n                .autoDelete(true)\n                .build())\n            .build());\n\n        var testQueue = new Queue(\"testQueue\", QueueArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .settings(QueueSettingsArgs.builder()\n                .durable(true)\n                .autoDelete(false)\n                .build())\n            .build());\n\n        var testBinding = new Binding(\"testBinding\", BindingArgs.builder()\n            .source(testExchange.name())\n            .vhost(test.name())\n            .destination(testQueue.name())\n            .destinationType(\"queue\")\n            .routingKey(\"#\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  testExchange:\n    type: rabbitmq:Exchange\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      settings:\n        type: fanout\n        durable: false\n        autoDelete: true\n  testQueue:\n    type: rabbitmq:Queue\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      settings:\n        durable: true\n        autoDelete: false\n  testBinding:\n    type: rabbitmq:Binding\n    name: test\n    properties:\n      source: ${testExchange.name}\n      vhost: ${test.name}\n      destination: ${testQueue.name}\n      destinationType: queue\n      routingKey: '#'\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nBindings can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of\n  `vhost/source/destination/destination_type/properties_key`. E.g.\n\n```sh\n$ pulumi import rabbitmq:index/binding:Binding test test/test/test/queue/%23\n```\n\n",
            "properties": {
                "arguments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Additional key/value arguments for the binding.\n"
                },
                "argumentsJson": {
                    "type": "string"
                },
                "destination": {
                    "type": "string",
                    "description": "The destination queue or exchange.\n"
                },
                "destinationType": {
                    "type": "string",
                    "description": "The type of destination (queue or exchange).\n"
                },
                "propertiesKey": {
                    "type": "string",
                    "description": "A unique key to refer to the binding.\n"
                },
                "routingKey": {
                    "type": "string",
                    "description": "A routing key for the binding.\n"
                },
                "source": {
                    "type": "string",
                    "description": "The source exchange.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "destination",
                "destinationType",
                "propertiesKey",
                "source",
                "vhost"
            ],
            "inputProperties": {
                "arguments": {
                    "type": "object",
                    "additionalProperties": {
                        "type": "string"
                    },
                    "description": "Additional key/value arguments for the binding.\n",
                    "willReplaceOnChanges": true
                },
                "argumentsJson": {
                    "type": "string",
                    "willReplaceOnChanges": true
                },
                "destination": {
                    "type": "string",
                    "description": "The destination queue or exchange.\n",
                    "willReplaceOnChanges": true
                },
                "destinationType": {
                    "type": "string",
                    "description": "The type of destination (queue or exchange).\n",
                    "willReplaceOnChanges": true
                },
                "routingKey": {
                    "type": "string",
                    "description": "A routing key for the binding.\n",
                    "willReplaceOnChanges": true
                },
                "source": {
                    "type": "string",
                    "description": "The source exchange.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "destination",
                "destinationType",
                "source",
                "vhost"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Binding resources.\n",
                "properties": {
                    "arguments": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "string"
                        },
                        "description": "Additional key/value arguments for the binding.\n",
                        "willReplaceOnChanges": true
                    },
                    "argumentsJson": {
                        "type": "string",
                        "willReplaceOnChanges": true
                    },
                    "destination": {
                        "type": "string",
                        "description": "The destination queue or exchange.\n",
                        "willReplaceOnChanges": true
                    },
                    "destinationType": {
                        "type": "string",
                        "description": "The type of destination (queue or exchange).\n",
                        "willReplaceOnChanges": true
                    },
                    "propertiesKey": {
                        "type": "string",
                        "description": "A unique key to refer to the binding.\n"
                    },
                    "routingKey": {
                        "type": "string",
                        "description": "A routing key for the binding.\n",
                        "willReplaceOnChanges": true
                    },
                    "source": {
                        "type": "string",
                        "description": "The source exchange.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/exchange:Exchange": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.Exchange`\" pulumi-lang-dotnet=\"`rabbitmq.Exchange`\" pulumi-lang-go=\"`Exchange`\" pulumi-lang-python=\"`Exchange`\" pulumi-lang-yaml=\"`rabbitmq.Exchange`\" pulumi-lang-java=\"`rabbitmq.Exchange`\"\u003e`rabbitmq.Exchange`\u003c/span\u003e` resource creates and manages an exchange.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\nconst testExchange = new rabbitmq.Exchange(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    settings: {\n        type: \"fanout\",\n        durable: false,\n        autoDelete: true,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\ntest_exchange = rabbitmq.Exchange(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    settings={\n        \"type\": \"fanout\",\n        \"durable\": False,\n        \"auto_delete\": True,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    var testExchange = new RabbitMQ.Index.Exchange(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        Settings = new RabbitMQ.Inputs.ExchangeSettingsArgs\n        {\n            Type = \"fanout\",\n            Durable = false,\n            AutoDelete = true,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewExchange(ctx, \"test\", \u0026rabbitmq.ExchangeArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tSettings: \u0026rabbitmq.ExchangeSettingsArgs{\n\t\t\t\tType:       pulumi.String(\"fanout\"),\n\t\t\t\tDurable:    pulumi.Bool(false),\n\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.Exchange;\nimport com.pulumi.rabbitmq.ExchangeArgs;\nimport com.pulumi.rabbitmq.inputs.ExchangeSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        var testExchange = new Exchange(\"testExchange\", ExchangeArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .settings(ExchangeSettingsArgs.builder()\n                .type(\"fanout\")\n                .durable(false)\n                .autoDelete(true)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  testExchange:\n    type: rabbitmq:Exchange\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      settings:\n        type: fanout\n        durable: false\n        autoDelete: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nExchanges can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of  `name@vhost`.\nE.g.\n\n```sh\n$ pulumi import rabbitmq:index/exchange:Exchange test test@vhost\n```\n\n",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of the exchange.\n"
                },
                "settings": {
                    "$ref": "#/types/rabbitmq:index/ExchangeSettings:ExchangeSettings",
                    "description": "The settings of the exchange. The structure is\ndescribed below.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "name",
                "settings"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "The name of the exchange.\n",
                    "willReplaceOnChanges": true
                },
                "settings": {
                    "$ref": "#/types/rabbitmq:index/ExchangeSettings:ExchangeSettings",
                    "description": "The settings of the exchange. The structure is\ndescribed below.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "settings"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Exchange resources.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name of the exchange.\n",
                        "willReplaceOnChanges": true
                    },
                    "settings": {
                        "$ref": "#/types/rabbitmq:index/ExchangeSettings:ExchangeSettings",
                        "description": "The settings of the exchange. The structure is\ndescribed below.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/federationUpstream:FederationUpstream": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.FederationUpstream`\" pulumi-lang-dotnet=\"`rabbitmq.FederationUpstream`\" pulumi-lang-go=\"`FederationUpstream`\" pulumi-lang-python=\"`FederationUpstream`\" pulumi-lang-yaml=\"`rabbitmq.FederationUpstream`\" pulumi-lang-java=\"`rabbitmq.FederationUpstream`\"\u003e`rabbitmq.FederationUpstream`\u003c/span\u003e` resource creates and manages a federation upstream parameter.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\n// downstream exchange\nconst foo = new rabbitmq.Exchange(\"foo\", {\n    name: \"foo\",\n    vhost: guest.vhost,\n    settings: {\n        type: \"topic\",\n        durable: true,\n    },\n});\n// upstream broker\nconst fooFederationUpstream = new rabbitmq.FederationUpstream(\"foo\", {\n    name: \"foo\",\n    vhost: guest.vhost,\n    definition: {\n        uri: \"amqp://guest:guest@upstream-server-name:5672/%2f\",\n        prefetchCount: 1000,\n        reconnectDelay: 5,\n        ackMode: \"on-confirm\",\n        trustUserId: false,\n        maxHops: 1,\n    },\n});\nconst fooPolicy = new rabbitmq.Policy(\"foo\", {\n    name: \"foo\",\n    vhost: guest.vhost,\n    policy: {\n        pattern: pulumi.interpolate`(^${foo.name}$)`,\n        priority: 1,\n        applyTo: \"exchanges\",\n        definition: {\n            \"federation-upstream\": fooFederationUpstream.name,\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\n# downstream exchange\nfoo = rabbitmq.Exchange(\"foo\",\n    name=\"foo\",\n    vhost=guest.vhost,\n    settings={\n        \"type\": \"topic\",\n        \"durable\": True,\n    })\n# upstream broker\nfoo_federation_upstream = rabbitmq.FederationUpstream(\"foo\",\n    name=\"foo\",\n    vhost=guest.vhost,\n    definition={\n        \"uri\": \"amqp://guest:guest@upstream-server-name:5672/%2f\",\n        \"prefetch_count\": 1000,\n        \"reconnect_delay\": 5,\n        \"ack_mode\": \"on-confirm\",\n        \"trust_user_id\": False,\n        \"max_hops\": 1,\n    })\nfoo_policy = rabbitmq.Policy(\"foo\",\n    name=\"foo\",\n    vhost=guest.vhost,\n    policy={\n        \"pattern\": foo.name.apply(lambda name: f\"(^{name}$)\"),\n        \"priority\": 1,\n        \"apply_to\": \"exchanges\",\n        \"definition\": {\n            \"federation-upstream\": foo_federation_upstream.name,\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    // downstream exchange\n    var foo = new RabbitMQ.Index.Exchange(\"foo\", new()\n    {\n        Name = \"foo\",\n        Vhost = guest.Vhost,\n        Settings = new RabbitMQ.Inputs.ExchangeSettingsArgs\n        {\n            Type = \"topic\",\n            Durable = true,\n        },\n    });\n\n    // upstream broker\n    var fooFederationUpstream = new RabbitMQ.Index.FederationUpstream(\"foo\", new()\n    {\n        Name = \"foo\",\n        Vhost = guest.Vhost,\n        Definition = new RabbitMQ.Inputs.FederationUpstreamDefinitionArgs\n        {\n            Uri = \"amqp://guest:guest@upstream-server-name:5672/%2f\",\n            PrefetchCount = 1000,\n            ReconnectDelay = 5,\n            AckMode = \"on-confirm\",\n            TrustUserId = false,\n            MaxHops = 1,\n        },\n    });\n\n    var fooPolicy = new RabbitMQ.Index.Policy(\"foo\", new()\n    {\n        Name = \"foo\",\n        Vhost = guest.Vhost,\n        PolicyBlock = new RabbitMQ.Inputs.PolicyPolicyArgs\n        {\n            Pattern = foo.Name.Apply(name =\u003e $\"(^{name}$)\"),\n            Priority = 1,\n            ApplyTo = \"exchanges\",\n            Definition = \n            {\n                { \"federation-upstream\", fooFederationUpstream.Name },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// downstream exchange\n\t\tfoo, err := rabbitmq.NewExchange(ctx, \"foo\", \u0026rabbitmq.ExchangeArgs{\n\t\t\tName:  pulumi.String(\"foo\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tSettings: \u0026rabbitmq.ExchangeSettingsArgs{\n\t\t\t\tType:    pulumi.String(\"topic\"),\n\t\t\t\tDurable: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t// upstream broker\n\t\tfooFederationUpstream, err := rabbitmq.NewFederationUpstream(ctx, \"foo\", \u0026rabbitmq.FederationUpstreamArgs{\n\t\t\tName:  pulumi.String(\"foo\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tDefinition: \u0026rabbitmq.FederationUpstreamDefinitionArgs{\n\t\t\t\tUri:            pulumi.String(\"amqp://guest:guest@upstream-server-name:5672/%2f\"),\n\t\t\t\tPrefetchCount:  pulumi.Int(1000),\n\t\t\t\tReconnectDelay: pulumi.Int(5),\n\t\t\t\tAckMode:        pulumi.String(\"on-confirm\"),\n\t\t\t\tTrustUserId:    pulumi.Bool(false),\n\t\t\t\tMaxHops:        pulumi.Int(1),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewPolicy(ctx, \"foo\", \u0026rabbitmq.PolicyArgs{\n\t\t\tName:  pulumi.String(\"foo\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tPolicy: \u0026rabbitmq.PolicyPolicyArgs{\n\t\t\t\tPattern: foo.Name.ApplyT(func(name string) (string, error) {\n\t\t\t\t\treturn fmt.Sprintf(\"(^%v$)\", name), nil\n\t\t\t\t}).(pulumi.StringOutput),\n\t\t\t\tPriority: pulumi.Int(1),\n\t\t\t\tApplyTo:  pulumi.String(\"exchanges\"),\n\t\t\t\tDefinition: pulumi.StringMap{\n\t\t\t\t\t\"federation-upstream\": fooFederationUpstream.Name,\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.Exchange;\nimport com.pulumi.rabbitmq.ExchangeArgs;\nimport com.pulumi.rabbitmq.inputs.ExchangeSettingsArgs;\nimport com.pulumi.rabbitmq.FederationUpstream;\nimport com.pulumi.rabbitmq.FederationUpstreamArgs;\nimport com.pulumi.rabbitmq.inputs.FederationUpstreamDefinitionArgs;\nimport com.pulumi.rabbitmq.Policy;\nimport com.pulumi.rabbitmq.PolicyArgs;\nimport com.pulumi.rabbitmq.inputs.PolicyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        // downstream exchange\n        var foo = new Exchange(\"foo\", ExchangeArgs.builder()\n            .name(\"foo\")\n            .vhost(guest.vhost())\n            .settings(ExchangeSettingsArgs.builder()\n                .type(\"topic\")\n                .durable(true)\n                .build())\n            .build());\n\n        // upstream broker\n        var fooFederationUpstream = new FederationUpstream(\"fooFederationUpstream\", FederationUpstreamArgs.builder()\n            .name(\"foo\")\n            .vhost(guest.vhost())\n            .definition(FederationUpstreamDefinitionArgs.builder()\n                .uri(\"amqp://guest:guest@upstream-server-name:5672/%2f\")\n                .prefetchCount(1000)\n                .reconnectDelay(5)\n                .ackMode(\"on-confirm\")\n                .trustUserId(false)\n                .maxHops(1)\n                .build())\n            .build());\n\n        var fooPolicy = new Policy(\"fooPolicy\", PolicyArgs.builder()\n            .name(\"foo\")\n            .vhost(guest.vhost())\n            .policy(PolicyPolicyArgs.builder()\n                .pattern(foo.name().applyValue(_name -\u003e String.format(\"(^%s$)\", _name)))\n                .priority(1)\n                .applyTo(\"exchanges\")\n                .definition(Map.of(\"federation-upstream\", fooFederationUpstream.name()))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  # downstream exchange\n  foo:\n    type: rabbitmq:Exchange\n    properties:\n      name: foo\n      vhost: ${guest.vhost}\n      settings:\n        type: topic\n        durable: 'true'\n  # upstream broker\n  fooFederationUpstream:\n    type: rabbitmq:FederationUpstream\n    name: foo\n    properties:\n      name: foo\n      vhost: ${guest.vhost}\n      definition:\n        uri: amqp://guest:guest@upstream-server-name:5672/%2f\n        prefetchCount: 1000\n        reconnectDelay: 5\n        ackMode: on-confirm\n        trustUserId: false\n        maxHops: 1\n  fooPolicy:\n    type: rabbitmq:Policy\n    name: foo\n    properties:\n      name: foo\n      vhost: ${guest.vhost}\n      policy:\n        pattern: (^${foo.name}$)\n        priority: 1\n        applyTo: exchanges\n        definition:\n          federation-upstream: ${fooFederationUpstream.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nA Federation upstream can be imported using the resource \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of `name@vhost`, e.g.\n\n```sh\n$ pulumi import rabbitmq:index/federationUpstream:FederationUpstream foo foo@test\n```\n\n",
            "properties": {
                "component": {
                    "type": "string",
                    "description": "Set to `federation-upstream` by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.\n"
                },
                "definition": {
                    "$ref": "#/types/rabbitmq:index/FederationUpstreamDefinition:FederationUpstreamDefinition",
                    "description": "The configuration of the federation upstream. The structure is described below.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the federation upstream.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "component",
                "definition",
                "name",
                "vhost"
            ],
            "inputProperties": {
                "definition": {
                    "$ref": "#/types/rabbitmq:index/FederationUpstreamDefinition:FederationUpstreamDefinition",
                    "description": "The configuration of the federation upstream. The structure is described below.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the federation upstream.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "definition",
                "vhost"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering FederationUpstream resources.\n",
                "properties": {
                    "component": {
                        "type": "string",
                        "description": "Set to `federation-upstream` by the underlying RabbitMQ provider. You do not set this attribute but will see it in state and plan output.\n"
                    },
                    "definition": {
                        "$ref": "#/types/rabbitmq:index/FederationUpstreamDefinition:FederationUpstreamDefinition",
                        "description": "The configuration of the federation upstream. The structure is described below.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the federation upstream.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/operatorPolicy:OperatorPolicy": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.OperatorPolicy`\" pulumi-lang-dotnet=\"`rabbitmq.OperatorPolicy`\" pulumi-lang-go=\"`OperatorPolicy`\" pulumi-lang-python=\"`OperatorPolicy`\" pulumi-lang-yaml=\"`rabbitmq.OperatorPolicy`\" pulumi-lang-java=\"`rabbitmq.OperatorPolicy`\"\u003e`rabbitmq.OperatorPolicy`\u003c/span\u003e` resource creates and manages operator policies for queues.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\nconst testOperatorPolicy = new rabbitmq.OperatorPolicy(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    policy: {\n        pattern: \".*\",\n        priority: 0,\n        applyTo: \"queues\",\n        definition: {\n            \"message-ttl\": \"3600000\",\n            expires: \"1800000\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\ntest_operator_policy = rabbitmq.OperatorPolicy(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    policy={\n        \"pattern\": \".*\",\n        \"priority\": 0,\n        \"apply_to\": \"queues\",\n        \"definition\": {\n            \"message-ttl\": \"3600000\",\n            \"expires\": \"1800000\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    var testOperatorPolicy = new RabbitMQ.Index.OperatorPolicy(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        Policy = new RabbitMQ.Inputs.OperatorPolicyPolicyArgs\n        {\n            Pattern = \".*\",\n            Priority = 0,\n            ApplyTo = \"queues\",\n            Definition = \n            {\n                { \"message-ttl\", \"3600000\" },\n                { \"expires\", \"1800000\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewOperatorPolicy(ctx, \"test\", \u0026rabbitmq.OperatorPolicyArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tPolicy: \u0026rabbitmq.OperatorPolicyPolicyArgs{\n\t\t\t\tPattern:  pulumi.String(\".*\"),\n\t\t\t\tPriority: pulumi.Int(0),\n\t\t\t\tApplyTo:  pulumi.String(\"queues\"),\n\t\t\t\tDefinition: pulumi.StringMap{\n\t\t\t\t\t\"message-ttl\": pulumi.String(\"3600000\"),\n\t\t\t\t\t\"expires\":     pulumi.String(\"1800000\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.OperatorPolicy;\nimport com.pulumi.rabbitmq.OperatorPolicyArgs;\nimport com.pulumi.rabbitmq.inputs.OperatorPolicyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        var testOperatorPolicy = new OperatorPolicy(\"testOperatorPolicy\", OperatorPolicyArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .policy(OperatorPolicyPolicyArgs.builder()\n                .pattern(\".*\")\n                .priority(0)\n                .applyTo(\"queues\")\n                .definition(Map.ofEntries(\n                    Map.entry(\"message-ttl\", \"3600000\"),\n                    Map.entry(\"expires\", \"1800000\")\n                ))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  testOperatorPolicy:\n    type: rabbitmq:OperatorPolicy\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      policy:\n        pattern: .*\n        priority: 0\n        applyTo: queues\n        definition:\n          message-ttl: 3.6e+06\n          expires: 1.8e+06\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nOperator policies can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of `name@vhost`.\nE.g.\n\n```sh\n$ pulumi import rabbitmq:index/operatorPolicy:OperatorPolicy test name@vhost\n```\n\n",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of the operator policy.\n"
                },
                "policy": {
                    "$ref": "#/types/rabbitmq:index/OperatorPolicyPolicy:OperatorPolicyPolicy",
                    "description": "The settings of the operator policy. The structure is\ndescribed below.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "name",
                "policy",
                "vhost"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "The name of the operator policy.\n",
                    "willReplaceOnChanges": true
                },
                "policy": {
                    "$ref": "#/types/rabbitmq:index/OperatorPolicyPolicy:OperatorPolicyPolicy",
                    "description": "The settings of the operator policy. The structure is\ndescribed below.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "policy",
                "vhost"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering OperatorPolicy resources.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name of the operator policy.\n",
                        "willReplaceOnChanges": true
                    },
                    "policy": {
                        "$ref": "#/types/rabbitmq:index/OperatorPolicyPolicy:OperatorPolicyPolicy",
                        "description": "The settings of the operator policy. The structure is\ndescribed below.\n"
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/permissions:Permissions": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.Permissions`\" pulumi-lang-dotnet=\"`rabbitmq.Permissions`\" pulumi-lang-go=\"`Permissions`\" pulumi-lang-python=\"`Permissions`\" pulumi-lang-yaml=\"`rabbitmq.Permissions`\" pulumi-lang-java=\"`rabbitmq.Permissions`\"\u003e`rabbitmq.Permissions`\u003c/span\u003e` resource creates and manages a user's set of\npermissions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst testUser = new rabbitmq.User(\"test\", {\n    name: \"mctest\",\n    password: \"foobar\",\n    tags: [\"administrator\"],\n});\nconst testPermissions = new rabbitmq.Permissions(\"test\", {\n    user: testUser.name,\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\ntest_user = rabbitmq.User(\"test\",\n    name=\"mctest\",\n    password=\"foobar\",\n    tags=[\"administrator\"])\ntest_permissions = rabbitmq.Permissions(\"test\",\n    user=test_user.name,\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var testUser = new RabbitMQ.Index.User(\"test\", new()\n    {\n        Name = \"mctest\",\n        Password = \"foobar\",\n        Tags = new[]\n        {\n            \"administrator\",\n        },\n    });\n\n    var testPermissions = new RabbitMQ.Index.Permissions(\"test\", new()\n    {\n        User = testUser.Name,\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := rabbitmq.NewUser(ctx, \"test\", \u0026rabbitmq.UserArgs{\n\t\t\tName:     pulumi.String(\"mctest\"),\n\t\t\tPassword: pulumi.String(\"foobar\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"administrator\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewPermissions(ctx, \"test\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  testUser.Name,\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.User;\nimport com.pulumi.rabbitmq.UserArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(\"mctest\")\n            .password(\"foobar\")\n            .tags(\"administrator\")\n            .build());\n\n        var testPermissions = new Permissions(\"testPermissions\", PermissionsArgs.builder()\n            .user(testUser.name())\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  testUser:\n    type: rabbitmq:User\n    name: test\n    properties:\n      name: mctest\n      password: foobar\n      tags:\n        - administrator\n  testPermissions:\n    type: rabbitmq:Permissions\n    name: test\n    properties:\n      user: ${testUser.name}\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPermissions can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of  `user@vhost`.\nE.g.\n\n```sh\n$ pulumi import rabbitmq:index/permissions:Permissions test user@vhost\n```\n\n",
            "properties": {
                "permissions": {
                    "$ref": "#/types/rabbitmq:index/PermissionsPermissions:PermissionsPermissions",
                    "description": "The settings of the permissions. The structure is\ndescribed below.\n",
                    "language": {
                        "csharp": {
                            "name": "PermissionDetails"
                        }
                    }
                },
                "user": {
                    "type": "string",
                    "description": "The user to apply the permissions to.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "permissions",
                "user"
            ],
            "inputProperties": {
                "permissions": {
                    "$ref": "#/types/rabbitmq:index/PermissionsPermissions:PermissionsPermissions",
                    "description": "The settings of the permissions. The structure is\ndescribed below.\n",
                    "language": {
                        "csharp": {
                            "name": "PermissionDetails"
                        }
                    }
                },
                "user": {
                    "type": "string",
                    "description": "The user to apply the permissions to.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "permissions",
                "user"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Permissions resources.\n",
                "properties": {
                    "permissions": {
                        "$ref": "#/types/rabbitmq:index/PermissionsPermissions:PermissionsPermissions",
                        "description": "The settings of the permissions. The structure is\ndescribed below.\n",
                        "language": {
                            "csharp": {
                                "name": "PermissionDetails"
                            }
                        }
                    },
                    "user": {
                        "type": "string",
                        "description": "The user to apply the permissions to.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/policy:Policy": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.Policy`\" pulumi-lang-dotnet=\"`rabbitmq.Policy`\" pulumi-lang-go=\"`Policy`\" pulumi-lang-python=\"`Policy`\" pulumi-lang-yaml=\"`rabbitmq.Policy`\" pulumi-lang-java=\"`rabbitmq.Policy`\"\u003e`rabbitmq.Policy`\u003c/span\u003e` resource creates and manages policies for exchanges\nand queues.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\nconst testPolicy = new rabbitmq.Policy(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    policy: {\n        pattern: \".*\",\n        priority: 0,\n        applyTo: \"all\",\n        definition: {\n            \"ha-mode\": \"all\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\ntest_policy = rabbitmq.Policy(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    policy={\n        \"pattern\": \".*\",\n        \"priority\": 0,\n        \"apply_to\": \"all\",\n        \"definition\": {\n            \"ha-mode\": \"all\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    var testPolicy = new RabbitMQ.Index.Policy(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        PolicyBlock = new RabbitMQ.Inputs.PolicyPolicyArgs\n        {\n            Pattern = \".*\",\n            Priority = 0,\n            ApplyTo = \"all\",\n            Definition = \n            {\n                { \"ha-mode\", \"all\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewPolicy(ctx, \"test\", \u0026rabbitmq.PolicyArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tPolicy: \u0026rabbitmq.PolicyPolicyArgs{\n\t\t\t\tPattern:  pulumi.String(\".*\"),\n\t\t\t\tPriority: pulumi.Int(0),\n\t\t\t\tApplyTo:  pulumi.String(\"all\"),\n\t\t\t\tDefinition: pulumi.StringMap{\n\t\t\t\t\t\"ha-mode\": pulumi.String(\"all\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.Policy;\nimport com.pulumi.rabbitmq.PolicyArgs;\nimport com.pulumi.rabbitmq.inputs.PolicyPolicyArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        var testPolicy = new Policy(\"testPolicy\", PolicyArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .policy(PolicyPolicyArgs.builder()\n                .pattern(\".*\")\n                .priority(0)\n                .applyTo(\"all\")\n                .definition(Map.of(\"ha-mode\", \"all\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  testPolicy:\n    type: rabbitmq:Policy\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      policy:\n        pattern: .*\n        priority: 0\n        applyTo: all\n        definition:\n          ha-mode: all\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPolicies can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of `name@vhost`.\nE.g.\n\n```sh\n$ pulumi import rabbitmq:index/policy:Policy test name@vhost\n```\n\n",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of the policy.\n"
                },
                "policy": {
                    "$ref": "#/types/rabbitmq:index/PolicyPolicy:PolicyPolicy",
                    "description": "The settings of the policy. The structure is\ndescribed below.\n",
                    "language": {
                        "csharp": {
                            "name": "PolicyBlock"
                        }
                    }
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "name",
                "policy",
                "vhost"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "The name of the policy.\n",
                    "willReplaceOnChanges": true
                },
                "policy": {
                    "$ref": "#/types/rabbitmq:index/PolicyPolicy:PolicyPolicy",
                    "description": "The settings of the policy. The structure is\ndescribed below.\n",
                    "language": {
                        "csharp": {
                            "name": "PolicyBlock"
                        }
                    }
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "policy",
                "vhost"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Policy resources.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name of the policy.\n",
                        "willReplaceOnChanges": true
                    },
                    "policy": {
                        "$ref": "#/types/rabbitmq:index/PolicyPolicy:PolicyPolicy",
                        "description": "The settings of the policy. The structure is\ndescribed below.\n",
                        "language": {
                            "csharp": {
                                "name": "PolicyBlock"
                            }
                        }
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/queue:Queue": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.Queue`\" pulumi-lang-dotnet=\"`rabbitmq.Queue`\" pulumi-lang-go=\"`Queue`\" pulumi-lang-python=\"`Queue`\" pulumi-lang-yaml=\"`rabbitmq.Queue`\" pulumi-lang-java=\"`rabbitmq.Queue`\"\u003e`rabbitmq.Queue`\u003c/span\u003e` resource creates and manages a queue.\n\n## Example Usage\n\n### Basic Example\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\nconst testQueue = new rabbitmq.Queue(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    settings: {\n        durable: false,\n        autoDelete: true,\n        arguments: {\n            \"x-queue-type\": \"quorum\",\n        },\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\ntest_queue = rabbitmq.Queue(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    settings={\n        \"durable\": False,\n        \"auto_delete\": True,\n        \"arguments\": {\n            \"x-queue-type\": \"quorum\",\n        },\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    var testQueue = new RabbitMQ.Index.Queue(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        Settings = new RabbitMQ.Inputs.QueueSettingsArgs\n        {\n            Durable = false,\n            AutoDelete = true,\n            Arguments = \n            {\n                { \"x-queue-type\", \"quorum\" },\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewQueue(ctx, \"test\", \u0026rabbitmq.QueueArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tSettings: \u0026rabbitmq.QueueSettingsArgs{\n\t\t\t\tDurable:    pulumi.Bool(false),\n\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t\tArguments: pulumi.StringMap{\n\t\t\t\t\t\"x-queue-type\": pulumi.String(\"quorum\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.Queue;\nimport com.pulumi.rabbitmq.QueueArgs;\nimport com.pulumi.rabbitmq.inputs.QueueSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        var testQueue = new Queue(\"testQueue\", QueueArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .settings(QueueSettingsArgs.builder()\n                .durable(false)\n                .autoDelete(true)\n                .arguments(Map.of(\"x-queue-type\", \"quorum\"))\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  testQueue:\n    type: rabbitmq:Queue\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      settings:\n        durable: false\n        autoDelete: true\n        arguments:\n          x-queue-type: quorum\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n### Example With JSON Arguments\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst config = new pulumi.Config();\nconst arguments = config.get(\"arguments\") || `{\n  \"x-message-ttl\": 5000\n}\n`;\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst guest = new rabbitmq.Permissions(\"guest\", {\n    user: \"guest\",\n    vhost: test.name,\n    permissions: {\n        configure: \".*\",\n        write: \".*\",\n        read: \".*\",\n    },\n});\nconst testQueue = new rabbitmq.Queue(\"test\", {\n    name: \"test\",\n    vhost: guest.vhost,\n    settings: {\n        durable: false,\n        autoDelete: true,\n        argumentsJson: arguments,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\nconfig = pulumi.Config()\narguments = config.get(\"arguments\")\nif arguments is None:\n    arguments = \"\"\"{\n  \"x-message-ttl\": 5000\n}\n\"\"\"\ntest = rabbitmq.VHost(\"test\", name=\"test\")\nguest = rabbitmq.Permissions(\"guest\",\n    user=\"guest\",\n    vhost=test.name,\n    permissions={\n        \"configure\": \".*\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    })\ntest_queue = rabbitmq.Queue(\"test\",\n    name=\"test\",\n    vhost=guest.vhost,\n    settings={\n        \"durable\": False,\n        \"auto_delete\": True,\n        \"arguments_json\": arguments,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var config = new Config();\n    var arguments = config.Get(\"arguments\") ?? @\"{\n  \"\"x-message-ttl\"\": 5000\n}\n\";\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var guest = new RabbitMQ.Index.Permissions(\"guest\", new()\n    {\n        User = \"guest\",\n        Vhost = test.Name,\n        PermissionDetails = new RabbitMQ.Inputs.PermissionsPermissionsArgs\n        {\n            Configure = \".*\",\n            Write = \".*\",\n            Read = \".*\",\n        },\n    });\n\n    var testQueue = new RabbitMQ.Index.Queue(\"test\", new()\n    {\n        Name = \"test\",\n        Vhost = guest.Vhost,\n        Settings = new RabbitMQ.Inputs.QueueSettingsArgs\n        {\n            Durable = false,\n            AutoDelete = true,\n            ArgumentsJson = arguments,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi/config\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tcfg := config.New(ctx, \"\")\n\t\targuments := \"{\\n  \\\"x-message-ttl\\\": 5000\\n}\\n\"\n\t\tif param := cfg.Get(\"arguments\"); param != \"\" {\n\t\t\targuments = param\n\t\t}\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tguest, err := rabbitmq.NewPermissions(ctx, \"guest\", \u0026rabbitmq.PermissionsArgs{\n\t\t\tUser:  pulumi.String(\"guest\"),\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: \u0026rabbitmq.PermissionsPermissionsArgs{\n\t\t\t\tConfigure: pulumi.String(\".*\"),\n\t\t\t\tWrite:     pulumi.String(\".*\"),\n\t\t\t\tRead:      pulumi.String(\".*\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewQueue(ctx, \"test\", \u0026rabbitmq.QueueArgs{\n\t\t\tName:  pulumi.String(\"test\"),\n\t\t\tVhost: guest.Vhost,\n\t\t\tSettings: \u0026rabbitmq.QueueSettingsArgs{\n\t\t\t\tDurable:       pulumi.Bool(false),\n\t\t\t\tAutoDelete:    pulumi.Bool(true),\n\t\t\t\tArgumentsJson: pulumi.String(pulumi.String(arguments)),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Permissions;\nimport com.pulumi.rabbitmq.PermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.PermissionsPermissionsArgs;\nimport com.pulumi.rabbitmq.Queue;\nimport com.pulumi.rabbitmq.QueueArgs;\nimport com.pulumi.rabbitmq.inputs.QueueSettingsArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        final var config = ctx.config();\n        final var arguments = config.get(\"arguments\").orElse(\"\"\"\n{\n  \"x-message-ttl\": 5000\n}\n        \"\"\");\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var guest = new Permissions(\"guest\", PermissionsArgs.builder()\n            .user(\"guest\")\n            .vhost(test.name())\n            .permissions(PermissionsPermissionsArgs.builder()\n                .configure(\".*\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n        var testQueue = new Queue(\"testQueue\", QueueArgs.builder()\n            .name(\"test\")\n            .vhost(guest.vhost())\n            .settings(QueueSettingsArgs.builder()\n                .durable(false)\n                .autoDelete(true)\n                .argumentsJson(arguments)\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nconfiguration:\n  arguments:\n    type: string\n    default: |\n      {\n        \"x-message-ttl\": 5000\n      }\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  guest:\n    type: rabbitmq:Permissions\n    properties:\n      user: guest\n      vhost: ${test.name}\n      permissions:\n        configure: .*\n        write: .*\n        read: .*\n  testQueue:\n    type: rabbitmq:Queue\n    name: test\n    properties:\n      name: test\n      vhost: ${guest.vhost}\n      settings:\n        durable: false\n        autoDelete: true\n        argumentsJson: ${arguments}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nQueues can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of `name@vhost`. E.g.\n\n```sh\n$ pulumi import rabbitmq:index/queue:Queue test name@vhost\n```\n\n",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of the queue.\n"
                },
                "settings": {
                    "$ref": "#/types/rabbitmq:index/QueueSettings:QueueSettings",
                    "description": "The settings of the queue. The structure is\ndescribed below.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "name",
                "settings"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "The name of the queue.\n",
                    "willReplaceOnChanges": true
                },
                "settings": {
                    "$ref": "#/types/rabbitmq:index/QueueSettings:QueueSettings",
                    "description": "The settings of the queue. The structure is\ndescribed below.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "settings"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Queue resources.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name of the queue.\n",
                        "willReplaceOnChanges": true
                    },
                    "settings": {
                        "$ref": "#/types/rabbitmq:index/QueueSettings:QueueSettings",
                        "description": "The settings of the queue. The structure is\ndescribed below.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/shovel:Shovel": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.Shovel`\" pulumi-lang-dotnet=\"`rabbitmq.Shovel`\" pulumi-lang-go=\"`Shovel`\" pulumi-lang-python=\"`Shovel`\" pulumi-lang-yaml=\"`rabbitmq.Shovel`\" pulumi-lang-java=\"`rabbitmq.Shovel`\"\u003e`rabbitmq.Shovel`\u003c/span\u003e` resource creates and manages a dynamic shovel.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst testExchange = new rabbitmq.Exchange(\"test\", {\n    name: \"test_exchange\",\n    vhost: test.name,\n    settings: {\n        type: \"fanout\",\n        durable: false,\n        autoDelete: true,\n    },\n});\nconst testQueue = new rabbitmq.Queue(\"test\", {\n    name: \"test_queue\",\n    vhost: test.name,\n    settings: {\n        durable: false,\n        autoDelete: true,\n    },\n});\nconst shovelTest = new rabbitmq.Shovel(\"shovelTest\", {\n    name: \"shovelTest\",\n    vhost: test.name,\n    info: {\n        sourceUri: \"amqp:///test\",\n        sourceExchange: testExchange.name,\n        sourceExchangeKey: \"test\",\n        destinationUri: \"amqp:///test\",\n        destinationQueue: testQueue.name,\n    },\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\ntest_exchange = rabbitmq.Exchange(\"test\",\n    name=\"test_exchange\",\n    vhost=test.name,\n    settings={\n        \"type\": \"fanout\",\n        \"durable\": False,\n        \"auto_delete\": True,\n    })\ntest_queue = rabbitmq.Queue(\"test\",\n    name=\"test_queue\",\n    vhost=test.name,\n    settings={\n        \"durable\": False,\n        \"auto_delete\": True,\n    })\nshovel_test = rabbitmq.Shovel(\"shovelTest\",\n    name=\"shovelTest\",\n    vhost=test.name,\n    info={\n        \"source_uri\": \"amqp:///test\",\n        \"source_exchange\": test_exchange.name,\n        \"source_exchange_key\": \"test\",\n        \"destination_uri\": \"amqp:///test\",\n        \"destination_queue\": test_queue.name,\n    })\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var testExchange = new RabbitMQ.Index.Exchange(\"test\", new()\n    {\n        Name = \"test_exchange\",\n        Vhost = test.Name,\n        Settings = new RabbitMQ.Inputs.ExchangeSettingsArgs\n        {\n            Type = \"fanout\",\n            Durable = false,\n            AutoDelete = true,\n        },\n    });\n\n    var testQueue = new RabbitMQ.Index.Queue(\"test\", new()\n    {\n        Name = \"test_queue\",\n        Vhost = test.Name,\n        Settings = new RabbitMQ.Inputs.QueueSettingsArgs\n        {\n            Durable = false,\n            AutoDelete = true,\n        },\n    });\n\n    var shovelTest = new RabbitMQ.Index.Shovel(\"shovelTest\", new()\n    {\n        Name = \"shovelTest\",\n        Vhost = test.Name,\n        Info = new RabbitMQ.Inputs.ShovelInfoArgs\n        {\n            SourceUri = \"amqp:///test\",\n            SourceExchange = testExchange.Name,\n            SourceExchangeKey = \"test\",\n            DestinationUri = \"amqp:///test\",\n            DestinationQueue = testQueue.Name,\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestExchange, err := rabbitmq.NewExchange(ctx, \"test\", \u0026rabbitmq.ExchangeArgs{\n\t\t\tName:  pulumi.String(\"test_exchange\"),\n\t\t\tVhost: test.Name,\n\t\t\tSettings: \u0026rabbitmq.ExchangeSettingsArgs{\n\t\t\t\tType:       pulumi.String(\"fanout\"),\n\t\t\t\tDurable:    pulumi.Bool(false),\n\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestQueue, err := rabbitmq.NewQueue(ctx, \"test\", \u0026rabbitmq.QueueArgs{\n\t\t\tName:  pulumi.String(\"test_queue\"),\n\t\t\tVhost: test.Name,\n\t\t\tSettings: \u0026rabbitmq.QueueSettingsArgs{\n\t\t\t\tDurable:    pulumi.Bool(false),\n\t\t\t\tAutoDelete: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewShovel(ctx, \"shovelTest\", \u0026rabbitmq.ShovelArgs{\n\t\t\tName:  pulumi.String(\"shovelTest\"),\n\t\t\tVhost: test.Name,\n\t\t\tInfo: \u0026rabbitmq.ShovelInfoArgs{\n\t\t\t\tSourceUri:         pulumi.String(\"amqp:///test\"),\n\t\t\t\tSourceExchange:    testExchange.Name,\n\t\t\t\tSourceExchangeKey: pulumi.String(\"test\"),\n\t\t\t\tDestinationUri:    pulumi.String(\"amqp:///test\"),\n\t\t\t\tDestinationQueue:  testQueue.Name,\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.Exchange;\nimport com.pulumi.rabbitmq.ExchangeArgs;\nimport com.pulumi.rabbitmq.inputs.ExchangeSettingsArgs;\nimport com.pulumi.rabbitmq.Queue;\nimport com.pulumi.rabbitmq.QueueArgs;\nimport com.pulumi.rabbitmq.inputs.QueueSettingsArgs;\nimport com.pulumi.rabbitmq.Shovel;\nimport com.pulumi.rabbitmq.ShovelArgs;\nimport com.pulumi.rabbitmq.inputs.ShovelInfoArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var testExchange = new Exchange(\"testExchange\", ExchangeArgs.builder()\n            .name(\"test_exchange\")\n            .vhost(test.name())\n            .settings(ExchangeSettingsArgs.builder()\n                .type(\"fanout\")\n                .durable(false)\n                .autoDelete(true)\n                .build())\n            .build());\n\n        var testQueue = new Queue(\"testQueue\", QueueArgs.builder()\n            .name(\"test_queue\")\n            .vhost(test.name())\n            .settings(QueueSettingsArgs.builder()\n                .durable(false)\n                .autoDelete(true)\n                .build())\n            .build());\n\n        var shovelTest = new Shovel(\"shovelTest\", ShovelArgs.builder()\n            .name(\"shovelTest\")\n            .vhost(test.name())\n            .info(ShovelInfoArgs.builder()\n                .sourceUri(\"amqp:///test\")\n                .sourceExchange(testExchange.name())\n                .sourceExchangeKey(\"test\")\n                .destinationUri(\"amqp:///test\")\n                .destinationQueue(testQueue.name())\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  testExchange:\n    type: rabbitmq:Exchange\n    name: test\n    properties:\n      name: test_exchange\n      vhost: ${test.name}\n      settings:\n        type: fanout\n        durable: false\n        autoDelete: true\n  testQueue:\n    type: rabbitmq:Queue\n    name: test\n    properties:\n      name: test_queue\n      vhost: ${test.name}\n      settings:\n        durable: false\n        autoDelete: true\n  shovelTest:\n    type: rabbitmq:Shovel\n    properties:\n      name: shovelTest\n      vhost: ${test.name}\n      info:\n        sourceUri: amqp:///test\n        sourceExchange: ${testExchange.name}\n        sourceExchangeKey: test\n        destinationUri: amqp:///test\n        destinationQueue: ${testQueue.name}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nShovels can be imported using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e and \u003cspan pulumi-lang-nodejs=\"`vhost`\" pulumi-lang-dotnet=\"`Vhost`\" pulumi-lang-go=\"`vhost`\" pulumi-lang-python=\"`vhost`\" pulumi-lang-yaml=\"`vhost`\" pulumi-lang-java=\"`vhost`\"\u003e`vhost`\u003c/span\u003e\nE.g.\n\n```sh\n$ pulumi import rabbitmq:index/shovel:Shovel test shovelTest@test\n```\n\n",
            "properties": {
                "info": {
                    "$ref": "#/types/rabbitmq:index/ShovelInfo:ShovelInfo",
                    "description": "The settings of the dynamic shovel. The structure is\ndescribed below.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The shovel name.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "info",
                "name",
                "vhost"
            ],
            "inputProperties": {
                "info": {
                    "$ref": "#/types/rabbitmq:index/ShovelInfo:ShovelInfo",
                    "description": "The settings of the dynamic shovel. The structure is\ndescribed below.\n"
                },
                "name": {
                    "type": "string",
                    "description": "The shovel name.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "info",
                "vhost"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering Shovel resources.\n",
                "properties": {
                    "info": {
                        "$ref": "#/types/rabbitmq:index/ShovelInfo:ShovelInfo",
                        "description": "The settings of the dynamic shovel. The structure is\ndescribed below.\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The shovel name.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/topicPermissions:TopicPermissions": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.TopicPermissions`\" pulumi-lang-dotnet=\"`rabbitmq.TopicPermissions`\" pulumi-lang-go=\"`TopicPermissions`\" pulumi-lang-python=\"`TopicPermissions`\" pulumi-lang-yaml=\"`rabbitmq.TopicPermissions`\" pulumi-lang-java=\"`rabbitmq.TopicPermissions`\"\u003e`rabbitmq.TopicPermissions`\u003c/span\u003e` resource creates and manages a user's set of\ntopic permissions.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.VHost(\"test\", {name: \"test\"});\nconst testUser = new rabbitmq.User(\"test\", {\n    name: \"mctest\",\n    password: \"foobar\",\n    tags: [\"administrator\"],\n});\nconst testTopicPermissions = new rabbitmq.TopicPermissions(\"test\", {\n    user: testUser.name,\n    vhost: test.name,\n    permissions: [{\n        exchange: \"amq.topic\",\n        write: \".*\",\n        read: \".*\",\n    }],\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.VHost(\"test\", name=\"test\")\ntest_user = rabbitmq.User(\"test\",\n    name=\"mctest\",\n    password=\"foobar\",\n    tags=[\"administrator\"])\ntest_topic_permissions = rabbitmq.TopicPermissions(\"test\",\n    user=test_user.name,\n    vhost=test.name,\n    permissions=[{\n        \"exchange\": \"amq.topic\",\n        \"write\": \".*\",\n        \"read\": \".*\",\n    }])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.VHost(\"test\", new()\n    {\n        Name = \"test\",\n    });\n\n    var testUser = new RabbitMQ.Index.User(\"test\", new()\n    {\n        Name = \"mctest\",\n        Password = \"foobar\",\n        Tags = new[]\n        {\n            \"administrator\",\n        },\n    });\n\n    var testTopicPermissions = new RabbitMQ.Index.TopicPermissions(\"test\", new()\n    {\n        User = testUser.Name,\n        Vhost = test.Name,\n        Permissions = new[]\n        {\n            new RabbitMQ.Inputs.TopicPermissionsPermissionArgs\n            {\n                Exchange = \"amq.topic\",\n                Write = \".*\",\n                Read = \".*\",\n            },\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttest, err := rabbitmq.NewVHost(ctx, \"test\", \u0026rabbitmq.VHostArgs{\n\t\t\tName: pulumi.String(\"test\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\ttestUser, err := rabbitmq.NewUser(ctx, \"test\", \u0026rabbitmq.UserArgs{\n\t\t\tName:     pulumi.String(\"mctest\"),\n\t\t\tPassword: pulumi.String(\"foobar\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"administrator\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = rabbitmq.NewTopicPermissions(ctx, \"test\", \u0026rabbitmq.TopicPermissionsArgs{\n\t\t\tUser:  testUser.Name,\n\t\t\tVhost: test.Name,\n\t\t\tPermissions: rabbitmq.TopicPermissionsPermissionArray{\n\t\t\t\t\u0026rabbitmq.TopicPermissionsPermissionArgs{\n\t\t\t\t\tExchange: pulumi.String(\"amq.topic\"),\n\t\t\t\t\tWrite:    pulumi.String(\".*\"),\n\t\t\t\t\tRead:     pulumi.String(\".*\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport com.pulumi.rabbitmq.User;\nimport com.pulumi.rabbitmq.UserArgs;\nimport com.pulumi.rabbitmq.TopicPermissions;\nimport com.pulumi.rabbitmq.TopicPermissionsArgs;\nimport com.pulumi.rabbitmq.inputs.TopicPermissionsPermissionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new VHost(\"test\", VHostArgs.builder()\n            .name(\"test\")\n            .build());\n\n        var testUser = new User(\"testUser\", UserArgs.builder()\n            .name(\"mctest\")\n            .password(\"foobar\")\n            .tags(\"administrator\")\n            .build());\n\n        var testTopicPermissions = new TopicPermissions(\"testTopicPermissions\", TopicPermissionsArgs.builder()\n            .user(testUser.name())\n            .vhost(test.name())\n            .permissions(TopicPermissionsPermissionArgs.builder()\n                .exchange(\"amq.topic\")\n                .write(\".*\")\n                .read(\".*\")\n                .build())\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:VHost\n    properties:\n      name: test\n  testUser:\n    type: rabbitmq:User\n    name: test\n    properties:\n      name: mctest\n      password: foobar\n      tags:\n        - administrator\n  testTopicPermissions:\n    type: rabbitmq:TopicPermissions\n    name: test\n    properties:\n      user: ${testUser.name}\n      vhost: ${test.name}\n      permissions:\n        - exchange: amq.topic\n          write: .*\n          read: .*\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nPermissions can be imported using the \u003cspan pulumi-lang-nodejs=\"`id`\" pulumi-lang-dotnet=\"`Id`\" pulumi-lang-go=\"`id`\" pulumi-lang-python=\"`id`\" pulumi-lang-yaml=\"`id`\" pulumi-lang-java=\"`id`\"\u003e`id`\u003c/span\u003e which is composed of  `user@vhost`.\nE.g.\n\n```sh\n$ pulumi import rabbitmq:index/topicPermissions:TopicPermissions test user@vhost\n```\n\n",
            "properties": {
                "permissions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/rabbitmq:index/TopicPermissionsPermission:TopicPermissionsPermission"
                    },
                    "description": "The settings of the permissions. The structure is\ndescribed below.\n"
                },
                "user": {
                    "type": "string",
                    "description": "The user to apply the permissions to.\n"
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n"
                }
            },
            "required": [
                "permissions",
                "user"
            ],
            "inputProperties": {
                "permissions": {
                    "type": "array",
                    "items": {
                        "$ref": "#/types/rabbitmq:index/TopicPermissionsPermission:TopicPermissionsPermission"
                    },
                    "description": "The settings of the permissions. The structure is\ndescribed below.\n"
                },
                "user": {
                    "type": "string",
                    "description": "The user to apply the permissions to.\n",
                    "willReplaceOnChanges": true
                },
                "vhost": {
                    "type": "string",
                    "description": "The vhost to create the resource in.\n",
                    "willReplaceOnChanges": true
                }
            },
            "requiredInputs": [
                "permissions",
                "user"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering TopicPermissions resources.\n",
                "properties": {
                    "permissions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/types/rabbitmq:index/TopicPermissionsPermission:TopicPermissionsPermission"
                        },
                        "description": "The settings of the permissions. The structure is\ndescribed below.\n"
                    },
                    "user": {
                        "type": "string",
                        "description": "The user to apply the permissions to.\n",
                        "willReplaceOnChanges": true
                    },
                    "vhost": {
                        "type": "string",
                        "description": "The vhost to create the resource in.\n",
                        "willReplaceOnChanges": true
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/user:User": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.User`\" pulumi-lang-dotnet=\"`rabbitmq.User`\" pulumi-lang-go=\"`User`\" pulumi-lang-python=\"`User`\" pulumi-lang-yaml=\"`rabbitmq.User`\" pulumi-lang-java=\"`rabbitmq.User`\"\u003e`rabbitmq.User`\u003c/span\u003e` resource creates and manages a user.\n\n\u003e **Note:** All arguments including username and password will be stored in the raw state as plain-text.\n[Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst test = new rabbitmq.User(\"test\", {\n    name: \"mctest\",\n    password: \"foobar\",\n    tags: [\n        \"administrator\",\n        \"management\",\n    ],\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\ntest = rabbitmq.User(\"test\",\n    name=\"mctest\",\n    password=\"foobar\",\n    tags=[\n        \"administrator\",\n        \"management\",\n    ])\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var test = new RabbitMQ.Index.User(\"test\", new()\n    {\n        Name = \"mctest\",\n        Password = \"foobar\",\n        Tags = new[]\n        {\n            \"administrator\",\n            \"management\",\n        },\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rabbitmq.NewUser(ctx, \"test\", \u0026rabbitmq.UserArgs{\n\t\t\tName:     pulumi.String(\"mctest\"),\n\t\t\tPassword: pulumi.String(\"foobar\"),\n\t\t\tTags: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"administrator\"),\n\t\t\t\tpulumi.String(\"management\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.User;\nimport com.pulumi.rabbitmq.UserArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var test = new User(\"test\", UserArgs.builder()\n            .name(\"mctest\")\n            .password(\"foobar\")\n            .tags(            \n                \"administrator\",\n                \"management\")\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  test:\n    type: rabbitmq:User\n    properties:\n      name: mctest\n      password: foobar\n      tags:\n        - administrator\n        - management\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nUsers can be imported using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import rabbitmq:index/user:User test mctest\n```\n\n",
            "properties": {
                "name": {
                    "type": "string",
                    "description": "The name of the user.\n"
                },
                "password": {
                    "type": "string",
                    "description": "The password of the user. The value of this argument\nis plain-text so make sure to secure where this is defined.\n",
                    "secret": true
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Which permission model to apply to the user. Valid\noptions are: management, policymaker, monitoring, and administrator.\n"
                }
            },
            "required": [
                "name",
                "password"
            ],
            "inputProperties": {
                "name": {
                    "type": "string",
                    "description": "The name of the user.\n",
                    "willReplaceOnChanges": true
                },
                "password": {
                    "type": "string",
                    "description": "The password of the user. The value of this argument\nis plain-text so make sure to secure where this is defined.\n",
                    "secret": true
                },
                "tags": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    },
                    "description": "Which permission model to apply to the user. Valid\noptions are: management, policymaker, monitoring, and administrator.\n"
                }
            },
            "requiredInputs": [
                "password"
            ],
            "stateInputs": {
                "description": "Input properties used for looking up and filtering User resources.\n",
                "properties": {
                    "name": {
                        "type": "string",
                        "description": "The name of the user.\n",
                        "willReplaceOnChanges": true
                    },
                    "password": {
                        "type": "string",
                        "description": "The password of the user. The value of this argument\nis plain-text so make sure to secure where this is defined.\n",
                        "secret": true
                    },
                    "tags": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "description": "Which permission model to apply to the user. Valid\noptions are: management, policymaker, monitoring, and administrator.\n"
                    }
                },
                "type": "object"
            }
        },
        "rabbitmq:index/vHost:VHost": {
            "description": "The `\u003cspan pulumi-lang-nodejs=\"`rabbitmq.VHost`\" pulumi-lang-dotnet=\"`rabbitmq.VHost`\" pulumi-lang-go=\"`VHost`\" pulumi-lang-python=\"`VHost`\" pulumi-lang-yaml=\"`rabbitmq.VHost`\" pulumi-lang-java=\"`rabbitmq.VHost`\"\u003e`rabbitmq.VHost`\u003c/span\u003e` resource creates and manages a vhost.\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as rabbitmq from \"@pulumi/rabbitmq\";\n\nconst myVhost = new rabbitmq.VHost(\"my_vhost\", {\n    name: \"my_vhost\",\n    description: \"My Vhost\",\n    defaultQueueType: \"quorum\",\n    maxConnections: \"200\",\n    maxQueues: \"100\",\n    tracing: true,\n});\n```\n```python\nimport pulumi\nimport pulumi_rabbitmq as rabbitmq\n\nmy_vhost = rabbitmq.VHost(\"my_vhost\",\n    name=\"my_vhost\",\n    description=\"My Vhost\",\n    default_queue_type=\"quorum\",\n    max_connections=\"200\",\n    max_queues=\"100\",\n    tracing=True)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing RabbitMQ = Pulumi.RabbitMQ;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n    var myVhost = new RabbitMQ.Index.VHost(\"my_vhost\", new()\n    {\n        Name = \"my_vhost\",\n        Description = \"My Vhost\",\n        DefaultQueueType = \"quorum\",\n        MaxConnections = \"200\",\n        MaxQueues = \"100\",\n        Tracing = true,\n    });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-rabbitmq/sdk/v3/go/rabbitmq\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rabbitmq.NewVHost(ctx, \"my_vhost\", \u0026rabbitmq.VHostArgs{\n\t\t\tName:             pulumi.String(\"my_vhost\"),\n\t\t\tDescription:      pulumi.String(\"My Vhost\"),\n\t\t\tDefaultQueueType: pulumi.String(\"quorum\"),\n\t\t\tMaxConnections:   pulumi.String(\"200\"),\n\t\t\tMaxQueues:        pulumi.String(\"100\"),\n\t\t\tTracing:          pulumi.Bool(true),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.rabbitmq.VHost;\nimport com.pulumi.rabbitmq.VHostArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n    public static void main(String[] args) {\n        Pulumi.run(App::stack);\n    }\n\n    public static void stack(Context ctx) {\n        var myVhost = new VHost(\"myVhost\", VHostArgs.builder()\n            .name(\"my_vhost\")\n            .description(\"My Vhost\")\n            .defaultQueueType(\"quorum\")\n            .maxConnections(\"200\")\n            .maxQueues(\"100\")\n            .tracing(true)\n            .build());\n\n    }\n}\n```\n```yaml\nresources:\n  myVhost:\n    type: rabbitmq:VHost\n    name: my_vhost\n    properties:\n      name: my_vhost\n      description: My Vhost\n      defaultQueueType: quorum\n      maxConnections: '200'\n      maxQueues: 100\n      tracing: true\n```\n\u003c!--End PulumiCodeChooser --\u003e\n\n## Import\n\nVhosts can be imported using the \u003cspan pulumi-lang-nodejs=\"`name`\" pulumi-lang-dotnet=\"`Name`\" pulumi-lang-go=\"`name`\" pulumi-lang-python=\"`name`\" pulumi-lang-yaml=\"`name`\" pulumi-lang-java=\"`name`\"\u003e`name`\u003c/span\u003e, e.g.\n\n```sh\n$ pulumi import rabbitmq:index/vHost:VHost my_vhost my_vhost\n```\n\n",
            "properties": {
                "defaultQueueType": {
                    "type": "string",
                    "description": "default queue type for new queues\n"
                },
                "description": {
                    "type": "string",
                    "description": "A friendly description.\n"
                },
                "maxConnections": {
                    "type": "string",
                    "description": "Maximum number of concurrent client connections to the vhost\n"
                },
                "maxQueues": {
                    "type": "string",
                    "description": "Maximum number of queues that can be created on the vhost\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the vhost.\n"
                },
                "tracing": {
                    "type": "boolean"
                }
            },
            "required": [
                "name"
            ],
            "inputProperties": {
                "defaultQueueType": {
                    "type": "string",
                    "description": "default queue type for new queues\n"
                },
                "description": {
                    "type": "string",
                    "description": "A friendly description.\n"
                },
                "maxConnections": {
                    "type": "string",
                    "description": "Maximum number of concurrent client connections to the vhost\n"
                },
                "maxQueues": {
                    "type": "string",
                    "description": "Maximum number of queues that can be created on the vhost\n"
                },
                "name": {
                    "type": "string",
                    "description": "The name of the vhost.\n",
                    "willReplaceOnChanges": true
                },
                "tracing": {
                    "type": "boolean"
                }
            },
            "stateInputs": {
                "description": "Input properties used for looking up and filtering VHost resources.\n",
                "properties": {
                    "defaultQueueType": {
                        "type": "string",
                        "description": "default queue type for new queues\n"
                    },
                    "description": {
                        "type": "string",
                        "description": "A friendly description.\n"
                    },
                    "maxConnections": {
                        "type": "string",
                        "description": "Maximum number of concurrent client connections to the vhost\n"
                    },
                    "maxQueues": {
                        "type": "string",
                        "description": "Maximum number of queues that can be created on the vhost\n"
                    },
                    "name": {
                        "type": "string",
                        "description": "The name of the vhost.\n",
                        "willReplaceOnChanges": true
                    },
                    "tracing": {
                        "type": "boolean"
                    }
                },
                "type": "object"
            }
        }
    },
    "functions": {
        "pulumi:providers:rabbitmq/terraformConfig": {
            "description": "This function returns a Terraform config object with terraform-namecased keys,to be used with the Terraform Module Provider.",
            "inputs": {
                "properties": {
                    "__self__": {
                        "type": "ref",
                        "$ref": "#/provider"
                    }
                },
                "type": "pulumi:providers:rabbitmq/terraformConfig",
                "required": [
                    "__self__"
                ]
            },
            "outputs": {
                "properties": {
                    "result": {
                        "additionalProperties": {
                            "$ref": "pulumi.json#/Any"
                        },
                        "type": "object"
                    }
                },
                "required": [
                    "result"
                ],
                "type": "object"
            }
        },
        "rabbitmq:index/getDefaultUser:getDefaultUser": {
            "inputs": {
                "description": "A collection of arguments for invoking getDefaultUser.\n",
                "properties": {
                    "username": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "outputs": {
                "description": "A collection of values returned by getDefaultUser.\n",
                "properties": {
                    "id": {
                        "description": "The provider-assigned unique ID for this managed resource.",
                        "type": "string"
                    },
                    "username": {
                        "type": "string"
                    }
                },
                "required": [
                    "id"
                ],
                "type": "object"
            }
        },
        "rabbitmq:index/getExchange:getExchange": {
            "inputs": {
                "description": "A collection of arguments for invoking getExchange.\n",
                "properties": {
                    "name": {
                        "type": "string"
                    },
                    "vhost": {
                        "type": "string"
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getExchange.\n",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "settings": {
                        "items": {
                            "$ref": "#/types/rabbitmq:index/getExchangeSetting:getExchangeSetting"
                        },
                        "type": "array"
                    },
                    "vhost": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "settings"
                ],
                "type": "object"
            }
        },
        "rabbitmq:index/getUser:getUser": {
            "inputs": {
                "description": "A collection of arguments for invoking getUser.\n",
                "properties": {
                    "name": {
                        "type": "string"
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getUser.\n",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "tags": {
                        "items": {
                            "type": "string"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "id",
                    "name",
                    "tags"
                ],
                "type": "object"
            }
        },
        "rabbitmq:index/getVHost:getVHost": {
            "inputs": {
                "description": "A collection of arguments for invoking getVHost.\n",
                "properties": {
                    "name": {
                        "type": "string"
                    }
                },
                "type": "object",
                "required": [
                    "name"
                ]
            },
            "outputs": {
                "description": "A collection of values returned by getVHost.\n",
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "name"
                ],
                "type": "object"
            }
        }
    }
}