From d1e6f5c3dc98756b7705ca8db3ec90874e5bf5ab Mon Sep 17 00:00:00 2001 From: Joe Topjian Date: Wed, 20 Jul 2016 20:18:44 +0000 Subject: [PATCH] provider/rabbitmq: docs --- .../providers/rabbitmq/index.html.markdown | 55 ++++++++++++ .../rabbitmq/r/binding.html.markdown | 89 +++++++++++++++++++ .../rabbitmq/r/exchange.html.markdown | 75 ++++++++++++++++ .../rabbitmq/r/permissions.html.markdown | 66 ++++++++++++++ .../providers/rabbitmq/r/policy.html.markdown | 75 ++++++++++++++++ .../providers/rabbitmq/r/queue.html.markdown | 71 +++++++++++++++ .../providers/rabbitmq/r/user.html.markdown | 45 ++++++++++ .../providers/rabbitmq/r/vhost.html.markdown | 37 ++++++++ website/source/layouts/docs.erb | 4 + website/source/layouts/rabbitmq.erb | 44 +++++++++ 10 files changed, 561 insertions(+) create mode 100644 website/source/docs/providers/rabbitmq/index.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/binding.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/exchange.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/permissions.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/policy.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/queue.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/user.html.markdown create mode 100644 website/source/docs/providers/rabbitmq/r/vhost.html.markdown create mode 100644 website/source/layouts/rabbitmq.erb diff --git a/website/source/docs/providers/rabbitmq/index.html.markdown b/website/source/docs/providers/rabbitmq/index.html.markdown new file mode 100644 index 000000000..62c73cf00 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/index.html.markdown @@ -0,0 +1,55 @@ +--- +layout: "rabbitmq" +page_title: "Provider: RabbitMQ" +sidebar_current: "docs-rabbitmq-index" +description: |- + A provider for a RabbitMQ Server. +--- + +# RabbitMQ Provider + +[RabbitMQ](http://www.rabbitmq.com) is an AMQP message broker server. The +RabbitMQ provider exposes resources used to manage the configuration of +resources in a RabbitMQ server. + +Use the navigation to the left to read about the available resources. + +## Example Usage + +The following is a minimal example: + +``` +# Configure the RabbitMQ provider +provider "rabbitmq" { + endpoint = "http://127.0.0.1" + username = "guest" + password = "guest" +} + +# Create a virtual host +resource "rabbitmq_vhost" "vhost_1" { + name = "vhost_1" +} +``` + +## Requirements + +The RabbitMQ management plugin must be enabled to use this provider. You can +enable the plugin by doing something similar to: + +``` +$ sudo rabbitmq-plugins enable rabbitmq_management +``` + +## Argument Reference + +The following arguments are supported: + +* `endpoint` - (Required) The HTTP URL of the management plugin on the + RabbitMQ server. The RabbitMQ management plugin *must* be enabled in order + to use this provder. _Note_: This is not the IP address or hostname of the + RabbitMQ server that you would use to access RabbitMQ directly. +* `username` - (Required) Username to use to authenticate with the server. +* `password` - (Optional) Password for the given user. +* `insecure` - (Optional) Trust self-signed certificates. +* `cacert_file` - (Optional) The path to a custom CA / intermediate certificate. diff --git a/website/source/docs/providers/rabbitmq/r/binding.html.markdown b/website/source/docs/providers/rabbitmq/r/binding.html.markdown new file mode 100644 index 000000000..0168e2055 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/binding.html.markdown @@ -0,0 +1,89 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_binding" +sidebar_current: "docs-rabbitmq-resource-binding" +description: |- + Creates and manages a binding on a RabbitMQ server. +--- + +# rabbitmq\_binding + +The ``rabbitmq_binding`` resource creates and manages a binding relationship +between a queue an exchange. + +## Example Usage + +``` +resource "rabbitmq_vhost" "test" { + name = "test" +} + +resource "rabbitmq_permissions" "guest" { + user = "guest" + vhost = "${rabbitmq_vhost.test.name}" + permissions { + configure = ".*" + write = ".*" + read = ".*" + } +} + +resource "rabbitmq_exchange" "test" { + name = "test" + vhost = "${rabbitmq_permissions.guest.vhost}" + settings { + type = "fanout" + durable = false + auto_delete = true + } +} + +resource "rabbitmq_queue" "test" { + name = "test" + vhost = "${rabbitmq_permissions.guest.vhost}" + settings { + durable = true + auto_delete = false + } +} + +resource "rabbitmq_binding" "test" { + source = "${rabbitmq_exchange.test.name}" + vhost = "${rabbitmq_vhost.test.name}" + destination = "${rabbitmq_queue.test.name}" + destination_type = "queue" + routing_key = "#" + properties_key = "%23" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `source` - (Required) The source exchange. + +* `vhost` - (Required) The vhost to create the resource in. + +* `destination` - (Required) The destination queue or exchange. + +* `destination_type` - (Required) The type of destination (queue or exchange). + +* `properties_key` - (Required) A unique key to refer to the binding. + +* `routing_key` - (Optional) A routing key for the binding. + +* `arguments` - (Optional) Additional key/value arguments for the binding. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Bindings can be imported using the `id` which is composed of + `vhost/source/destination/destination_type/properties_key`. E.g. + +``` +terraform import rabbitmq_binding.test test/test/test/queue/%23 +``` diff --git a/website/source/docs/providers/rabbitmq/r/exchange.html.markdown b/website/source/docs/providers/rabbitmq/r/exchange.html.markdown new file mode 100644 index 000000000..62a83d257 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/exchange.html.markdown @@ -0,0 +1,75 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_exchange" +sidebar_current: "docs-rabbitmq-resource-exchange" +description: |- + Creates and manages an exchange on a RabbitMQ server. +--- + +# rabbitmq\_exchange + +The ``rabbitmq_exchange`` resource creates and manages an exchange. + +## Example Usage + +``` +resource "rabbitmq_vhost" "test" { + name = "test" +} + +resource "rabbitmq_permissions" "guest" { + user = "guest" + vhost = "${rabbitmq_vhost.test.name}" + permissions { + configure = ".*" + write = ".*" + read = ".*" + } +} + +resource "rabbitmq_exchange" "test" { + name = "test" + vhost = "${rabbitmq_permissions.guest.vhost}" + settings { + type = "fanout" + durable = false + auto_delete = true + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the exchange. + +* `vhost` - (Required) The vhost to create the resource in. + +* `settings` - (Required) The settings of the exchange. The structure is + described below. + +The `settings` block supports: + +* `type` - (Required) The type of exchange. + +* `durable` - (Optional) Whether the exchange survives server restarts. + Defaults to `false`. + +* `auto_delete` - (Optional) Whether the exchange will self-delete when all + queues have finished using it. + +* `arguments` - (Optional) Additional key/value settings for the exchange. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Exchanges can be imported using the `id` which is composed of `name@vhost`. +E.g. + +``` +terraform import rabbitmq_exchange.test test@vhost +``` diff --git a/website/source/docs/providers/rabbitmq/r/permissions.html.markdown b/website/source/docs/providers/rabbitmq/r/permissions.html.markdown new file mode 100644 index 000000000..4249addc6 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/permissions.html.markdown @@ -0,0 +1,66 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_permissions" +sidebar_current: "docs-rabbitmq-resource-permissions" +description: |- + Creates and manages a user's permissions on a RabbitMQ server. +--- + +# rabbitmq\_permissions + +The ``rabbitmq_permissions`` resource creates and manages a user's set of +permissions. + +## Example Usage + +``` +resource "rabbitmq_vhost" "test" { + name = "test" +} + +resource "rabbitmq_user" "test" { + name = "mctest" + password = "foobar" + tags = ["administrator"] +} + +resource "rabbitmq_permissions" "test" { + user = "${rabbitmq_user.test.name}" + vhost = "${rabbitmq_vhost.test.name}" + permissions { + configure = ".*" + write = ".*" + read = ".*" + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `user` - (Required) The user to apply the permissions to. + +* `vhost` - (Required) The vhost to create the resource in. + +* `permissions` - (Required) The settings of the permissions. The structure is + described below. + +The `permissions` block supports: + +* `configure` - (Required) The "configure" ACL. +* `write` - (Required) The "write" ACL. +* `read` - (Required) The "read" ACL. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Permissions can be imported using the `id` which is composed of `user@vhost`. +E.g. + +``` +terraform import rabbitmq_permissions.test user@vhost +``` diff --git a/website/source/docs/providers/rabbitmq/r/policy.html.markdown b/website/source/docs/providers/rabbitmq/r/policy.html.markdown new file mode 100644 index 000000000..48226cab7 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/policy.html.markdown @@ -0,0 +1,75 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_policy" +sidebar_current: "docs-rabbitmq-resource-policy" +description: |- + Creates and manages a policy on a RabbitMQ server. +--- + +# rabbitmq\_policy + +The ``rabbitmq_policy`` resource creates and manages policies for exchanges +and queues. + +## Example Usage + +``` +resource "rabbitmq_vhost" "test" { + name = "test" +} + +resource "rabbitmq_permissions" "guest" { + user = "guest" + vhost = "${rabbitmq_vhost.test.name}" + permissions { + configure = ".*" + write = ".*" + read = ".*" + } +} + +resource "rabbitmq_policy" "test" { + name = "test" + vhost = "${rabbitmq_permissions.guest.vhost}" + policy { + pattern = ".*" + priority = 0 + apply_to = "all" + definition { + ha-mode = "all" + } + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the policy. + +* `vhost` - (Required) The vhost to create the resource in. + +* `policy` - (Required) The settings of the policy. The structure is + described below. + +The `policy` block supports: + +* `pattern` - (Required) A pattern to match an exchange or queue name. +* `priority` - (Required) The policy with the greater priority is applied first. +* `apply_to` - (Required) Can either be "exchange", "queues", or "all". +* `definition` - (Required) Key/value pairs of the policy definition. See the + RabbitMQ documentation for definition references and examples. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Policies can be imported using the `id` which is composed of `name@vhost`. +E.g. + +``` +terraform import rabbitmq_policy.test name@vhost +``` diff --git a/website/source/docs/providers/rabbitmq/r/queue.html.markdown b/website/source/docs/providers/rabbitmq/r/queue.html.markdown new file mode 100644 index 000000000..c1b3287dc --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/queue.html.markdown @@ -0,0 +1,71 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_queue" +sidebar_current: "docs-rabbitmq-resource-queue" +description: |- + Creates and manages a queue on a RabbitMQ server. +--- + +# rabbitmq\_queue + +The ``rabbitmq_queue`` resource creates and manages a queue. + +## Example Usage + +``` +resource "rabbitmq_vhost" "test" { + name = "test" +} + +resource "rabbitmq_permissions" "guest" { + user = "guest" + vhost = "${rabbitmq_vhost.test.name}" + permissions { + configure = ".*" + write = ".*" + read = ".*" + } +} + +resource "rabbitmq_queue" "test" { + name = "test" + vhost = "${rabbitmq_permissions.guest.vhost}" + settings { + durable = false + auto_delete = true + } +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the queue. + +* `vhost` - (Required) The vhost to create the resource in. + +* `settings` - (Required) The settings of the queue. The structure is + described below. + +The `settings` block supports: + +* `durable` - (Optional) Whether the queue survives server restarts. + Defaults to `false`. + +* `auto_delete` - (Optional) Whether the queue will self-delete when all + consumers have unsubscribed. + +* `arguments` - (Optional) Additional key/value settings for the queue. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Queues can be imported using the `id` which is composed of `name@vhost`. E.g. + +``` +terraform import rabbitmq_queue.test name@vhost +``` diff --git a/website/source/docs/providers/rabbitmq/r/user.html.markdown b/website/source/docs/providers/rabbitmq/r/user.html.markdown new file mode 100644 index 000000000..790229430 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/user.html.markdown @@ -0,0 +1,45 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_user" +sidebar_current: "docs-rabbitmq-resource-user" +description: |- + Creates and manages a user on a RabbitMQ server. +--- + +# rabbitmq\_user + +The ``rabbitmq_user`` resource creates and manages a user. + +## Example Usage + +``` +resource "rabbitmq_user" "test" { + name = "mctest" + password = "foobar" + tags = ["administrator", "management"] +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the user. + +* `password` - (Required) The password of the user. The value of this argument + is plain-text so make sure to secure where this is defined. + +* `tags` - (Required) Which permission model to apply to the user. Valid + options are: management, policymaker, monitoring, and administrator. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Users can be imported using the `name`, e.g. + +``` +terraform import rabbitmq_user.test mctest +``` diff --git a/website/source/docs/providers/rabbitmq/r/vhost.html.markdown b/website/source/docs/providers/rabbitmq/r/vhost.html.markdown new file mode 100644 index 000000000..61c236507 --- /dev/null +++ b/website/source/docs/providers/rabbitmq/r/vhost.html.markdown @@ -0,0 +1,37 @@ +--- +layout: "rabbitmq" +page_title: "RabbitMQ: rabbitmq_vhost" +sidebar_current: "docs-rabbitmq-resource-vhost" +description: |- + Creates and manages a vhost on a RabbitMQ server. +--- + +# rabbitmq\_vhost + +The ``rabbitmq_vhost`` resource creates and manages a vhost. + +## Example Usage + +``` +resource "rabbitmq_vhost" "my_vhost" { + name = "my_vhost" +} +``` + +## Argument Reference + +The following arguments are supported: + +* `name` - (Required) The name of the vhost. + +## Attributes Reference + +No further attributes are exported. + +## Import + +Vhosts can be imported using the `name`, e.g. + +``` +terraform import rabbitmq_vhost.my_vhost my_vhost +``` diff --git a/website/source/layouts/docs.erb b/website/source/layouts/docs.erb index 20b0b578c..f734bbc39 100644 --- a/website/source/layouts/docs.erb +++ b/website/source/layouts/docs.erb @@ -282,6 +282,10 @@ PowerDNS + > + RabbitMQ + + > Random diff --git a/website/source/layouts/rabbitmq.erb b/website/source/layouts/rabbitmq.erb new file mode 100644 index 000000000..564b733d7 --- /dev/null +++ b/website/source/layouts/rabbitmq.erb @@ -0,0 +1,44 @@ +<% wrap_layout :inner do %> + <% content_for :sidebar do %> + + <% end %> + + <%= yield %> + <% end %>