diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,9 +7,8 @@
 
 
 ## Version
-
-`1.6.1`
-
+ 
+`2.0` - Derived from API version @2017-11-27@ of the AWS service descriptions, licensed under Apache 2.0.
 
 ## Description
 
@@ -26,7 +25,7 @@
 The provided lenses should be compatible with any of the major lens libraries
 [lens](http://hackage.haskell.org/package/lens) or [lens-family-core](http://hackage.haskell.org/package/lens-family-core).
 
-See [Network.AWS.MQ](http://hackage.haskell.org/package/amazonka-mq/docs/Network-AWS-MQ.html)
+See [Amazonka.MQ](http://hackage.haskell.org/package/amazonka-mq/docs/Amazonka-MQ.html)
 or [the AWS documentation](https://aws.amazon.com/documentation/) to get started.
 
 
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import           Distribution.Simple
-main = defaultMain
diff --git a/amazonka-mq.cabal b/amazonka-mq.cabal
--- a/amazonka-mq.cabal
+++ b/amazonka-mq.cabal
@@ -1,102 +1,135 @@
-name:                  amazonka-mq
-version:               1.6.1
-synopsis:              Amazon MQ SDK.
-homepage:              https://github.com/brendanhay/amazonka
-bug-reports:           https://github.com/brendanhay/amazonka/issues
-license:               MPL-2.0
-license-file:          LICENSE
-author:                Brendan Hay
-maintainer:            Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-copyright:             Copyright (c) 2013-2018 Brendan Hay
-category:              Network, AWS, Cloud, Distributed Computing
-build-type:            Simple
-cabal-version:         >= 1.10
-extra-source-files:    README.md fixture/*.yaml fixture/*.proto src/.gitkeep
+cabal-version:      2.2
+name:               amazonka-mq
+version:            2.0
+synopsis:           Amazon MQ SDK.
+homepage:           https://github.com/brendanhay/amazonka
+bug-reports:        https://github.com/brendanhay/amazonka/issues
+license:            MPL-2.0
+license-file:       LICENSE
+author:             Brendan Hay
+maintainer:
+  Brendan Hay <brendan.g.hay+amazonka@gmail.com>, Jack Kelly <jack@jackkelly.name>
+
+copyright:          Copyright (c) 2013-2023 Brendan Hay
+category:           AWS
+build-type:         Simple
+extra-source-files:
+  fixture/*.proto
+  fixture/*.yaml
+  README.md
+  src/.gitkeep
+
 description:
-    The types from this library are intended to be used with
-    <http://hackage.haskell.org/package/amazonka amazonka>, which provides
-    mechanisms for specifying AuthN/AuthZ information, sending requests,
-    and receiving responses.
-    .
-    Lenses are used for constructing and manipulating types,
-    due to the depth of nesting of AWS types and transparency regarding
-    de/serialisation into more palatable Haskell values.
-    The provided lenses should be compatible with any of the major lens libraries
-    such as <http://hackage.haskell.org/package/lens lens> or
-    <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
-    .
-    See "Network.AWS.MQ" or <https://aws.amazon.com/documentation/ the AWS documentation>
-    to get started.
+  Derived from API version @2017-11-27@ of the AWS service descriptions, licensed under Apache 2.0.
+  .
+  The types from this library are intended to be used with <http://hackage.haskell.org/package/amazonka amazonka>,
+  which provides mechanisms for specifying AuthN/AuthZ information, sending requests, and receiving responses.
+  .
+  It is recommended to use generic lenses or optics from packages such as <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify optional fields and deconstruct responses.
+  .
+  Generated lenses can be found in "Amazonka.MQ.Lens" and are
+  suitable for use with a lens package such as <http://hackage.haskell.org/package/lens lens> or <http://hackage.haskell.org/package/lens-family-core lens-family-core>.
+  .
+  See "Amazonka.MQ" and the <https://aws.amazon.com/documentation/ AWS documentation> to get started.
 
 source-repository head
-    type:              git
-    location:          git://github.com/brendanhay/amazonka.git
-    subdir:            amazonka-mq
+  type:     git
+  location: git://github.com/brendanhay/amazonka.git
+  subdir:   amazonka-mq
 
 library
-    default-language:  Haskell2010
-    hs-source-dirs:    src gen
-
-    ghc-options:
-        -Wall
-        -fwarn-incomplete-uni-patterns
-        -fwarn-incomplete-record-updates
-        -funbox-strict-fields
-
-    exposed-modules:
-          Network.AWS.MQ
-        , Network.AWS.MQ.CreateBroker
-        , Network.AWS.MQ.CreateConfiguration
-        , Network.AWS.MQ.CreateUser
-        , Network.AWS.MQ.DeleteBroker
-        , Network.AWS.MQ.DeleteUser
-        , Network.AWS.MQ.DescribeBroker
-        , Network.AWS.MQ.DescribeConfiguration
-        , Network.AWS.MQ.DescribeConfigurationRevision
-        , Network.AWS.MQ.DescribeUser
-        , Network.AWS.MQ.ListBrokers
-        , Network.AWS.MQ.ListConfigurationRevisions
-        , Network.AWS.MQ.ListConfigurations
-        , Network.AWS.MQ.ListUsers
-        , Network.AWS.MQ.RebootBroker
-        , Network.AWS.MQ.Types
-        , Network.AWS.MQ.UpdateBroker
-        , Network.AWS.MQ.UpdateConfiguration
-        , Network.AWS.MQ.UpdateUser
-        , Network.AWS.MQ.Waiters
+  default-language: Haskell2010
+  hs-source-dirs:   src gen
+  ghc-options:
+    -Wall -fwarn-incomplete-uni-patterns
+    -fwarn-incomplete-record-updates -funbox-strict-fields
 
-    other-modules:
-          Network.AWS.MQ.Types.Product
-        , Network.AWS.MQ.Types.Sum
+  exposed-modules:
+    Amazonka.MQ
+    Amazonka.MQ.CreateBroker
+    Amazonka.MQ.CreateConfiguration
+    Amazonka.MQ.CreateTags
+    Amazonka.MQ.CreateUser
+    Amazonka.MQ.DeleteBroker
+    Amazonka.MQ.DeleteTags
+    Amazonka.MQ.DeleteUser
+    Amazonka.MQ.DescribeBroker
+    Amazonka.MQ.DescribeBrokerEngineTypes
+    Amazonka.MQ.DescribeBrokerInstanceOptions
+    Amazonka.MQ.DescribeConfiguration
+    Amazonka.MQ.DescribeConfigurationRevision
+    Amazonka.MQ.DescribeUser
+    Amazonka.MQ.Lens
+    Amazonka.MQ.ListBrokers
+    Amazonka.MQ.ListConfigurationRevisions
+    Amazonka.MQ.ListConfigurations
+    Amazonka.MQ.ListTags
+    Amazonka.MQ.ListUsers
+    Amazonka.MQ.RebootBroker
+    Amazonka.MQ.Types
+    Amazonka.MQ.Types.ActionRequired
+    Amazonka.MQ.Types.AuthenticationStrategy
+    Amazonka.MQ.Types.AvailabilityZone
+    Amazonka.MQ.Types.BrokerEngineType
+    Amazonka.MQ.Types.BrokerInstance
+    Amazonka.MQ.Types.BrokerInstanceOption
+    Amazonka.MQ.Types.BrokerState
+    Amazonka.MQ.Types.BrokerStorageType
+    Amazonka.MQ.Types.BrokerSummary
+    Amazonka.MQ.Types.ChangeType
+    Amazonka.MQ.Types.Configuration
+    Amazonka.MQ.Types.ConfigurationId
+    Amazonka.MQ.Types.ConfigurationRevision
+    Amazonka.MQ.Types.Configurations
+    Amazonka.MQ.Types.DayOfWeek
+    Amazonka.MQ.Types.DeploymentMode
+    Amazonka.MQ.Types.EncryptionOptions
+    Amazonka.MQ.Types.EngineType
+    Amazonka.MQ.Types.EngineVersion
+    Amazonka.MQ.Types.LdapServerMetadataInput
+    Amazonka.MQ.Types.LdapServerMetadataOutput
+    Amazonka.MQ.Types.Logs
+    Amazonka.MQ.Types.LogsSummary
+    Amazonka.MQ.Types.PendingLogs
+    Amazonka.MQ.Types.SanitizationWarning
+    Amazonka.MQ.Types.SanitizationWarningReason
+    Amazonka.MQ.Types.User
+    Amazonka.MQ.Types.UserPendingChanges
+    Amazonka.MQ.Types.UserSummary
+    Amazonka.MQ.Types.WeeklyStartTime
+    Amazonka.MQ.UpdateBroker
+    Amazonka.MQ.UpdateConfiguration
+    Amazonka.MQ.UpdateUser
+    Amazonka.MQ.Waiters
 
-    build-depends:
-          amazonka-core == 1.6.1.*
-        , base          >= 4.7     && < 5
+  build-depends:
+    , amazonka-core  >=2.0  && <2.1
+    , base           >=4.12 && <5
 
 test-suite amazonka-mq-test
-    type:              exitcode-stdio-1.0
-    default-language:  Haskell2010
-    hs-source-dirs:    test
-    main-is:           Main.hs
-
-    ghc-options:       -Wall -threaded
+  type:             exitcode-stdio-1.0
+  default-language: Haskell2010
+  hs-source-dirs:   test
+  main-is:          Main.hs
+  ghc-options:      -Wall -threaded
 
-    -- This section is encoded by the template and any modules added by
-    -- hand outside these namespaces will not correctly be added to the
-    -- distribution package.
-    other-modules:
-          Test.AWS.MQ
-        , Test.AWS.Gen.MQ
-        , Test.AWS.MQ.Internal
+  -- This section is encoded by the template and any modules added by
+  -- hand outside these namespaces will not correctly be added to the
+  -- distribution package.
+  other-modules:
+    Test.Amazonka.Gen.MQ
+    Test.Amazonka.MQ
+    Test.Amazonka.MQ.Internal
 
-    build-depends:
-          amazonka-core == 1.6.1.*
-        , amazonka-test == 1.6.1.*
-        , amazonka-mq
-        , base
-        , bytestring
-        , tasty
-        , tasty-hunit
-        , text
-        , time
-        , unordered-containers
+  build-depends:
+    , amazonka-core         >=2.0 && <2.1
+    , amazonka-mq
+    , amazonka-test         >=2.0 && <2.1
+    , base
+    , bytestring
+    , case-insensitive
+    , tasty
+    , tasty-hunit
+    , text
+    , time
+    , unordered-containers
diff --git a/fixture/CreateTags.yaml b/fixture/CreateTags.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTags.yaml
@@ -0,0 +1,10 @@
+---
+method: POST
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mq/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  mq.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/CreateTagsResponse.proto b/fixture/CreateTagsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/CreateTagsResponse.proto
diff --git a/fixture/DeleteTags.yaml b/fixture/DeleteTags.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteTags.yaml
@@ -0,0 +1,10 @@
+---
+method: DELETE
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mq/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  mq.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DeleteTagsResponse.proto b/fixture/DeleteTagsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DeleteTagsResponse.proto
diff --git a/fixture/DescribeBrokerEngineTypes.yaml b/fixture/DescribeBrokerEngineTypes.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeBrokerEngineTypes.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mq/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  mq.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DescribeBrokerEngineTypesResponse.proto b/fixture/DescribeBrokerEngineTypesResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeBrokerEngineTypesResponse.proto
diff --git a/fixture/DescribeBrokerInstanceOptions.yaml b/fixture/DescribeBrokerInstanceOptions.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeBrokerInstanceOptions.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mq/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  mq.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/DescribeBrokerInstanceOptionsResponse.proto b/fixture/DescribeBrokerInstanceOptionsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/DescribeBrokerInstanceOptionsResponse.proto
diff --git a/fixture/ListTags.yaml b/fixture/ListTags.yaml
new file mode 100644
--- /dev/null
+++ b/fixture/ListTags.yaml
@@ -0,0 +1,10 @@
+---
+method: GET
+headers:
+  Authorization:         AWS4-HMAC-SHA256 Credential=access/20091028/us-east-1/mq/aws4_request, SignedHeaders=content-type;host;x-amz-content-sha256;x-amz-date, Signature=?
+  Host:                  mq.us-east-1.amazonaws.com
+  Content-Type:          application/x-www-form-urlencoded; charset=utf-8
+  X-Amz-Content-SHA256:  abcdef
+  X-Amz-Date:            20091028T223200Z
+body:
+  ''
diff --git a/fixture/ListTagsResponse.proto b/fixture/ListTagsResponse.proto
new file mode 100644
--- /dev/null
+++ b/fixture/ListTagsResponse.proto
diff --git a/gen/Amazonka/MQ.hs b/gen/Amazonka/MQ.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ.hs
@@ -0,0 +1,349 @@
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- |
+-- Module      : Amazonka.MQ
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Derived from API version @2017-11-27@ of the AWS service descriptions, licensed under Apache 2.0.
+--
+-- Amazon MQ is a managed message broker service for Apache ActiveMQ and
+-- RabbitMQ that makes it easy to set up and operate message brokers in the
+-- cloud. A message broker allows software applications and components to
+-- communicate using various programming languages, operating systems, and
+-- formal messaging protocols.
+module Amazonka.MQ
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    -- $errors
+
+    -- ** BadRequestException
+    _BadRequestException,
+
+    -- ** ConflictException
+    _ConflictException,
+
+    -- ** ForbiddenException
+    _ForbiddenException,
+
+    -- ** InternalServerErrorException
+    _InternalServerErrorException,
+
+    -- ** NotFoundException
+    _NotFoundException,
+
+    -- ** UnauthorizedException
+    _UnauthorizedException,
+
+    -- * Waiters
+    -- $waiters
+
+    -- * Operations
+    -- $operations
+
+    -- ** CreateBroker
+    CreateBroker (CreateBroker'),
+    newCreateBroker,
+    CreateBrokerResponse (CreateBrokerResponse'),
+    newCreateBrokerResponse,
+
+    -- ** CreateConfiguration
+    CreateConfiguration (CreateConfiguration'),
+    newCreateConfiguration,
+    CreateConfigurationResponse (CreateConfigurationResponse'),
+    newCreateConfigurationResponse,
+
+    -- ** CreateTags
+    CreateTags (CreateTags'),
+    newCreateTags,
+    CreateTagsResponse (CreateTagsResponse'),
+    newCreateTagsResponse,
+
+    -- ** CreateUser
+    CreateUser (CreateUser'),
+    newCreateUser,
+    CreateUserResponse (CreateUserResponse'),
+    newCreateUserResponse,
+
+    -- ** DeleteBroker
+    DeleteBroker (DeleteBroker'),
+    newDeleteBroker,
+    DeleteBrokerResponse (DeleteBrokerResponse'),
+    newDeleteBrokerResponse,
+
+    -- ** DeleteTags
+    DeleteTags (DeleteTags'),
+    newDeleteTags,
+    DeleteTagsResponse (DeleteTagsResponse'),
+    newDeleteTagsResponse,
+
+    -- ** DeleteUser
+    DeleteUser (DeleteUser'),
+    newDeleteUser,
+    DeleteUserResponse (DeleteUserResponse'),
+    newDeleteUserResponse,
+
+    -- ** DescribeBroker
+    DescribeBroker (DescribeBroker'),
+    newDescribeBroker,
+    DescribeBrokerResponse (DescribeBrokerResponse'),
+    newDescribeBrokerResponse,
+
+    -- ** DescribeBrokerEngineTypes
+    DescribeBrokerEngineTypes (DescribeBrokerEngineTypes'),
+    newDescribeBrokerEngineTypes,
+    DescribeBrokerEngineTypesResponse (DescribeBrokerEngineTypesResponse'),
+    newDescribeBrokerEngineTypesResponse,
+
+    -- ** DescribeBrokerInstanceOptions
+    DescribeBrokerInstanceOptions (DescribeBrokerInstanceOptions'),
+    newDescribeBrokerInstanceOptions,
+    DescribeBrokerInstanceOptionsResponse (DescribeBrokerInstanceOptionsResponse'),
+    newDescribeBrokerInstanceOptionsResponse,
+
+    -- ** DescribeConfiguration
+    DescribeConfiguration (DescribeConfiguration'),
+    newDescribeConfiguration,
+    DescribeConfigurationResponse (DescribeConfigurationResponse'),
+    newDescribeConfigurationResponse,
+
+    -- ** DescribeConfigurationRevision
+    DescribeConfigurationRevision (DescribeConfigurationRevision'),
+    newDescribeConfigurationRevision,
+    DescribeConfigurationRevisionResponse (DescribeConfigurationRevisionResponse'),
+    newDescribeConfigurationRevisionResponse,
+
+    -- ** DescribeUser
+    DescribeUser (DescribeUser'),
+    newDescribeUser,
+    DescribeUserResponse (DescribeUserResponse'),
+    newDescribeUserResponse,
+
+    -- ** ListBrokers (Paginated)
+    ListBrokers (ListBrokers'),
+    newListBrokers,
+    ListBrokersResponse (ListBrokersResponse'),
+    newListBrokersResponse,
+
+    -- ** ListConfigurationRevisions
+    ListConfigurationRevisions (ListConfigurationRevisions'),
+    newListConfigurationRevisions,
+    ListConfigurationRevisionsResponse (ListConfigurationRevisionsResponse'),
+    newListConfigurationRevisionsResponse,
+
+    -- ** ListConfigurations
+    ListConfigurations (ListConfigurations'),
+    newListConfigurations,
+    ListConfigurationsResponse (ListConfigurationsResponse'),
+    newListConfigurationsResponse,
+
+    -- ** ListTags
+    ListTags (ListTags'),
+    newListTags,
+    ListTagsResponse (ListTagsResponse'),
+    newListTagsResponse,
+
+    -- ** ListUsers
+    ListUsers (ListUsers'),
+    newListUsers,
+    ListUsersResponse (ListUsersResponse'),
+    newListUsersResponse,
+
+    -- ** RebootBroker
+    RebootBroker (RebootBroker'),
+    newRebootBroker,
+    RebootBrokerResponse (RebootBrokerResponse'),
+    newRebootBrokerResponse,
+
+    -- ** UpdateBroker
+    UpdateBroker (UpdateBroker'),
+    newUpdateBroker,
+    UpdateBrokerResponse (UpdateBrokerResponse'),
+    newUpdateBrokerResponse,
+
+    -- ** UpdateConfiguration
+    UpdateConfiguration (UpdateConfiguration'),
+    newUpdateConfiguration,
+    UpdateConfigurationResponse (UpdateConfigurationResponse'),
+    newUpdateConfigurationResponse,
+
+    -- ** UpdateUser
+    UpdateUser (UpdateUser'),
+    newUpdateUser,
+    UpdateUserResponse (UpdateUserResponse'),
+    newUpdateUserResponse,
+
+    -- * Types
+
+    -- ** AuthenticationStrategy
+    AuthenticationStrategy (..),
+
+    -- ** BrokerState
+    BrokerState (..),
+
+    -- ** BrokerStorageType
+    BrokerStorageType (..),
+
+    -- ** ChangeType
+    ChangeType (..),
+
+    -- ** DayOfWeek
+    DayOfWeek (..),
+
+    -- ** DeploymentMode
+    DeploymentMode (..),
+
+    -- ** EngineType
+    EngineType (..),
+
+    -- ** SanitizationWarningReason
+    SanitizationWarningReason (..),
+
+    -- ** ActionRequired
+    ActionRequired (ActionRequired'),
+    newActionRequired,
+
+    -- ** AvailabilityZone
+    AvailabilityZone (AvailabilityZone'),
+    newAvailabilityZone,
+
+    -- ** BrokerEngineType
+    BrokerEngineType (BrokerEngineType'),
+    newBrokerEngineType,
+
+    -- ** BrokerInstance
+    BrokerInstance (BrokerInstance'),
+    newBrokerInstance,
+
+    -- ** BrokerInstanceOption
+    BrokerInstanceOption (BrokerInstanceOption'),
+    newBrokerInstanceOption,
+
+    -- ** BrokerSummary
+    BrokerSummary (BrokerSummary'),
+    newBrokerSummary,
+
+    -- ** Configuration
+    Configuration (Configuration'),
+    newConfiguration,
+
+    -- ** ConfigurationId
+    ConfigurationId (ConfigurationId'),
+    newConfigurationId,
+
+    -- ** ConfigurationRevision
+    ConfigurationRevision (ConfigurationRevision'),
+    newConfigurationRevision,
+
+    -- ** Configurations
+    Configurations (Configurations'),
+    newConfigurations,
+
+    -- ** EncryptionOptions
+    EncryptionOptions (EncryptionOptions'),
+    newEncryptionOptions,
+
+    -- ** EngineVersion
+    EngineVersion (EngineVersion'),
+    newEngineVersion,
+
+    -- ** LdapServerMetadataInput
+    LdapServerMetadataInput (LdapServerMetadataInput'),
+    newLdapServerMetadataInput,
+
+    -- ** LdapServerMetadataOutput
+    LdapServerMetadataOutput (LdapServerMetadataOutput'),
+    newLdapServerMetadataOutput,
+
+    -- ** Logs
+    Logs (Logs'),
+    newLogs,
+
+    -- ** LogsSummary
+    LogsSummary (LogsSummary'),
+    newLogsSummary,
+
+    -- ** PendingLogs
+    PendingLogs (PendingLogs'),
+    newPendingLogs,
+
+    -- ** SanitizationWarning
+    SanitizationWarning (SanitizationWarning'),
+    newSanitizationWarning,
+
+    -- ** User
+    User (User'),
+    newUser,
+
+    -- ** UserPendingChanges
+    UserPendingChanges (UserPendingChanges'),
+    newUserPendingChanges,
+
+    -- ** UserSummary
+    UserSummary (UserSummary'),
+    newUserSummary,
+
+    -- ** WeeklyStartTime
+    WeeklyStartTime (WeeklyStartTime'),
+    newWeeklyStartTime,
+  )
+where
+
+import Amazonka.MQ.CreateBroker
+import Amazonka.MQ.CreateConfiguration
+import Amazonka.MQ.CreateTags
+import Amazonka.MQ.CreateUser
+import Amazonka.MQ.DeleteBroker
+import Amazonka.MQ.DeleteTags
+import Amazonka.MQ.DeleteUser
+import Amazonka.MQ.DescribeBroker
+import Amazonka.MQ.DescribeBrokerEngineTypes
+import Amazonka.MQ.DescribeBrokerInstanceOptions
+import Amazonka.MQ.DescribeConfiguration
+import Amazonka.MQ.DescribeConfigurationRevision
+import Amazonka.MQ.DescribeUser
+import Amazonka.MQ.Lens
+import Amazonka.MQ.ListBrokers
+import Amazonka.MQ.ListConfigurationRevisions
+import Amazonka.MQ.ListConfigurations
+import Amazonka.MQ.ListTags
+import Amazonka.MQ.ListUsers
+import Amazonka.MQ.RebootBroker
+import Amazonka.MQ.Types
+import Amazonka.MQ.UpdateBroker
+import Amazonka.MQ.UpdateConfiguration
+import Amazonka.MQ.UpdateUser
+import Amazonka.MQ.Waiters
+
+-- $errors
+-- Error matchers are designed for use with the functions provided by
+-- <http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.
+-- This allows catching (and rethrowing) service specific errors returned
+-- by 'MQ'.
+
+-- $operations
+-- Some AWS operations return results that are incomplete and require subsequent
+-- requests in order to obtain the entire result set. The process of sending
+-- subsequent requests to continue where a previous request left off is called
+-- pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to
+-- 1000 objects at a time, and you must send subsequent requests with the
+-- appropriate Marker in order to retrieve the next page of results.
+--
+-- Operations that have an 'AWSPager' instance can transparently perform subsequent
+-- requests, correctly setting Markers and other request facets to iterate through
+-- the entire result set of a truncated API operation. Operations which support
+-- this have an additional note in the documentation.
+--
+-- Many operations have the ability to filter results on the server side. See the
+-- individual operation parameters for details.
+
+-- $waiters
+-- Waiters poll by repeatedly sending a request until some remote success condition
+-- configured by the 'Wait' specification is fulfilled. The 'Wait' specification
+-- determines how many attempts should be made, in addition to delay and retry strategies.
diff --git a/gen/Amazonka/MQ/CreateBroker.hs b/gen/Amazonka/MQ/CreateBroker.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/CreateBroker.hs
@@ -0,0 +1,611 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.CreateBroker
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a broker. Note: This API is asynchronous.
+--
+-- To create a broker, you must either use the AmazonMQFullAccess IAM
+-- policy or include the following EC2 permissions in your IAM policy.
+--
+-- -   ec2:CreateNetworkInterface
+--
+--     This permission is required to allow Amazon MQ to create an elastic
+--     network interface (ENI) on behalf of your account.
+--
+-- -   ec2:CreateNetworkInterfacePermission
+--
+--     This permission is required to attach the ENI to the broker
+--     instance.
+--
+-- -   ec2:DeleteNetworkInterface
+--
+-- -   ec2:DeleteNetworkInterfacePermission
+--
+-- -   ec2:DetachNetworkInterface
+--
+-- -   ec2:DescribeInternetGateways
+--
+-- -   ec2:DescribeNetworkInterfaces
+--
+-- -   ec2:DescribeNetworkInterfacePermissions
+--
+-- -   ec2:DescribeRouteTables
+--
+-- -   ec2:DescribeSecurityGroups
+--
+-- -   ec2:DescribeSubnets
+--
+-- -   ec2:DescribeVpcs
+--
+-- For more information, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/amazon-mq-setting-up.html#create-iam-user Create an IAM User and Get Your AWS Credentials>
+-- and
+-- <https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/connecting-to-amazon-mq.html#never-modify-delete-elastic-network-interface Never Modify or Delete the Amazon MQ Elastic Network Interface>
+-- in the /Amazon MQ Developer Guide/.
+module Amazonka.MQ.CreateBroker
+  ( -- * Creating a Request
+    CreateBroker (..),
+    newCreateBroker,
+
+    -- * Request Lenses
+    createBroker_authenticationStrategy,
+    createBroker_configuration,
+    createBroker_creatorRequestId,
+    createBroker_encryptionOptions,
+    createBroker_ldapServerMetadata,
+    createBroker_logs,
+    createBroker_maintenanceWindowStartTime,
+    createBroker_securityGroups,
+    createBroker_storageType,
+    createBroker_subnetIds,
+    createBroker_tags,
+    createBroker_engineVersion,
+    createBroker_hostInstanceType,
+    createBroker_autoMinorVersionUpgrade,
+    createBroker_users,
+    createBroker_brokerName,
+    createBroker_deploymentMode,
+    createBroker_engineType,
+    createBroker_publiclyAccessible,
+
+    -- * Destructuring the Response
+    CreateBrokerResponse (..),
+    newCreateBrokerResponse,
+
+    -- * Response Lenses
+    createBrokerResponse_brokerArn,
+    createBrokerResponse_brokerId,
+    createBrokerResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | Creates a broker using the specified properties.
+--
+-- /See:/ 'newCreateBroker' smart constructor.
+data CreateBroker = CreateBroker'
+  { -- | Optional. The authentication strategy used to secure the broker. The
+    -- default is SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | A list of information about the configuration.
+    configuration :: Prelude.Maybe ConfigurationId,
+    -- | The unique ID that the requester receives for the created broker. Amazon
+    -- MQ passes your ID with the API action. Note: We recommend using a
+    -- Universally Unique Identifier (UUID) for the creatorRequestId. You may
+    -- omit the creatorRequestId if your application doesn\'t require
+    -- idempotency.
+    creatorRequestId :: Prelude.Maybe Prelude.Text,
+    -- | Encryption options for the broker. Does not apply to RabbitMQ brokers.
+    encryptionOptions :: Prelude.Maybe EncryptionOptions,
+    -- | Optional. The metadata of the LDAP server used to authenticate and
+    -- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+    ldapServerMetadata :: Prelude.Maybe LdapServerMetadataInput,
+    -- | Enables Amazon CloudWatch logging for brokers.
+    logs :: Prelude.Maybe Logs,
+    -- | The parameters that determine the WeeklyStartTime.
+    maintenanceWindowStartTime :: Prelude.Maybe WeeklyStartTime,
+    -- | The list of rules (1 minimum, 125 maximum) that authorize connections to
+    -- brokers.
+    securityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | The broker\'s storage type.
+    storageType :: Prelude.Maybe BrokerStorageType,
+    -- | The list of groups that define which subnets and IP ranges the broker
+    -- can use from different Availability Zones. If you specify more than one
+    -- subnet, the subnets must be in different Availability Zones. Amazon MQ
+    -- will not be able to create VPC endpoints for your broker with multiple
+    -- subnets in the same Availability Zone. A SINGLE_INSTANCE deployment
+    -- requires one subnet (for example, the default subnet). An
+    -- ACTIVE_STANDBY_MULTI_AZ Amazon MQ for ActiveMQ deployment requires two
+    -- subnets. A CLUSTER_MULTI_AZ Amazon MQ for RabbitMQ deployment has no
+    -- subnet requirements when deployed with public accessibility. Deployment
+    -- without public accessibility requires at least one subnet.
+    --
+    -- If you specify subnets in a
+    -- <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html shared VPC>
+    -- for a RabbitMQ broker, the associated VPC to which the specified subnets
+    -- belong must be owned by your AWS account. Amazon MQ will not be able to
+    -- create VPC endpoints in VPCs that are not owned by your AWS account.
+    subnetIds :: Prelude.Maybe [Prelude.Text],
+    -- | Create tags when creating the broker.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | Required. The broker engine\'s version. For a list of supported engine
+    -- versions, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Text,
+    -- | Required. The broker\'s instance type.
+    hostInstanceType :: Prelude.Text,
+    -- | Enables automatic upgrades to new minor versions for brokers, as new
+    -- versions are released and supported by Amazon MQ. Automatic upgrades
+    -- occur during the scheduled maintenance window of the broker or after a
+    -- manual broker reboot. Set to true by default, if no value is specified.
+    autoMinorVersionUpgrade :: Prelude.Bool,
+    -- | Required. The list of broker users (persons or applications) who can
+    -- access queues and topics. This value can contain only alphanumeric
+    -- characters, dashes, periods, underscores, and tildes (- . _ ~). This
+    -- value must be 2-100 characters long.
+    --
+    -- Amazon MQ for RabbitMQ
+    --
+    -- When you create an Amazon MQ for RabbitMQ broker, one and only one
+    -- administrative user is accepted and created when a broker is first
+    -- provisioned. All subsequent broker users are created by making RabbitMQ
+    -- API calls directly to brokers or via the RabbitMQ web console.
+    users :: [User],
+    -- | Required. The broker\'s name. This value must be unique in your AWS
+    -- account, 1-50 characters long, must contain only letters, numbers,
+    -- dashes, and underscores, and must not contain white spaces, brackets,
+    -- wildcard characters, or special characters.
+    brokerName :: Prelude.Text,
+    -- | Required. The broker\'s deployment mode.
+    deploymentMode :: DeploymentMode,
+    -- | Required. The type of broker engine. Currently, Amazon MQ supports
+    -- ACTIVEMQ and RABBITMQ.
+    engineType :: EngineType,
+    -- | Enables connections from applications outside of the VPC that hosts the
+    -- broker\'s subnets. Set to false by default, if no value is provided.
+    publiclyAccessible :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateBroker' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authenticationStrategy', 'createBroker_authenticationStrategy' - Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+--
+-- 'configuration', 'createBroker_configuration' - A list of information about the configuration.
+--
+-- 'creatorRequestId', 'createBroker_creatorRequestId' - The unique ID that the requester receives for the created broker. Amazon
+-- MQ passes your ID with the API action. Note: We recommend using a
+-- Universally Unique Identifier (UUID) for the creatorRequestId. You may
+-- omit the creatorRequestId if your application doesn\'t require
+-- idempotency.
+--
+-- 'encryptionOptions', 'createBroker_encryptionOptions' - Encryption options for the broker. Does not apply to RabbitMQ brokers.
+--
+-- 'ldapServerMetadata', 'createBroker_ldapServerMetadata' - Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+--
+-- 'logs', 'createBroker_logs' - Enables Amazon CloudWatch logging for brokers.
+--
+-- 'maintenanceWindowStartTime', 'createBroker_maintenanceWindowStartTime' - The parameters that determine the WeeklyStartTime.
+--
+-- 'securityGroups', 'createBroker_securityGroups' - The list of rules (1 minimum, 125 maximum) that authorize connections to
+-- brokers.
+--
+-- 'storageType', 'createBroker_storageType' - The broker\'s storage type.
+--
+-- 'subnetIds', 'createBroker_subnetIds' - The list of groups that define which subnets and IP ranges the broker
+-- can use from different Availability Zones. If you specify more than one
+-- subnet, the subnets must be in different Availability Zones. Amazon MQ
+-- will not be able to create VPC endpoints for your broker with multiple
+-- subnets in the same Availability Zone. A SINGLE_INSTANCE deployment
+-- requires one subnet (for example, the default subnet). An
+-- ACTIVE_STANDBY_MULTI_AZ Amazon MQ for ActiveMQ deployment requires two
+-- subnets. A CLUSTER_MULTI_AZ Amazon MQ for RabbitMQ deployment has no
+-- subnet requirements when deployed with public accessibility. Deployment
+-- without public accessibility requires at least one subnet.
+--
+-- If you specify subnets in a
+-- <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html shared VPC>
+-- for a RabbitMQ broker, the associated VPC to which the specified subnets
+-- belong must be owned by your AWS account. Amazon MQ will not be able to
+-- create VPC endpoints in VPCs that are not owned by your AWS account.
+--
+-- 'tags', 'createBroker_tags' - Create tags when creating the broker.
+--
+-- 'engineVersion', 'createBroker_engineVersion' - Required. The broker engine\'s version. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'hostInstanceType', 'createBroker_hostInstanceType' - Required. The broker\'s instance type.
+--
+-- 'autoMinorVersionUpgrade', 'createBroker_autoMinorVersionUpgrade' - Enables automatic upgrades to new minor versions for brokers, as new
+-- versions are released and supported by Amazon MQ. Automatic upgrades
+-- occur during the scheduled maintenance window of the broker or after a
+-- manual broker reboot. Set to true by default, if no value is specified.
+--
+-- 'users', 'createBroker_users' - Required. The list of broker users (persons or applications) who can
+-- access queues and topics. This value can contain only alphanumeric
+-- characters, dashes, periods, underscores, and tildes (- . _ ~). This
+-- value must be 2-100 characters long.
+--
+-- Amazon MQ for RabbitMQ
+--
+-- When you create an Amazon MQ for RabbitMQ broker, one and only one
+-- administrative user is accepted and created when a broker is first
+-- provisioned. All subsequent broker users are created by making RabbitMQ
+-- API calls directly to brokers or via the RabbitMQ web console.
+--
+-- 'brokerName', 'createBroker_brokerName' - Required. The broker\'s name. This value must be unique in your AWS
+-- account, 1-50 characters long, must contain only letters, numbers,
+-- dashes, and underscores, and must not contain white spaces, brackets,
+-- wildcard characters, or special characters.
+--
+-- 'deploymentMode', 'createBroker_deploymentMode' - Required. The broker\'s deployment mode.
+--
+-- 'engineType', 'createBroker_engineType' - Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+--
+-- 'publiclyAccessible', 'createBroker_publiclyAccessible' - Enables connections from applications outside of the VPC that hosts the
+-- broker\'s subnets. Set to false by default, if no value is provided.
+newCreateBroker ::
+  -- | 'engineVersion'
+  Prelude.Text ->
+  -- | 'hostInstanceType'
+  Prelude.Text ->
+  -- | 'autoMinorVersionUpgrade'
+  Prelude.Bool ->
+  -- | 'brokerName'
+  Prelude.Text ->
+  -- | 'deploymentMode'
+  DeploymentMode ->
+  -- | 'engineType'
+  EngineType ->
+  -- | 'publiclyAccessible'
+  Prelude.Bool ->
+  CreateBroker
+newCreateBroker
+  pEngineVersion_
+  pHostInstanceType_
+  pAutoMinorVersionUpgrade_
+  pBrokerName_
+  pDeploymentMode_
+  pEngineType_
+  pPubliclyAccessible_ =
+    CreateBroker'
+      { authenticationStrategy =
+          Prelude.Nothing,
+        configuration = Prelude.Nothing,
+        creatorRequestId = Prelude.Nothing,
+        encryptionOptions = Prelude.Nothing,
+        ldapServerMetadata = Prelude.Nothing,
+        logs = Prelude.Nothing,
+        maintenanceWindowStartTime = Prelude.Nothing,
+        securityGroups = Prelude.Nothing,
+        storageType = Prelude.Nothing,
+        subnetIds = Prelude.Nothing,
+        tags = Prelude.Nothing,
+        engineVersion = pEngineVersion_,
+        hostInstanceType = pHostInstanceType_,
+        autoMinorVersionUpgrade = pAutoMinorVersionUpgrade_,
+        users = Prelude.mempty,
+        brokerName = pBrokerName_,
+        deploymentMode = pDeploymentMode_,
+        engineType = pEngineType_,
+        publiclyAccessible = pPubliclyAccessible_
+      }
+
+-- | Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+createBroker_authenticationStrategy :: Lens.Lens' CreateBroker (Prelude.Maybe AuthenticationStrategy)
+createBroker_authenticationStrategy = Lens.lens (\CreateBroker' {authenticationStrategy} -> authenticationStrategy) (\s@CreateBroker' {} a -> s {authenticationStrategy = a} :: CreateBroker)
+
+-- | A list of information about the configuration.
+createBroker_configuration :: Lens.Lens' CreateBroker (Prelude.Maybe ConfigurationId)
+createBroker_configuration = Lens.lens (\CreateBroker' {configuration} -> configuration) (\s@CreateBroker' {} a -> s {configuration = a} :: CreateBroker)
+
+-- | The unique ID that the requester receives for the created broker. Amazon
+-- MQ passes your ID with the API action. Note: We recommend using a
+-- Universally Unique Identifier (UUID) for the creatorRequestId. You may
+-- omit the creatorRequestId if your application doesn\'t require
+-- idempotency.
+createBroker_creatorRequestId :: Lens.Lens' CreateBroker (Prelude.Maybe Prelude.Text)
+createBroker_creatorRequestId = Lens.lens (\CreateBroker' {creatorRequestId} -> creatorRequestId) (\s@CreateBroker' {} a -> s {creatorRequestId = a} :: CreateBroker)
+
+-- | Encryption options for the broker. Does not apply to RabbitMQ brokers.
+createBroker_encryptionOptions :: Lens.Lens' CreateBroker (Prelude.Maybe EncryptionOptions)
+createBroker_encryptionOptions = Lens.lens (\CreateBroker' {encryptionOptions} -> encryptionOptions) (\s@CreateBroker' {} a -> s {encryptionOptions = a} :: CreateBroker)
+
+-- | Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+createBroker_ldapServerMetadata :: Lens.Lens' CreateBroker (Prelude.Maybe LdapServerMetadataInput)
+createBroker_ldapServerMetadata = Lens.lens (\CreateBroker' {ldapServerMetadata} -> ldapServerMetadata) (\s@CreateBroker' {} a -> s {ldapServerMetadata = a} :: CreateBroker)
+
+-- | Enables Amazon CloudWatch logging for brokers.
+createBroker_logs :: Lens.Lens' CreateBroker (Prelude.Maybe Logs)
+createBroker_logs = Lens.lens (\CreateBroker' {logs} -> logs) (\s@CreateBroker' {} a -> s {logs = a} :: CreateBroker)
+
+-- | The parameters that determine the WeeklyStartTime.
+createBroker_maintenanceWindowStartTime :: Lens.Lens' CreateBroker (Prelude.Maybe WeeklyStartTime)
+createBroker_maintenanceWindowStartTime = Lens.lens (\CreateBroker' {maintenanceWindowStartTime} -> maintenanceWindowStartTime) (\s@CreateBroker' {} a -> s {maintenanceWindowStartTime = a} :: CreateBroker)
+
+-- | The list of rules (1 minimum, 125 maximum) that authorize connections to
+-- brokers.
+createBroker_securityGroups :: Lens.Lens' CreateBroker (Prelude.Maybe [Prelude.Text])
+createBroker_securityGroups = Lens.lens (\CreateBroker' {securityGroups} -> securityGroups) (\s@CreateBroker' {} a -> s {securityGroups = a} :: CreateBroker) Prelude.. Lens.mapping Lens.coerced
+
+-- | The broker\'s storage type.
+createBroker_storageType :: Lens.Lens' CreateBroker (Prelude.Maybe BrokerStorageType)
+createBroker_storageType = Lens.lens (\CreateBroker' {storageType} -> storageType) (\s@CreateBroker' {} a -> s {storageType = a} :: CreateBroker)
+
+-- | The list of groups that define which subnets and IP ranges the broker
+-- can use from different Availability Zones. If you specify more than one
+-- subnet, the subnets must be in different Availability Zones. Amazon MQ
+-- will not be able to create VPC endpoints for your broker with multiple
+-- subnets in the same Availability Zone. A SINGLE_INSTANCE deployment
+-- requires one subnet (for example, the default subnet). An
+-- ACTIVE_STANDBY_MULTI_AZ Amazon MQ for ActiveMQ deployment requires two
+-- subnets. A CLUSTER_MULTI_AZ Amazon MQ for RabbitMQ deployment has no
+-- subnet requirements when deployed with public accessibility. Deployment
+-- without public accessibility requires at least one subnet.
+--
+-- If you specify subnets in a
+-- <https://docs.aws.amazon.com/vpc/latest/userguide/vpc-sharing.html shared VPC>
+-- for a RabbitMQ broker, the associated VPC to which the specified subnets
+-- belong must be owned by your AWS account. Amazon MQ will not be able to
+-- create VPC endpoints in VPCs that are not owned by your AWS account.
+createBroker_subnetIds :: Lens.Lens' CreateBroker (Prelude.Maybe [Prelude.Text])
+createBroker_subnetIds = Lens.lens (\CreateBroker' {subnetIds} -> subnetIds) (\s@CreateBroker' {} a -> s {subnetIds = a} :: CreateBroker) Prelude.. Lens.mapping Lens.coerced
+
+-- | Create tags when creating the broker.
+createBroker_tags :: Lens.Lens' CreateBroker (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createBroker_tags = Lens.lens (\CreateBroker' {tags} -> tags) (\s@CreateBroker' {} a -> s {tags = a} :: CreateBroker) Prelude.. Lens.mapping Lens.coerced
+
+-- | Required. The broker engine\'s version. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+createBroker_engineVersion :: Lens.Lens' CreateBroker Prelude.Text
+createBroker_engineVersion = Lens.lens (\CreateBroker' {engineVersion} -> engineVersion) (\s@CreateBroker' {} a -> s {engineVersion = a} :: CreateBroker)
+
+-- | Required. The broker\'s instance type.
+createBroker_hostInstanceType :: Lens.Lens' CreateBroker Prelude.Text
+createBroker_hostInstanceType = Lens.lens (\CreateBroker' {hostInstanceType} -> hostInstanceType) (\s@CreateBroker' {} a -> s {hostInstanceType = a} :: CreateBroker)
+
+-- | Enables automatic upgrades to new minor versions for brokers, as new
+-- versions are released and supported by Amazon MQ. Automatic upgrades
+-- occur during the scheduled maintenance window of the broker or after a
+-- manual broker reboot. Set to true by default, if no value is specified.
+createBroker_autoMinorVersionUpgrade :: Lens.Lens' CreateBroker Prelude.Bool
+createBroker_autoMinorVersionUpgrade = Lens.lens (\CreateBroker' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@CreateBroker' {} a -> s {autoMinorVersionUpgrade = a} :: CreateBroker)
+
+-- | Required. The list of broker users (persons or applications) who can
+-- access queues and topics. This value can contain only alphanumeric
+-- characters, dashes, periods, underscores, and tildes (- . _ ~). This
+-- value must be 2-100 characters long.
+--
+-- Amazon MQ for RabbitMQ
+--
+-- When you create an Amazon MQ for RabbitMQ broker, one and only one
+-- administrative user is accepted and created when a broker is first
+-- provisioned. All subsequent broker users are created by making RabbitMQ
+-- API calls directly to brokers or via the RabbitMQ web console.
+createBroker_users :: Lens.Lens' CreateBroker [User]
+createBroker_users = Lens.lens (\CreateBroker' {users} -> users) (\s@CreateBroker' {} a -> s {users = a} :: CreateBroker) Prelude.. Lens.coerced
+
+-- | Required. The broker\'s name. This value must be unique in your AWS
+-- account, 1-50 characters long, must contain only letters, numbers,
+-- dashes, and underscores, and must not contain white spaces, brackets,
+-- wildcard characters, or special characters.
+createBroker_brokerName :: Lens.Lens' CreateBroker Prelude.Text
+createBroker_brokerName = Lens.lens (\CreateBroker' {brokerName} -> brokerName) (\s@CreateBroker' {} a -> s {brokerName = a} :: CreateBroker)
+
+-- | Required. The broker\'s deployment mode.
+createBroker_deploymentMode :: Lens.Lens' CreateBroker DeploymentMode
+createBroker_deploymentMode = Lens.lens (\CreateBroker' {deploymentMode} -> deploymentMode) (\s@CreateBroker' {} a -> s {deploymentMode = a} :: CreateBroker)
+
+-- | Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+createBroker_engineType :: Lens.Lens' CreateBroker EngineType
+createBroker_engineType = Lens.lens (\CreateBroker' {engineType} -> engineType) (\s@CreateBroker' {} a -> s {engineType = a} :: CreateBroker)
+
+-- | Enables connections from applications outside of the VPC that hosts the
+-- broker\'s subnets. Set to false by default, if no value is provided.
+createBroker_publiclyAccessible :: Lens.Lens' CreateBroker Prelude.Bool
+createBroker_publiclyAccessible = Lens.lens (\CreateBroker' {publiclyAccessible} -> publiclyAccessible) (\s@CreateBroker' {} a -> s {publiclyAccessible = a} :: CreateBroker)
+
+instance Core.AWSRequest CreateBroker where
+  type AWSResponse CreateBroker = CreateBrokerResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateBrokerResponse'
+            Prelude.<$> (x Data..?> "brokerArn")
+            Prelude.<*> (x Data..?> "brokerId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateBroker where
+  hashWithSalt _salt CreateBroker' {..} =
+    _salt
+      `Prelude.hashWithSalt` authenticationStrategy
+      `Prelude.hashWithSalt` configuration
+      `Prelude.hashWithSalt` creatorRequestId
+      `Prelude.hashWithSalt` encryptionOptions
+      `Prelude.hashWithSalt` ldapServerMetadata
+      `Prelude.hashWithSalt` logs
+      `Prelude.hashWithSalt` maintenanceWindowStartTime
+      `Prelude.hashWithSalt` securityGroups
+      `Prelude.hashWithSalt` storageType
+      `Prelude.hashWithSalt` subnetIds
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` hostInstanceType
+      `Prelude.hashWithSalt` autoMinorVersionUpgrade
+      `Prelude.hashWithSalt` users
+      `Prelude.hashWithSalt` brokerName
+      `Prelude.hashWithSalt` deploymentMode
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` publiclyAccessible
+
+instance Prelude.NFData CreateBroker where
+  rnf CreateBroker' {..} =
+    Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf configuration
+      `Prelude.seq` Prelude.rnf creatorRequestId
+      `Prelude.seq` Prelude.rnf encryptionOptions
+      `Prelude.seq` Prelude.rnf ldapServerMetadata
+      `Prelude.seq` Prelude.rnf logs
+      `Prelude.seq` Prelude.rnf maintenanceWindowStartTime
+      `Prelude.seq` Prelude.rnf securityGroups
+      `Prelude.seq` Prelude.rnf storageType
+      `Prelude.seq` Prelude.rnf subnetIds
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf users
+      `Prelude.seq` Prelude.rnf brokerName
+      `Prelude.seq` Prelude.rnf deploymentMode
+      `Prelude.seq` Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf publiclyAccessible
+
+instance Data.ToHeaders CreateBroker where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateBroker where
+  toJSON CreateBroker' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authenticationStrategy" Data..=)
+              Prelude.<$> authenticationStrategy,
+            ("configuration" Data..=) Prelude.<$> configuration,
+            ("creatorRequestId" Data..=)
+              Prelude.<$> creatorRequestId,
+            ("encryptionOptions" Data..=)
+              Prelude.<$> encryptionOptions,
+            ("ldapServerMetadata" Data..=)
+              Prelude.<$> ldapServerMetadata,
+            ("logs" Data..=) Prelude.<$> logs,
+            ("maintenanceWindowStartTime" Data..=)
+              Prelude.<$> maintenanceWindowStartTime,
+            ("securityGroups" Data..=)
+              Prelude.<$> securityGroups,
+            ("storageType" Data..=) Prelude.<$> storageType,
+            ("subnetIds" Data..=) Prelude.<$> subnetIds,
+            ("tags" Data..=) Prelude.<$> tags,
+            Prelude.Just ("engineVersion" Data..= engineVersion),
+            Prelude.Just
+              ("hostInstanceType" Data..= hostInstanceType),
+            Prelude.Just
+              ( "autoMinorVersionUpgrade"
+                  Data..= autoMinorVersionUpgrade
+              ),
+            Prelude.Just ("users" Data..= users),
+            Prelude.Just ("brokerName" Data..= brokerName),
+            Prelude.Just
+              ("deploymentMode" Data..= deploymentMode),
+            Prelude.Just ("engineType" Data..= engineType),
+            Prelude.Just
+              ("publiclyAccessible" Data..= publiclyAccessible)
+          ]
+      )
+
+instance Data.ToPath CreateBroker where
+  toPath = Prelude.const "/v1/brokers"
+
+instance Data.ToQuery CreateBroker where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateBrokerResponse' smart constructor.
+data CreateBrokerResponse = CreateBrokerResponse'
+  { -- | The broker\'s Amazon Resource Name (ARN).
+    brokerArn :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateBrokerResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerArn', 'createBrokerResponse_brokerArn' - The broker\'s Amazon Resource Name (ARN).
+--
+-- 'brokerId', 'createBrokerResponse_brokerId' - The unique ID that Amazon MQ generates for the broker.
+--
+-- 'httpStatus', 'createBrokerResponse_httpStatus' - The response's http status code.
+newCreateBrokerResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateBrokerResponse
+newCreateBrokerResponse pHttpStatus_ =
+  CreateBrokerResponse'
+    { brokerArn = Prelude.Nothing,
+      brokerId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The broker\'s Amazon Resource Name (ARN).
+createBrokerResponse_brokerArn :: Lens.Lens' CreateBrokerResponse (Prelude.Maybe Prelude.Text)
+createBrokerResponse_brokerArn = Lens.lens (\CreateBrokerResponse' {brokerArn} -> brokerArn) (\s@CreateBrokerResponse' {} a -> s {brokerArn = a} :: CreateBrokerResponse)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+createBrokerResponse_brokerId :: Lens.Lens' CreateBrokerResponse (Prelude.Maybe Prelude.Text)
+createBrokerResponse_brokerId = Lens.lens (\CreateBrokerResponse' {brokerId} -> brokerId) (\s@CreateBrokerResponse' {} a -> s {brokerId = a} :: CreateBrokerResponse)
+
+-- | The response's http status code.
+createBrokerResponse_httpStatus :: Lens.Lens' CreateBrokerResponse Prelude.Int
+createBrokerResponse_httpStatus = Lens.lens (\CreateBrokerResponse' {httpStatus} -> httpStatus) (\s@CreateBrokerResponse' {} a -> s {httpStatus = a} :: CreateBrokerResponse)
+
+instance Prelude.NFData CreateBrokerResponse where
+  rnf CreateBrokerResponse' {..} =
+    Prelude.rnf brokerArn
+      `Prelude.seq` Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/CreateConfiguration.hs b/gen/Amazonka/MQ/CreateConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/CreateConfiguration.hs
@@ -0,0 +1,320 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.CreateConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates a new configuration for the specified configuration name. Amazon
+-- MQ uses the default configuration (the engine type and version).
+module Amazonka.MQ.CreateConfiguration
+  ( -- * Creating a Request
+    CreateConfiguration (..),
+    newCreateConfiguration,
+
+    -- * Request Lenses
+    createConfiguration_authenticationStrategy,
+    createConfiguration_tags,
+    createConfiguration_engineVersion,
+    createConfiguration_engineType,
+    createConfiguration_name,
+
+    -- * Destructuring the Response
+    CreateConfigurationResponse (..),
+    newCreateConfigurationResponse,
+
+    -- * Response Lenses
+    createConfigurationResponse_arn,
+    createConfigurationResponse_authenticationStrategy,
+    createConfigurationResponse_created,
+    createConfigurationResponse_id,
+    createConfigurationResponse_latestRevision,
+    createConfigurationResponse_name,
+    createConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | Creates a new configuration for the specified configuration name. Amazon
+-- MQ uses the default configuration (the engine type and version).
+--
+-- /See:/ 'newCreateConfiguration' smart constructor.
+data CreateConfiguration = CreateConfiguration'
+  { -- | Optional. The authentication strategy associated with the configuration.
+    -- The default is SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | Create tags when creating the configuration.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | Required. The broker engine\'s version. For a list of supported engine
+    -- versions, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Text,
+    -- | Required. The type of broker engine. Currently, Amazon MQ supports
+    -- ACTIVEMQ and RABBITMQ.
+    engineType :: EngineType,
+    -- | Required. The name of the configuration. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 1-150 characters long.
+    name :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authenticationStrategy', 'createConfiguration_authenticationStrategy' - Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+--
+-- 'tags', 'createConfiguration_tags' - Create tags when creating the configuration.
+--
+-- 'engineVersion', 'createConfiguration_engineVersion' - Required. The broker engine\'s version. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'engineType', 'createConfiguration_engineType' - Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+--
+-- 'name', 'createConfiguration_name' - Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+newCreateConfiguration ::
+  -- | 'engineVersion'
+  Prelude.Text ->
+  -- | 'engineType'
+  EngineType ->
+  -- | 'name'
+  Prelude.Text ->
+  CreateConfiguration
+newCreateConfiguration
+  pEngineVersion_
+  pEngineType_
+  pName_ =
+    CreateConfiguration'
+      { authenticationStrategy =
+          Prelude.Nothing,
+        tags = Prelude.Nothing,
+        engineVersion = pEngineVersion_,
+        engineType = pEngineType_,
+        name = pName_
+      }
+
+-- | Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+createConfiguration_authenticationStrategy :: Lens.Lens' CreateConfiguration (Prelude.Maybe AuthenticationStrategy)
+createConfiguration_authenticationStrategy = Lens.lens (\CreateConfiguration' {authenticationStrategy} -> authenticationStrategy) (\s@CreateConfiguration' {} a -> s {authenticationStrategy = a} :: CreateConfiguration)
+
+-- | Create tags when creating the configuration.
+createConfiguration_tags :: Lens.Lens' CreateConfiguration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createConfiguration_tags = Lens.lens (\CreateConfiguration' {tags} -> tags) (\s@CreateConfiguration' {} a -> s {tags = a} :: CreateConfiguration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Required. The broker engine\'s version. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+createConfiguration_engineVersion :: Lens.Lens' CreateConfiguration Prelude.Text
+createConfiguration_engineVersion = Lens.lens (\CreateConfiguration' {engineVersion} -> engineVersion) (\s@CreateConfiguration' {} a -> s {engineVersion = a} :: CreateConfiguration)
+
+-- | Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+createConfiguration_engineType :: Lens.Lens' CreateConfiguration EngineType
+createConfiguration_engineType = Lens.lens (\CreateConfiguration' {engineType} -> engineType) (\s@CreateConfiguration' {} a -> s {engineType = a} :: CreateConfiguration)
+
+-- | Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+createConfiguration_name :: Lens.Lens' CreateConfiguration Prelude.Text
+createConfiguration_name = Lens.lens (\CreateConfiguration' {name} -> name) (\s@CreateConfiguration' {} a -> s {name = a} :: CreateConfiguration)
+
+instance Core.AWSRequest CreateConfiguration where
+  type
+    AWSResponse CreateConfiguration =
+      CreateConfigurationResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          CreateConfigurationResponse'
+            Prelude.<$> (x Data..?> "arn")
+            Prelude.<*> (x Data..?> "authenticationStrategy")
+            Prelude.<*> (x Data..?> "created")
+            Prelude.<*> (x Data..?> "id")
+            Prelude.<*> (x Data..?> "latestRevision")
+            Prelude.<*> (x Data..?> "name")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateConfiguration where
+  hashWithSalt _salt CreateConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` authenticationStrategy
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` name
+
+instance Prelude.NFData CreateConfiguration where
+  rnf CreateConfiguration' {..} =
+    Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf name
+
+instance Data.ToHeaders CreateConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateConfiguration where
+  toJSON CreateConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authenticationStrategy" Data..=)
+              Prelude.<$> authenticationStrategy,
+            ("tags" Data..=) Prelude.<$> tags,
+            Prelude.Just ("engineVersion" Data..= engineVersion),
+            Prelude.Just ("engineType" Data..= engineType),
+            Prelude.Just ("name" Data..= name)
+          ]
+      )
+
+instance Data.ToPath CreateConfiguration where
+  toPath = Prelude.const "/v1/configurations"
+
+instance Data.ToQuery CreateConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateConfigurationResponse' smart constructor.
+data CreateConfigurationResponse = CreateConfigurationResponse'
+  { -- | Required. The Amazon Resource Name (ARN) of the configuration.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The authentication strategy associated with the configuration.
+    -- The default is SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | Required. The date and time of the configuration.
+    created :: Prelude.Maybe Data.ISO8601,
+    -- | Required. The unique ID that Amazon MQ generates for the configuration.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The latest revision of the configuration.
+    latestRevision :: Prelude.Maybe ConfigurationRevision,
+    -- | Required. The name of the configuration. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 1-150 characters long.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'arn', 'createConfigurationResponse_arn' - Required. The Amazon Resource Name (ARN) of the configuration.
+--
+-- 'authenticationStrategy', 'createConfigurationResponse_authenticationStrategy' - Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+--
+-- 'created', 'createConfigurationResponse_created' - Required. The date and time of the configuration.
+--
+-- 'id', 'createConfigurationResponse_id' - Required. The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'latestRevision', 'createConfigurationResponse_latestRevision' - The latest revision of the configuration.
+--
+-- 'name', 'createConfigurationResponse_name' - Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+--
+-- 'httpStatus', 'createConfigurationResponse_httpStatus' - The response's http status code.
+newCreateConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateConfigurationResponse
+newCreateConfigurationResponse pHttpStatus_ =
+  CreateConfigurationResponse'
+    { arn = Prelude.Nothing,
+      authenticationStrategy = Prelude.Nothing,
+      created = Prelude.Nothing,
+      id = Prelude.Nothing,
+      latestRevision = Prelude.Nothing,
+      name = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Required. The Amazon Resource Name (ARN) of the configuration.
+createConfigurationResponse_arn :: Lens.Lens' CreateConfigurationResponse (Prelude.Maybe Prelude.Text)
+createConfigurationResponse_arn = Lens.lens (\CreateConfigurationResponse' {arn} -> arn) (\s@CreateConfigurationResponse' {} a -> s {arn = a} :: CreateConfigurationResponse)
+
+-- | Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+createConfigurationResponse_authenticationStrategy :: Lens.Lens' CreateConfigurationResponse (Prelude.Maybe AuthenticationStrategy)
+createConfigurationResponse_authenticationStrategy = Lens.lens (\CreateConfigurationResponse' {authenticationStrategy} -> authenticationStrategy) (\s@CreateConfigurationResponse' {} a -> s {authenticationStrategy = a} :: CreateConfigurationResponse)
+
+-- | Required. The date and time of the configuration.
+createConfigurationResponse_created :: Lens.Lens' CreateConfigurationResponse (Prelude.Maybe Prelude.UTCTime)
+createConfigurationResponse_created = Lens.lens (\CreateConfigurationResponse' {created} -> created) (\s@CreateConfigurationResponse' {} a -> s {created = a} :: CreateConfigurationResponse) Prelude.. Lens.mapping Data._Time
+
+-- | Required. The unique ID that Amazon MQ generates for the configuration.
+createConfigurationResponse_id :: Lens.Lens' CreateConfigurationResponse (Prelude.Maybe Prelude.Text)
+createConfigurationResponse_id = Lens.lens (\CreateConfigurationResponse' {id} -> id) (\s@CreateConfigurationResponse' {} a -> s {id = a} :: CreateConfigurationResponse)
+
+-- | The latest revision of the configuration.
+createConfigurationResponse_latestRevision :: Lens.Lens' CreateConfigurationResponse (Prelude.Maybe ConfigurationRevision)
+createConfigurationResponse_latestRevision = Lens.lens (\CreateConfigurationResponse' {latestRevision} -> latestRevision) (\s@CreateConfigurationResponse' {} a -> s {latestRevision = a} :: CreateConfigurationResponse)
+
+-- | Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+createConfigurationResponse_name :: Lens.Lens' CreateConfigurationResponse (Prelude.Maybe Prelude.Text)
+createConfigurationResponse_name = Lens.lens (\CreateConfigurationResponse' {name} -> name) (\s@CreateConfigurationResponse' {} a -> s {name = a} :: CreateConfigurationResponse)
+
+-- | The response's http status code.
+createConfigurationResponse_httpStatus :: Lens.Lens' CreateConfigurationResponse Prelude.Int
+createConfigurationResponse_httpStatus = Lens.lens (\CreateConfigurationResponse' {httpStatus} -> httpStatus) (\s@CreateConfigurationResponse' {} a -> s {httpStatus = a} :: CreateConfigurationResponse)
+
+instance Prelude.NFData CreateConfigurationResponse where
+  rnf CreateConfigurationResponse' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf created
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf latestRevision
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/CreateTags.hs b/gen/Amazonka/MQ/CreateTags.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/CreateTags.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.CreateTags
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Add a tag to a resource.
+module Amazonka.MQ.CreateTags
+  ( -- * Creating a Request
+    CreateTags (..),
+    newCreateTags,
+
+    -- * Request Lenses
+    createTags_tags,
+    createTags_resourceArn,
+
+    -- * Destructuring the Response
+    CreateTagsResponse (..),
+    newCreateTagsResponse,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | A map of the key-value pairs for the resource tag.
+--
+-- /See:/ 'newCreateTags' smart constructor.
+data CreateTags = CreateTags'
+  { -- | The key-value pair for the resource tag.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The Amazon Resource Name (ARN) of the resource tag.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateTags' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'tags', 'createTags_tags' - The key-value pair for the resource tag.
+--
+-- 'resourceArn', 'createTags_resourceArn' - The Amazon Resource Name (ARN) of the resource tag.
+newCreateTags ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  CreateTags
+newCreateTags pResourceArn_ =
+  CreateTags'
+    { tags = Prelude.Nothing,
+      resourceArn = pResourceArn_
+    }
+
+-- | The key-value pair for the resource tag.
+createTags_tags :: Lens.Lens' CreateTags (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+createTags_tags = Lens.lens (\CreateTags' {tags} -> tags) (\s@CreateTags' {} a -> s {tags = a} :: CreateTags) Prelude.. Lens.mapping Lens.coerced
+
+-- | The Amazon Resource Name (ARN) of the resource tag.
+createTags_resourceArn :: Lens.Lens' CreateTags Prelude.Text
+createTags_resourceArn = Lens.lens (\CreateTags' {resourceArn} -> resourceArn) (\s@CreateTags' {} a -> s {resourceArn = a} :: CreateTags)
+
+instance Core.AWSRequest CreateTags where
+  type AWSResponse CreateTags = CreateTagsResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response = Response.receiveNull CreateTagsResponse'
+
+instance Prelude.Hashable CreateTags where
+  hashWithSalt _salt CreateTags' {..} =
+    _salt
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` resourceArn
+
+instance Prelude.NFData CreateTags where
+  rnf CreateTags' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf resourceArn
+
+instance Data.ToHeaders CreateTags where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateTags where
+  toJSON CreateTags' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [("tags" Data..=) Prelude.<$> tags]
+      )
+
+instance Data.ToPath CreateTags where
+  toPath CreateTags' {..} =
+    Prelude.mconcat
+      ["/v1/tags/", Data.toBS resourceArn]
+
+instance Data.ToQuery CreateTags where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateTagsResponse' smart constructor.
+data CreateTagsResponse = CreateTagsResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateTagsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newCreateTagsResponse ::
+  CreateTagsResponse
+newCreateTagsResponse = CreateTagsResponse'
+
+instance Prelude.NFData CreateTagsResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/MQ/CreateUser.hs b/gen/Amazonka/MQ/CreateUser.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/CreateUser.hs
@@ -0,0 +1,234 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.CreateUser
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Creates an ActiveMQ user.
+module Amazonka.MQ.CreateUser
+  ( -- * Creating a Request
+    CreateUser (..),
+    newCreateUser,
+
+    -- * Request Lenses
+    createUser_consoleAccess,
+    createUser_groups,
+    createUser_username,
+    createUser_brokerId,
+    createUser_password,
+
+    -- * Destructuring the Response
+    CreateUserResponse (..),
+    newCreateUserResponse,
+
+    -- * Response Lenses
+    createUserResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | Creates a new ActiveMQ user.
+--
+-- /See:/ 'newCreateUser' smart constructor.
+data CreateUser = CreateUser'
+  { -- | Enables access to the ActiveMQ Web Console for the ActiveMQ user.
+    consoleAccess :: Prelude.Maybe Prelude.Bool,
+    -- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+    -- value can contain only alphanumeric characters, dashes, periods,
+    -- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+    -- long.
+    groups :: Prelude.Maybe [Prelude.Text],
+    -- | The username of the ActiveMQ user. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 2-100 characters long.
+    username :: Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text,
+    -- | Required. The password of the user. This value must be at least 12
+    -- characters long, must contain at least 4 unique characters, and must not
+    -- contain commas, colons, or equal signs (,:=).
+    password :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateUser' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'consoleAccess', 'createUser_consoleAccess' - Enables access to the ActiveMQ Web Console for the ActiveMQ user.
+--
+-- 'groups', 'createUser_groups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+--
+-- 'username', 'createUser_username' - The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+--
+-- 'brokerId', 'createUser_brokerId' - The unique ID that Amazon MQ generates for the broker.
+--
+-- 'password', 'createUser_password' - Required. The password of the user. This value must be at least 12
+-- characters long, must contain at least 4 unique characters, and must not
+-- contain commas, colons, or equal signs (,:=).
+newCreateUser ::
+  -- | 'username'
+  Prelude.Text ->
+  -- | 'brokerId'
+  Prelude.Text ->
+  -- | 'password'
+  Prelude.Text ->
+  CreateUser
+newCreateUser pUsername_ pBrokerId_ pPassword_ =
+  CreateUser'
+    { consoleAccess = Prelude.Nothing,
+      groups = Prelude.Nothing,
+      username = pUsername_,
+      brokerId = pBrokerId_,
+      password = pPassword_
+    }
+
+-- | Enables access to the ActiveMQ Web Console for the ActiveMQ user.
+createUser_consoleAccess :: Lens.Lens' CreateUser (Prelude.Maybe Prelude.Bool)
+createUser_consoleAccess = Lens.lens (\CreateUser' {consoleAccess} -> consoleAccess) (\s@CreateUser' {} a -> s {consoleAccess = a} :: CreateUser)
+
+-- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+createUser_groups :: Lens.Lens' CreateUser (Prelude.Maybe [Prelude.Text])
+createUser_groups = Lens.lens (\CreateUser' {groups} -> groups) (\s@CreateUser' {} a -> s {groups = a} :: CreateUser) Prelude.. Lens.mapping Lens.coerced
+
+-- | The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+createUser_username :: Lens.Lens' CreateUser Prelude.Text
+createUser_username = Lens.lens (\CreateUser' {username} -> username) (\s@CreateUser' {} a -> s {username = a} :: CreateUser)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+createUser_brokerId :: Lens.Lens' CreateUser Prelude.Text
+createUser_brokerId = Lens.lens (\CreateUser' {brokerId} -> brokerId) (\s@CreateUser' {} a -> s {brokerId = a} :: CreateUser)
+
+-- | Required. The password of the user. This value must be at least 12
+-- characters long, must contain at least 4 unique characters, and must not
+-- contain commas, colons, or equal signs (,:=).
+createUser_password :: Lens.Lens' CreateUser Prelude.Text
+createUser_password = Lens.lens (\CreateUser' {password} -> password) (\s@CreateUser' {} a -> s {password = a} :: CreateUser)
+
+instance Core.AWSRequest CreateUser where
+  type AWSResponse CreateUser = CreateUserResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          CreateUserResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable CreateUser where
+  hashWithSalt _salt CreateUser' {..} =
+    _salt
+      `Prelude.hashWithSalt` consoleAccess
+      `Prelude.hashWithSalt` groups
+      `Prelude.hashWithSalt` username
+      `Prelude.hashWithSalt` brokerId
+      `Prelude.hashWithSalt` password
+
+instance Prelude.NFData CreateUser where
+  rnf CreateUser' {..} =
+    Prelude.rnf consoleAccess
+      `Prelude.seq` Prelude.rnf groups
+      `Prelude.seq` Prelude.rnf username
+      `Prelude.seq` Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf password
+
+instance Data.ToHeaders CreateUser where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON CreateUser where
+  toJSON CreateUser' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("consoleAccess" Data..=) Prelude.<$> consoleAccess,
+            ("groups" Data..=) Prelude.<$> groups,
+            Prelude.Just ("password" Data..= password)
+          ]
+      )
+
+instance Data.ToPath CreateUser where
+  toPath CreateUser' {..} =
+    Prelude.mconcat
+      [ "/v1/brokers/",
+        Data.toBS brokerId,
+        "/users/",
+        Data.toBS username
+      ]
+
+instance Data.ToQuery CreateUser where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newCreateUserResponse' smart constructor.
+data CreateUserResponse = CreateUserResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'CreateUserResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'createUserResponse_httpStatus' - The response's http status code.
+newCreateUserResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  CreateUserResponse
+newCreateUserResponse pHttpStatus_ =
+  CreateUserResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+createUserResponse_httpStatus :: Lens.Lens' CreateUserResponse Prelude.Int
+createUserResponse_httpStatus = Lens.lens (\CreateUserResponse' {httpStatus} -> httpStatus) (\s@CreateUserResponse' {} a -> s {httpStatus = a} :: CreateUserResponse)
+
+instance Prelude.NFData CreateUserResponse where
+  rnf CreateUserResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DeleteBroker.hs b/gen/Amazonka/MQ/DeleteBroker.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DeleteBroker.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DeleteBroker
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes a broker. Note: This API is asynchronous.
+module Amazonka.MQ.DeleteBroker
+  ( -- * Creating a Request
+    DeleteBroker (..),
+    newDeleteBroker,
+
+    -- * Request Lenses
+    deleteBroker_brokerId,
+
+    -- * Destructuring the Response
+    DeleteBrokerResponse (..),
+    newDeleteBrokerResponse,
+
+    -- * Response Lenses
+    deleteBrokerResponse_brokerId,
+    deleteBrokerResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteBroker' smart constructor.
+data DeleteBroker = DeleteBroker'
+  { -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteBroker' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerId', 'deleteBroker_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newDeleteBroker ::
+  -- | 'brokerId'
+  Prelude.Text ->
+  DeleteBroker
+newDeleteBroker pBrokerId_ =
+  DeleteBroker' {brokerId = pBrokerId_}
+
+-- | The unique ID that Amazon MQ generates for the broker.
+deleteBroker_brokerId :: Lens.Lens' DeleteBroker Prelude.Text
+deleteBroker_brokerId = Lens.lens (\DeleteBroker' {brokerId} -> brokerId) (\s@DeleteBroker' {} a -> s {brokerId = a} :: DeleteBroker)
+
+instance Core.AWSRequest DeleteBroker where
+  type AWSResponse DeleteBroker = DeleteBrokerResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DeleteBrokerResponse'
+            Prelude.<$> (x Data..?> "brokerId")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteBroker where
+  hashWithSalt _salt DeleteBroker' {..} =
+    _salt `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData DeleteBroker where
+  rnf DeleteBroker' {..} = Prelude.rnf brokerId
+
+instance Data.ToHeaders DeleteBroker where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteBroker where
+  toPath DeleteBroker' {..} =
+    Prelude.mconcat
+      ["/v1/brokers/", Data.toBS brokerId]
+
+instance Data.ToQuery DeleteBroker where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteBrokerResponse' smart constructor.
+data DeleteBrokerResponse = DeleteBrokerResponse'
+  { -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteBrokerResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerId', 'deleteBrokerResponse_brokerId' - The unique ID that Amazon MQ generates for the broker.
+--
+-- 'httpStatus', 'deleteBrokerResponse_httpStatus' - The response's http status code.
+newDeleteBrokerResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteBrokerResponse
+newDeleteBrokerResponse pHttpStatus_ =
+  DeleteBrokerResponse'
+    { brokerId = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The unique ID that Amazon MQ generates for the broker.
+deleteBrokerResponse_brokerId :: Lens.Lens' DeleteBrokerResponse (Prelude.Maybe Prelude.Text)
+deleteBrokerResponse_brokerId = Lens.lens (\DeleteBrokerResponse' {brokerId} -> brokerId) (\s@DeleteBrokerResponse' {} a -> s {brokerId = a} :: DeleteBrokerResponse)
+
+-- | The response's http status code.
+deleteBrokerResponse_httpStatus :: Lens.Lens' DeleteBrokerResponse Prelude.Int
+deleteBrokerResponse_httpStatus = Lens.lens (\DeleteBrokerResponse' {httpStatus} -> httpStatus) (\s@DeleteBrokerResponse' {} a -> s {httpStatus = a} :: DeleteBrokerResponse)
+
+instance Prelude.NFData DeleteBrokerResponse where
+  rnf DeleteBrokerResponse' {..} =
+    Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DeleteTags.hs b/gen/Amazonka/MQ/DeleteTags.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DeleteTags.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DeleteTags
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Removes a tag from a resource.
+module Amazonka.MQ.DeleteTags
+  ( -- * Creating a Request
+    DeleteTags (..),
+    newDeleteTags,
+
+    -- * Request Lenses
+    deleteTags_tagKeys,
+    deleteTags_resourceArn,
+
+    -- * Destructuring the Response
+    DeleteTagsResponse (..),
+    newDeleteTagsResponse,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteTags' smart constructor.
+data DeleteTags = DeleteTags'
+  { -- | An array of tag keys to delete
+    tagKeys :: [Prelude.Text],
+    -- | The Amazon Resource Name (ARN) of the resource tag.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteTags' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'tagKeys', 'deleteTags_tagKeys' - An array of tag keys to delete
+--
+-- 'resourceArn', 'deleteTags_resourceArn' - The Amazon Resource Name (ARN) of the resource tag.
+newDeleteTags ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  DeleteTags
+newDeleteTags pResourceArn_ =
+  DeleteTags'
+    { tagKeys = Prelude.mempty,
+      resourceArn = pResourceArn_
+    }
+
+-- | An array of tag keys to delete
+deleteTags_tagKeys :: Lens.Lens' DeleteTags [Prelude.Text]
+deleteTags_tagKeys = Lens.lens (\DeleteTags' {tagKeys} -> tagKeys) (\s@DeleteTags' {} a -> s {tagKeys = a} :: DeleteTags) Prelude.. Lens.coerced
+
+-- | The Amazon Resource Name (ARN) of the resource tag.
+deleteTags_resourceArn :: Lens.Lens' DeleteTags Prelude.Text
+deleteTags_resourceArn = Lens.lens (\DeleteTags' {resourceArn} -> resourceArn) (\s@DeleteTags' {} a -> s {resourceArn = a} :: DeleteTags)
+
+instance Core.AWSRequest DeleteTags where
+  type AWSResponse DeleteTags = DeleteTagsResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response = Response.receiveNull DeleteTagsResponse'
+
+instance Prelude.Hashable DeleteTags where
+  hashWithSalt _salt DeleteTags' {..} =
+    _salt
+      `Prelude.hashWithSalt` tagKeys
+      `Prelude.hashWithSalt` resourceArn
+
+instance Prelude.NFData DeleteTags where
+  rnf DeleteTags' {..} =
+    Prelude.rnf tagKeys
+      `Prelude.seq` Prelude.rnf resourceArn
+
+instance Data.ToHeaders DeleteTags where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteTags where
+  toPath DeleteTags' {..} =
+    Prelude.mconcat
+      ["/v1/tags/", Data.toBS resourceArn]
+
+instance Data.ToQuery DeleteTags where
+  toQuery DeleteTags' {..} =
+    Prelude.mconcat
+      ["tagKeys" Data.=: Data.toQueryList "member" tagKeys]
+
+-- | /See:/ 'newDeleteTagsResponse' smart constructor.
+data DeleteTagsResponse = DeleteTagsResponse'
+  {
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteTagsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+newDeleteTagsResponse ::
+  DeleteTagsResponse
+newDeleteTagsResponse = DeleteTagsResponse'
+
+instance Prelude.NFData DeleteTagsResponse where
+  rnf _ = ()
diff --git a/gen/Amazonka/MQ/DeleteUser.hs b/gen/Amazonka/MQ/DeleteUser.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DeleteUser.hs
@@ -0,0 +1,169 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DeleteUser
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Deletes an ActiveMQ user.
+module Amazonka.MQ.DeleteUser
+  ( -- * Creating a Request
+    DeleteUser (..),
+    newDeleteUser,
+
+    -- * Request Lenses
+    deleteUser_username,
+    deleteUser_brokerId,
+
+    -- * Destructuring the Response
+    DeleteUserResponse (..),
+    newDeleteUserResponse,
+
+    -- * Response Lenses
+    deleteUserResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDeleteUser' smart constructor.
+data DeleteUser = DeleteUser'
+  { -- | The username of the ActiveMQ user. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 2-100 characters long.
+    username :: Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteUser' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'username', 'deleteUser_username' - The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+--
+-- 'brokerId', 'deleteUser_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newDeleteUser ::
+  -- | 'username'
+  Prelude.Text ->
+  -- | 'brokerId'
+  Prelude.Text ->
+  DeleteUser
+newDeleteUser pUsername_ pBrokerId_ =
+  DeleteUser'
+    { username = pUsername_,
+      brokerId = pBrokerId_
+    }
+
+-- | The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+deleteUser_username :: Lens.Lens' DeleteUser Prelude.Text
+deleteUser_username = Lens.lens (\DeleteUser' {username} -> username) (\s@DeleteUser' {} a -> s {username = a} :: DeleteUser)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+deleteUser_brokerId :: Lens.Lens' DeleteUser Prelude.Text
+deleteUser_brokerId = Lens.lens (\DeleteUser' {brokerId} -> brokerId) (\s@DeleteUser' {} a -> s {brokerId = a} :: DeleteUser)
+
+instance Core.AWSRequest DeleteUser where
+  type AWSResponse DeleteUser = DeleteUserResponse
+  request overrides =
+    Request.delete (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          DeleteUserResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DeleteUser where
+  hashWithSalt _salt DeleteUser' {..} =
+    _salt
+      `Prelude.hashWithSalt` username
+      `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData DeleteUser where
+  rnf DeleteUser' {..} =
+    Prelude.rnf username
+      `Prelude.seq` Prelude.rnf brokerId
+
+instance Data.ToHeaders DeleteUser where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DeleteUser where
+  toPath DeleteUser' {..} =
+    Prelude.mconcat
+      [ "/v1/brokers/",
+        Data.toBS brokerId,
+        "/users/",
+        Data.toBS username
+      ]
+
+instance Data.ToQuery DeleteUser where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDeleteUserResponse' smart constructor.
+data DeleteUserResponse = DeleteUserResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DeleteUserResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'deleteUserResponse_httpStatus' - The response's http status code.
+newDeleteUserResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DeleteUserResponse
+newDeleteUserResponse pHttpStatus_ =
+  DeleteUserResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+deleteUserResponse_httpStatus :: Lens.Lens' DeleteUserResponse Prelude.Int
+deleteUserResponse_httpStatus = Lens.lens (\DeleteUserResponse' {httpStatus} -> httpStatus) (\s@DeleteUserResponse' {} a -> s {httpStatus = a} :: DeleteUserResponse)
+
+instance Prelude.NFData DeleteUserResponse where
+  rnf DeleteUserResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DescribeBroker.hs b/gen/Amazonka/MQ/DescribeBroker.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DescribeBroker.hs
@@ -0,0 +1,580 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DescribeBroker
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the specified broker.
+module Amazonka.MQ.DescribeBroker
+  ( -- * Creating a Request
+    DescribeBroker (..),
+    newDescribeBroker,
+
+    -- * Request Lenses
+    describeBroker_brokerId,
+
+    -- * Destructuring the Response
+    DescribeBrokerResponse (..),
+    newDescribeBrokerResponse,
+
+    -- * Response Lenses
+    describeBrokerResponse_actionsRequired,
+    describeBrokerResponse_authenticationStrategy,
+    describeBrokerResponse_autoMinorVersionUpgrade,
+    describeBrokerResponse_brokerArn,
+    describeBrokerResponse_brokerId,
+    describeBrokerResponse_brokerInstances,
+    describeBrokerResponse_brokerName,
+    describeBrokerResponse_brokerState,
+    describeBrokerResponse_configurations,
+    describeBrokerResponse_created,
+    describeBrokerResponse_deploymentMode,
+    describeBrokerResponse_encryptionOptions,
+    describeBrokerResponse_engineType,
+    describeBrokerResponse_engineVersion,
+    describeBrokerResponse_hostInstanceType,
+    describeBrokerResponse_ldapServerMetadata,
+    describeBrokerResponse_logs,
+    describeBrokerResponse_maintenanceWindowStartTime,
+    describeBrokerResponse_pendingAuthenticationStrategy,
+    describeBrokerResponse_pendingEngineVersion,
+    describeBrokerResponse_pendingHostInstanceType,
+    describeBrokerResponse_pendingLdapServerMetadata,
+    describeBrokerResponse_pendingSecurityGroups,
+    describeBrokerResponse_publiclyAccessible,
+    describeBrokerResponse_securityGroups,
+    describeBrokerResponse_storageType,
+    describeBrokerResponse_subnetIds,
+    describeBrokerResponse_tags,
+    describeBrokerResponse_users,
+    describeBrokerResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeBroker' smart constructor.
+data DescribeBroker = DescribeBroker'
+  { -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeBroker' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerId', 'describeBroker_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newDescribeBroker ::
+  -- | 'brokerId'
+  Prelude.Text ->
+  DescribeBroker
+newDescribeBroker pBrokerId_ =
+  DescribeBroker' {brokerId = pBrokerId_}
+
+-- | The unique ID that Amazon MQ generates for the broker.
+describeBroker_brokerId :: Lens.Lens' DescribeBroker Prelude.Text
+describeBroker_brokerId = Lens.lens (\DescribeBroker' {brokerId} -> brokerId) (\s@DescribeBroker' {} a -> s {brokerId = a} :: DescribeBroker)
+
+instance Core.AWSRequest DescribeBroker where
+  type
+    AWSResponse DescribeBroker =
+      DescribeBrokerResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeBrokerResponse'
+            Prelude.<$> ( x
+                            Data..?> "actionsRequired"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "authenticationStrategy")
+            Prelude.<*> (x Data..?> "autoMinorVersionUpgrade")
+            Prelude.<*> (x Data..?> "brokerArn")
+            Prelude.<*> (x Data..?> "brokerId")
+            Prelude.<*> ( x
+                            Data..?> "brokerInstances"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "brokerName")
+            Prelude.<*> (x Data..?> "brokerState")
+            Prelude.<*> (x Data..?> "configurations")
+            Prelude.<*> (x Data..?> "created")
+            Prelude.<*> (x Data..?> "deploymentMode")
+            Prelude.<*> (x Data..?> "encryptionOptions")
+            Prelude.<*> (x Data..?> "engineType")
+            Prelude.<*> (x Data..?> "engineVersion")
+            Prelude.<*> (x Data..?> "hostInstanceType")
+            Prelude.<*> (x Data..?> "ldapServerMetadata")
+            Prelude.<*> (x Data..?> "logs")
+            Prelude.<*> (x Data..?> "maintenanceWindowStartTime")
+            Prelude.<*> (x Data..?> "pendingAuthenticationStrategy")
+            Prelude.<*> (x Data..?> "pendingEngineVersion")
+            Prelude.<*> (x Data..?> "pendingHostInstanceType")
+            Prelude.<*> (x Data..?> "pendingLdapServerMetadata")
+            Prelude.<*> ( x
+                            Data..?> "pendingSecurityGroups"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "publiclyAccessible")
+            Prelude.<*> (x Data..?> "securityGroups" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "storageType")
+            Prelude.<*> (x Data..?> "subnetIds" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "users" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeBroker where
+  hashWithSalt _salt DescribeBroker' {..} =
+    _salt `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData DescribeBroker where
+  rnf DescribeBroker' {..} = Prelude.rnf brokerId
+
+instance Data.ToHeaders DescribeBroker where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DescribeBroker where
+  toPath DescribeBroker' {..} =
+    Prelude.mconcat
+      ["/v1/brokers/", Data.toBS brokerId]
+
+instance Data.ToQuery DescribeBroker where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeBrokerResponse' smart constructor.
+data DescribeBrokerResponse = DescribeBrokerResponse'
+  { -- | A list of actions required for a broker.
+    actionsRequired :: Prelude.Maybe [ActionRequired],
+    -- | The authentication strategy used to secure the broker. The default is
+    -- SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | Enables automatic upgrades to new minor versions for brokers, as new
+    -- versions are released and supported by Amazon MQ. Automatic upgrades
+    -- occur during the scheduled maintenance window of the broker or after a
+    -- manual broker reboot.
+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | The broker\'s Amazon Resource Name (ARN).
+    brokerArn :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | A list of information about allocated brokers.
+    brokerInstances :: Prelude.Maybe [BrokerInstance],
+    -- | The broker\'s name. This value must be unique in your AWS account, 1-50
+    -- characters long, must contain only letters, numbers, dashes, and
+    -- underscores, and must not contain white spaces, brackets, wildcard
+    -- characters, or special characters.
+    brokerName :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s status.
+    brokerState :: Prelude.Maybe BrokerState,
+    -- | The list of all revisions for the specified configuration.
+    configurations :: Prelude.Maybe Configurations,
+    -- | The time when the broker was created.
+    created :: Prelude.Maybe Data.ISO8601,
+    -- | The broker\'s deployment mode.
+    deploymentMode :: Prelude.Maybe DeploymentMode,
+    -- | Encryption options for the broker. Does not apply to RabbitMQ brokers.
+    encryptionOptions :: Prelude.Maybe EncryptionOptions,
+    -- | The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and
+    -- RABBITMQ.
+    engineType :: Prelude.Maybe EngineType,
+    -- | The broker engine\'s version. For a list of supported engine versions,
+    -- see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s instance type.
+    hostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | The metadata of the LDAP server used to authenticate and authorize
+    -- connections to the broker.
+    ldapServerMetadata :: Prelude.Maybe LdapServerMetadataOutput,
+    -- | The list of information about logs currently enabled and pending to be
+    -- deployed for the specified broker.
+    logs :: Prelude.Maybe LogsSummary,
+    -- | The parameters that determine the WeeklyStartTime.
+    maintenanceWindowStartTime :: Prelude.Maybe WeeklyStartTime,
+    -- | The authentication strategy that will be applied when the broker is
+    -- rebooted. The default is SIMPLE.
+    pendingAuthenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | The broker engine version to upgrade to. For a list of supported engine
+    -- versions, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    pendingEngineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s host instance type to upgrade to. For a list of supported
+    -- instance types, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+    pendingHostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | The metadata of the LDAP server that will be used to authenticate and
+    -- authorize connections to the broker after it is rebooted.
+    pendingLdapServerMetadata :: Prelude.Maybe LdapServerMetadataOutput,
+    -- | The list of pending security groups to authorize connections to brokers.
+    pendingSecurityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | Enables connections from applications outside of the VPC that hosts the
+    -- broker\'s subnets.
+    publiclyAccessible :: Prelude.Maybe Prelude.Bool,
+    -- | The list of rules (1 minimum, 125 maximum) that authorize connections to
+    -- brokers.
+    securityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | The broker\'s storage type.
+    storageType :: Prelude.Maybe BrokerStorageType,
+    -- | The list of groups that define which subnets and IP ranges the broker
+    -- can use from different Availability Zones.
+    subnetIds :: Prelude.Maybe [Prelude.Text],
+    -- | The list of all tags associated with this broker.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The list of all broker usernames for the specified broker.
+    users :: Prelude.Maybe [UserSummary],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeBrokerResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actionsRequired', 'describeBrokerResponse_actionsRequired' - A list of actions required for a broker.
+--
+-- 'authenticationStrategy', 'describeBrokerResponse_authenticationStrategy' - The authentication strategy used to secure the broker. The default is
+-- SIMPLE.
+--
+-- 'autoMinorVersionUpgrade', 'describeBrokerResponse_autoMinorVersionUpgrade' - Enables automatic upgrades to new minor versions for brokers, as new
+-- versions are released and supported by Amazon MQ. Automatic upgrades
+-- occur during the scheduled maintenance window of the broker or after a
+-- manual broker reboot.
+--
+-- 'brokerArn', 'describeBrokerResponse_brokerArn' - The broker\'s Amazon Resource Name (ARN).
+--
+-- 'brokerId', 'describeBrokerResponse_brokerId' - The unique ID that Amazon MQ generates for the broker.
+--
+-- 'brokerInstances', 'describeBrokerResponse_brokerInstances' - A list of information about allocated brokers.
+--
+-- 'brokerName', 'describeBrokerResponse_brokerName' - The broker\'s name. This value must be unique in your AWS account, 1-50
+-- characters long, must contain only letters, numbers, dashes, and
+-- underscores, and must not contain white spaces, brackets, wildcard
+-- characters, or special characters.
+--
+-- 'brokerState', 'describeBrokerResponse_brokerState' - The broker\'s status.
+--
+-- 'configurations', 'describeBrokerResponse_configurations' - The list of all revisions for the specified configuration.
+--
+-- 'created', 'describeBrokerResponse_created' - The time when the broker was created.
+--
+-- 'deploymentMode', 'describeBrokerResponse_deploymentMode' - The broker\'s deployment mode.
+--
+-- 'encryptionOptions', 'describeBrokerResponse_encryptionOptions' - Encryption options for the broker. Does not apply to RabbitMQ brokers.
+--
+-- 'engineType', 'describeBrokerResponse_engineType' - The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and
+-- RABBITMQ.
+--
+-- 'engineVersion', 'describeBrokerResponse_engineVersion' - The broker engine\'s version. For a list of supported engine versions,
+-- see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'hostInstanceType', 'describeBrokerResponse_hostInstanceType' - The broker\'s instance type.
+--
+-- 'ldapServerMetadata', 'describeBrokerResponse_ldapServerMetadata' - The metadata of the LDAP server used to authenticate and authorize
+-- connections to the broker.
+--
+-- 'logs', 'describeBrokerResponse_logs' - The list of information about logs currently enabled and pending to be
+-- deployed for the specified broker.
+--
+-- 'maintenanceWindowStartTime', 'describeBrokerResponse_maintenanceWindowStartTime' - The parameters that determine the WeeklyStartTime.
+--
+-- 'pendingAuthenticationStrategy', 'describeBrokerResponse_pendingAuthenticationStrategy' - The authentication strategy that will be applied when the broker is
+-- rebooted. The default is SIMPLE.
+--
+-- 'pendingEngineVersion', 'describeBrokerResponse_pendingEngineVersion' - The broker engine version to upgrade to. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'pendingHostInstanceType', 'describeBrokerResponse_pendingHostInstanceType' - The broker\'s host instance type to upgrade to. For a list of supported
+-- instance types, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+--
+-- 'pendingLdapServerMetadata', 'describeBrokerResponse_pendingLdapServerMetadata' - The metadata of the LDAP server that will be used to authenticate and
+-- authorize connections to the broker after it is rebooted.
+--
+-- 'pendingSecurityGroups', 'describeBrokerResponse_pendingSecurityGroups' - The list of pending security groups to authorize connections to brokers.
+--
+-- 'publiclyAccessible', 'describeBrokerResponse_publiclyAccessible' - Enables connections from applications outside of the VPC that hosts the
+-- broker\'s subnets.
+--
+-- 'securityGroups', 'describeBrokerResponse_securityGroups' - The list of rules (1 minimum, 125 maximum) that authorize connections to
+-- brokers.
+--
+-- 'storageType', 'describeBrokerResponse_storageType' - The broker\'s storage type.
+--
+-- 'subnetIds', 'describeBrokerResponse_subnetIds' - The list of groups that define which subnets and IP ranges the broker
+-- can use from different Availability Zones.
+--
+-- 'tags', 'describeBrokerResponse_tags' - The list of all tags associated with this broker.
+--
+-- 'users', 'describeBrokerResponse_users' - The list of all broker usernames for the specified broker.
+--
+-- 'httpStatus', 'describeBrokerResponse_httpStatus' - The response's http status code.
+newDescribeBrokerResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeBrokerResponse
+newDescribeBrokerResponse pHttpStatus_ =
+  DescribeBrokerResponse'
+    { actionsRequired =
+        Prelude.Nothing,
+      authenticationStrategy = Prelude.Nothing,
+      autoMinorVersionUpgrade = Prelude.Nothing,
+      brokerArn = Prelude.Nothing,
+      brokerId = Prelude.Nothing,
+      brokerInstances = Prelude.Nothing,
+      brokerName = Prelude.Nothing,
+      brokerState = Prelude.Nothing,
+      configurations = Prelude.Nothing,
+      created = Prelude.Nothing,
+      deploymentMode = Prelude.Nothing,
+      encryptionOptions = Prelude.Nothing,
+      engineType = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      hostInstanceType = Prelude.Nothing,
+      ldapServerMetadata = Prelude.Nothing,
+      logs = Prelude.Nothing,
+      maintenanceWindowStartTime = Prelude.Nothing,
+      pendingAuthenticationStrategy = Prelude.Nothing,
+      pendingEngineVersion = Prelude.Nothing,
+      pendingHostInstanceType = Prelude.Nothing,
+      pendingLdapServerMetadata = Prelude.Nothing,
+      pendingSecurityGroups = Prelude.Nothing,
+      publiclyAccessible = Prelude.Nothing,
+      securityGroups = Prelude.Nothing,
+      storageType = Prelude.Nothing,
+      subnetIds = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      users = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A list of actions required for a broker.
+describeBrokerResponse_actionsRequired :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe [ActionRequired])
+describeBrokerResponse_actionsRequired = Lens.lens (\DescribeBrokerResponse' {actionsRequired} -> actionsRequired) (\s@DescribeBrokerResponse' {} a -> s {actionsRequired = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The authentication strategy used to secure the broker. The default is
+-- SIMPLE.
+describeBrokerResponse_authenticationStrategy :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe AuthenticationStrategy)
+describeBrokerResponse_authenticationStrategy = Lens.lens (\DescribeBrokerResponse' {authenticationStrategy} -> authenticationStrategy) (\s@DescribeBrokerResponse' {} a -> s {authenticationStrategy = a} :: DescribeBrokerResponse)
+
+-- | Enables automatic upgrades to new minor versions for brokers, as new
+-- versions are released and supported by Amazon MQ. Automatic upgrades
+-- occur during the scheduled maintenance window of the broker or after a
+-- manual broker reboot.
+describeBrokerResponse_autoMinorVersionUpgrade :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Bool)
+describeBrokerResponse_autoMinorVersionUpgrade = Lens.lens (\DescribeBrokerResponse' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@DescribeBrokerResponse' {} a -> s {autoMinorVersionUpgrade = a} :: DescribeBrokerResponse)
+
+-- | The broker\'s Amazon Resource Name (ARN).
+describeBrokerResponse_brokerArn :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_brokerArn = Lens.lens (\DescribeBrokerResponse' {brokerArn} -> brokerArn) (\s@DescribeBrokerResponse' {} a -> s {brokerArn = a} :: DescribeBrokerResponse)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+describeBrokerResponse_brokerId :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_brokerId = Lens.lens (\DescribeBrokerResponse' {brokerId} -> brokerId) (\s@DescribeBrokerResponse' {} a -> s {brokerId = a} :: DescribeBrokerResponse)
+
+-- | A list of information about allocated brokers.
+describeBrokerResponse_brokerInstances :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe [BrokerInstance])
+describeBrokerResponse_brokerInstances = Lens.lens (\DescribeBrokerResponse' {brokerInstances} -> brokerInstances) (\s@DescribeBrokerResponse' {} a -> s {brokerInstances = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The broker\'s name. This value must be unique in your AWS account, 1-50
+-- characters long, must contain only letters, numbers, dashes, and
+-- underscores, and must not contain white spaces, brackets, wildcard
+-- characters, or special characters.
+describeBrokerResponse_brokerName :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_brokerName = Lens.lens (\DescribeBrokerResponse' {brokerName} -> brokerName) (\s@DescribeBrokerResponse' {} a -> s {brokerName = a} :: DescribeBrokerResponse)
+
+-- | The broker\'s status.
+describeBrokerResponse_brokerState :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe BrokerState)
+describeBrokerResponse_brokerState = Lens.lens (\DescribeBrokerResponse' {brokerState} -> brokerState) (\s@DescribeBrokerResponse' {} a -> s {brokerState = a} :: DescribeBrokerResponse)
+
+-- | The list of all revisions for the specified configuration.
+describeBrokerResponse_configurations :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Configurations)
+describeBrokerResponse_configurations = Lens.lens (\DescribeBrokerResponse' {configurations} -> configurations) (\s@DescribeBrokerResponse' {} a -> s {configurations = a} :: DescribeBrokerResponse)
+
+-- | The time when the broker was created.
+describeBrokerResponse_created :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.UTCTime)
+describeBrokerResponse_created = Lens.lens (\DescribeBrokerResponse' {created} -> created) (\s@DescribeBrokerResponse' {} a -> s {created = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Data._Time
+
+-- | The broker\'s deployment mode.
+describeBrokerResponse_deploymentMode :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe DeploymentMode)
+describeBrokerResponse_deploymentMode = Lens.lens (\DescribeBrokerResponse' {deploymentMode} -> deploymentMode) (\s@DescribeBrokerResponse' {} a -> s {deploymentMode = a} :: DescribeBrokerResponse)
+
+-- | Encryption options for the broker. Does not apply to RabbitMQ brokers.
+describeBrokerResponse_encryptionOptions :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe EncryptionOptions)
+describeBrokerResponse_encryptionOptions = Lens.lens (\DescribeBrokerResponse' {encryptionOptions} -> encryptionOptions) (\s@DescribeBrokerResponse' {} a -> s {encryptionOptions = a} :: DescribeBrokerResponse)
+
+-- | The type of broker engine. Currently, Amazon MQ supports ACTIVEMQ and
+-- RABBITMQ.
+describeBrokerResponse_engineType :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe EngineType)
+describeBrokerResponse_engineType = Lens.lens (\DescribeBrokerResponse' {engineType} -> engineType) (\s@DescribeBrokerResponse' {} a -> s {engineType = a} :: DescribeBrokerResponse)
+
+-- | The broker engine\'s version. For a list of supported engine versions,
+-- see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+describeBrokerResponse_engineVersion :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_engineVersion = Lens.lens (\DescribeBrokerResponse' {engineVersion} -> engineVersion) (\s@DescribeBrokerResponse' {} a -> s {engineVersion = a} :: DescribeBrokerResponse)
+
+-- | The broker\'s instance type.
+describeBrokerResponse_hostInstanceType :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_hostInstanceType = Lens.lens (\DescribeBrokerResponse' {hostInstanceType} -> hostInstanceType) (\s@DescribeBrokerResponse' {} a -> s {hostInstanceType = a} :: DescribeBrokerResponse)
+
+-- | The metadata of the LDAP server used to authenticate and authorize
+-- connections to the broker.
+describeBrokerResponse_ldapServerMetadata :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe LdapServerMetadataOutput)
+describeBrokerResponse_ldapServerMetadata = Lens.lens (\DescribeBrokerResponse' {ldapServerMetadata} -> ldapServerMetadata) (\s@DescribeBrokerResponse' {} a -> s {ldapServerMetadata = a} :: DescribeBrokerResponse)
+
+-- | The list of information about logs currently enabled and pending to be
+-- deployed for the specified broker.
+describeBrokerResponse_logs :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe LogsSummary)
+describeBrokerResponse_logs = Lens.lens (\DescribeBrokerResponse' {logs} -> logs) (\s@DescribeBrokerResponse' {} a -> s {logs = a} :: DescribeBrokerResponse)
+
+-- | The parameters that determine the WeeklyStartTime.
+describeBrokerResponse_maintenanceWindowStartTime :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe WeeklyStartTime)
+describeBrokerResponse_maintenanceWindowStartTime = Lens.lens (\DescribeBrokerResponse' {maintenanceWindowStartTime} -> maintenanceWindowStartTime) (\s@DescribeBrokerResponse' {} a -> s {maintenanceWindowStartTime = a} :: DescribeBrokerResponse)
+
+-- | The authentication strategy that will be applied when the broker is
+-- rebooted. The default is SIMPLE.
+describeBrokerResponse_pendingAuthenticationStrategy :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe AuthenticationStrategy)
+describeBrokerResponse_pendingAuthenticationStrategy = Lens.lens (\DescribeBrokerResponse' {pendingAuthenticationStrategy} -> pendingAuthenticationStrategy) (\s@DescribeBrokerResponse' {} a -> s {pendingAuthenticationStrategy = a} :: DescribeBrokerResponse)
+
+-- | The broker engine version to upgrade to. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+describeBrokerResponse_pendingEngineVersion :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_pendingEngineVersion = Lens.lens (\DescribeBrokerResponse' {pendingEngineVersion} -> pendingEngineVersion) (\s@DescribeBrokerResponse' {} a -> s {pendingEngineVersion = a} :: DescribeBrokerResponse)
+
+-- | The broker\'s host instance type to upgrade to. For a list of supported
+-- instance types, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+describeBrokerResponse_pendingHostInstanceType :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Text)
+describeBrokerResponse_pendingHostInstanceType = Lens.lens (\DescribeBrokerResponse' {pendingHostInstanceType} -> pendingHostInstanceType) (\s@DescribeBrokerResponse' {} a -> s {pendingHostInstanceType = a} :: DescribeBrokerResponse)
+
+-- | The metadata of the LDAP server that will be used to authenticate and
+-- authorize connections to the broker after it is rebooted.
+describeBrokerResponse_pendingLdapServerMetadata :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe LdapServerMetadataOutput)
+describeBrokerResponse_pendingLdapServerMetadata = Lens.lens (\DescribeBrokerResponse' {pendingLdapServerMetadata} -> pendingLdapServerMetadata) (\s@DescribeBrokerResponse' {} a -> s {pendingLdapServerMetadata = a} :: DescribeBrokerResponse)
+
+-- | The list of pending security groups to authorize connections to brokers.
+describeBrokerResponse_pendingSecurityGroups :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe [Prelude.Text])
+describeBrokerResponse_pendingSecurityGroups = Lens.lens (\DescribeBrokerResponse' {pendingSecurityGroups} -> pendingSecurityGroups) (\s@DescribeBrokerResponse' {} a -> s {pendingSecurityGroups = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Enables connections from applications outside of the VPC that hosts the
+-- broker\'s subnets.
+describeBrokerResponse_publiclyAccessible :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe Prelude.Bool)
+describeBrokerResponse_publiclyAccessible = Lens.lens (\DescribeBrokerResponse' {publiclyAccessible} -> publiclyAccessible) (\s@DescribeBrokerResponse' {} a -> s {publiclyAccessible = a} :: DescribeBrokerResponse)
+
+-- | The list of rules (1 minimum, 125 maximum) that authorize connections to
+-- brokers.
+describeBrokerResponse_securityGroups :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe [Prelude.Text])
+describeBrokerResponse_securityGroups = Lens.lens (\DescribeBrokerResponse' {securityGroups} -> securityGroups) (\s@DescribeBrokerResponse' {} a -> s {securityGroups = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The broker\'s storage type.
+describeBrokerResponse_storageType :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe BrokerStorageType)
+describeBrokerResponse_storageType = Lens.lens (\DescribeBrokerResponse' {storageType} -> storageType) (\s@DescribeBrokerResponse' {} a -> s {storageType = a} :: DescribeBrokerResponse)
+
+-- | The list of groups that define which subnets and IP ranges the broker
+-- can use from different Availability Zones.
+describeBrokerResponse_subnetIds :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe [Prelude.Text])
+describeBrokerResponse_subnetIds = Lens.lens (\DescribeBrokerResponse' {subnetIds} -> subnetIds) (\s@DescribeBrokerResponse' {} a -> s {subnetIds = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of all tags associated with this broker.
+describeBrokerResponse_tags :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+describeBrokerResponse_tags = Lens.lens (\DescribeBrokerResponse' {tags} -> tags) (\s@DescribeBrokerResponse' {} a -> s {tags = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of all broker usernames for the specified broker.
+describeBrokerResponse_users :: Lens.Lens' DescribeBrokerResponse (Prelude.Maybe [UserSummary])
+describeBrokerResponse_users = Lens.lens (\DescribeBrokerResponse' {users} -> users) (\s@DescribeBrokerResponse' {} a -> s {users = a} :: DescribeBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+describeBrokerResponse_httpStatus :: Lens.Lens' DescribeBrokerResponse Prelude.Int
+describeBrokerResponse_httpStatus = Lens.lens (\DescribeBrokerResponse' {httpStatus} -> httpStatus) (\s@DescribeBrokerResponse' {} a -> s {httpStatus = a} :: DescribeBrokerResponse)
+
+instance Prelude.NFData DescribeBrokerResponse where
+  rnf DescribeBrokerResponse' {..} =
+    Prelude.rnf actionsRequired
+      `Prelude.seq` Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf brokerArn
+      `Prelude.seq` Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf brokerInstances
+      `Prelude.seq` Prelude.rnf brokerName
+      `Prelude.seq` Prelude.rnf brokerState
+      `Prelude.seq` Prelude.rnf configurations
+      `Prelude.seq` Prelude.rnf created
+      `Prelude.seq` Prelude.rnf deploymentMode
+      `Prelude.seq` Prelude.rnf encryptionOptions
+      `Prelude.seq` Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf ldapServerMetadata
+      `Prelude.seq` Prelude.rnf logs
+      `Prelude.seq` Prelude.rnf
+        maintenanceWindowStartTime
+      `Prelude.seq` Prelude.rnf
+        pendingAuthenticationStrategy
+      `Prelude.seq` Prelude.rnf
+        pendingEngineVersion
+      `Prelude.seq` Prelude.rnf
+        pendingHostInstanceType
+      `Prelude.seq` Prelude.rnf
+        pendingLdapServerMetadata
+      `Prelude.seq` Prelude.rnf
+        pendingSecurityGroups
+      `Prelude.seq` Prelude.rnf
+        publiclyAccessible
+      `Prelude.seq` Prelude.rnf
+        securityGroups
+      `Prelude.seq` Prelude.rnf
+        storageType
+      `Prelude.seq` Prelude.rnf
+        subnetIds
+      `Prelude.seq` Prelude.rnf
+        tags
+      `Prelude.seq` Prelude.rnf
+        users
+      `Prelude.seq` Prelude.rnf
+        httpStatus
diff --git a/gen/Amazonka/MQ/DescribeBrokerEngineTypes.hs b/gen/Amazonka/MQ/DescribeBrokerEngineTypes.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DescribeBrokerEngineTypes.hs
@@ -0,0 +1,231 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DescribeBrokerEngineTypes
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Describe available engine types and versions.
+module Amazonka.MQ.DescribeBrokerEngineTypes
+  ( -- * Creating a Request
+    DescribeBrokerEngineTypes (..),
+    newDescribeBrokerEngineTypes,
+
+    -- * Request Lenses
+    describeBrokerEngineTypes_engineType,
+    describeBrokerEngineTypes_maxResults,
+    describeBrokerEngineTypes_nextToken,
+
+    -- * Destructuring the Response
+    DescribeBrokerEngineTypesResponse (..),
+    newDescribeBrokerEngineTypesResponse,
+
+    -- * Response Lenses
+    describeBrokerEngineTypesResponse_brokerEngineTypes,
+    describeBrokerEngineTypesResponse_maxResults,
+    describeBrokerEngineTypesResponse_nextToken,
+    describeBrokerEngineTypesResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeBrokerEngineTypes' smart constructor.
+data DescribeBrokerEngineTypes = DescribeBrokerEngineTypes'
+  { -- | Filter response by engine type.
+    engineType :: Prelude.Maybe Prelude.Text,
+    -- | The maximum number of brokers that Amazon MQ can return per page (20 by
+    -- default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeBrokerEngineTypes' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'engineType', 'describeBrokerEngineTypes_engineType' - Filter response by engine type.
+--
+-- 'maxResults', 'describeBrokerEngineTypes_maxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'describeBrokerEngineTypes_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+newDescribeBrokerEngineTypes ::
+  DescribeBrokerEngineTypes
+newDescribeBrokerEngineTypes =
+  DescribeBrokerEngineTypes'
+    { engineType =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | Filter response by engine type.
+describeBrokerEngineTypes_engineType :: Lens.Lens' DescribeBrokerEngineTypes (Prelude.Maybe Prelude.Text)
+describeBrokerEngineTypes_engineType = Lens.lens (\DescribeBrokerEngineTypes' {engineType} -> engineType) (\s@DescribeBrokerEngineTypes' {} a -> s {engineType = a} :: DescribeBrokerEngineTypes)
+
+-- | The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+describeBrokerEngineTypes_maxResults :: Lens.Lens' DescribeBrokerEngineTypes (Prelude.Maybe Prelude.Natural)
+describeBrokerEngineTypes_maxResults = Lens.lens (\DescribeBrokerEngineTypes' {maxResults} -> maxResults) (\s@DescribeBrokerEngineTypes' {} a -> s {maxResults = a} :: DescribeBrokerEngineTypes)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+describeBrokerEngineTypes_nextToken :: Lens.Lens' DescribeBrokerEngineTypes (Prelude.Maybe Prelude.Text)
+describeBrokerEngineTypes_nextToken = Lens.lens (\DescribeBrokerEngineTypes' {nextToken} -> nextToken) (\s@DescribeBrokerEngineTypes' {} a -> s {nextToken = a} :: DescribeBrokerEngineTypes)
+
+instance Core.AWSRequest DescribeBrokerEngineTypes where
+  type
+    AWSResponse DescribeBrokerEngineTypes =
+      DescribeBrokerEngineTypesResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeBrokerEngineTypesResponse'
+            Prelude.<$> ( x
+                            Data..?> "brokerEngineTypes"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "maxResults")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeBrokerEngineTypes where
+  hashWithSalt _salt DescribeBrokerEngineTypes' {..} =
+    _salt
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData DescribeBrokerEngineTypes where
+  rnf DescribeBrokerEngineTypes' {..} =
+    Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders DescribeBrokerEngineTypes where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DescribeBrokerEngineTypes where
+  toPath = Prelude.const "/v1/broker-engine-types"
+
+instance Data.ToQuery DescribeBrokerEngineTypes where
+  toQuery DescribeBrokerEngineTypes' {..} =
+    Prelude.mconcat
+      [ "engineType" Data.=: engineType,
+        "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newDescribeBrokerEngineTypesResponse' smart constructor.
+data DescribeBrokerEngineTypesResponse = DescribeBrokerEngineTypesResponse'
+  { -- | List of available engine types and versions.
+    brokerEngineTypes :: Prelude.Maybe [BrokerEngineType],
+    -- | Required. The maximum number of engine types that can be returned per
+    -- page (20 by default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeBrokerEngineTypesResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerEngineTypes', 'describeBrokerEngineTypesResponse_brokerEngineTypes' - List of available engine types and versions.
+--
+-- 'maxResults', 'describeBrokerEngineTypesResponse_maxResults' - Required. The maximum number of engine types that can be returned per
+-- page (20 by default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'describeBrokerEngineTypesResponse_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'httpStatus', 'describeBrokerEngineTypesResponse_httpStatus' - The response's http status code.
+newDescribeBrokerEngineTypesResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeBrokerEngineTypesResponse
+newDescribeBrokerEngineTypesResponse pHttpStatus_ =
+  DescribeBrokerEngineTypesResponse'
+    { brokerEngineTypes =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | List of available engine types and versions.
+describeBrokerEngineTypesResponse_brokerEngineTypes :: Lens.Lens' DescribeBrokerEngineTypesResponse (Prelude.Maybe [BrokerEngineType])
+describeBrokerEngineTypesResponse_brokerEngineTypes = Lens.lens (\DescribeBrokerEngineTypesResponse' {brokerEngineTypes} -> brokerEngineTypes) (\s@DescribeBrokerEngineTypesResponse' {} a -> s {brokerEngineTypes = a} :: DescribeBrokerEngineTypesResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Required. The maximum number of engine types that can be returned per
+-- page (20 by default). This value must be an integer from 5 to 100.
+describeBrokerEngineTypesResponse_maxResults :: Lens.Lens' DescribeBrokerEngineTypesResponse (Prelude.Maybe Prelude.Natural)
+describeBrokerEngineTypesResponse_maxResults = Lens.lens (\DescribeBrokerEngineTypesResponse' {maxResults} -> maxResults) (\s@DescribeBrokerEngineTypesResponse' {} a -> s {maxResults = a} :: DescribeBrokerEngineTypesResponse)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+describeBrokerEngineTypesResponse_nextToken :: Lens.Lens' DescribeBrokerEngineTypesResponse (Prelude.Maybe Prelude.Text)
+describeBrokerEngineTypesResponse_nextToken = Lens.lens (\DescribeBrokerEngineTypesResponse' {nextToken} -> nextToken) (\s@DescribeBrokerEngineTypesResponse' {} a -> s {nextToken = a} :: DescribeBrokerEngineTypesResponse)
+
+-- | The response's http status code.
+describeBrokerEngineTypesResponse_httpStatus :: Lens.Lens' DescribeBrokerEngineTypesResponse Prelude.Int
+describeBrokerEngineTypesResponse_httpStatus = Lens.lens (\DescribeBrokerEngineTypesResponse' {httpStatus} -> httpStatus) (\s@DescribeBrokerEngineTypesResponse' {} a -> s {httpStatus = a} :: DescribeBrokerEngineTypesResponse)
+
+instance
+  Prelude.NFData
+    DescribeBrokerEngineTypesResponse
+  where
+  rnf DescribeBrokerEngineTypesResponse' {..} =
+    Prelude.rnf brokerEngineTypes
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DescribeBrokerInstanceOptions.hs b/gen/Amazonka/MQ/DescribeBrokerInstanceOptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DescribeBrokerInstanceOptions.hs
@@ -0,0 +1,263 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DescribeBrokerInstanceOptions
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Describe available broker instance options.
+module Amazonka.MQ.DescribeBrokerInstanceOptions
+  ( -- * Creating a Request
+    DescribeBrokerInstanceOptions (..),
+    newDescribeBrokerInstanceOptions,
+
+    -- * Request Lenses
+    describeBrokerInstanceOptions_engineType,
+    describeBrokerInstanceOptions_hostInstanceType,
+    describeBrokerInstanceOptions_maxResults,
+    describeBrokerInstanceOptions_nextToken,
+    describeBrokerInstanceOptions_storageType,
+
+    -- * Destructuring the Response
+    DescribeBrokerInstanceOptionsResponse (..),
+    newDescribeBrokerInstanceOptionsResponse,
+
+    -- * Response Lenses
+    describeBrokerInstanceOptionsResponse_brokerInstanceOptions,
+    describeBrokerInstanceOptionsResponse_maxResults,
+    describeBrokerInstanceOptionsResponse_nextToken,
+    describeBrokerInstanceOptionsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeBrokerInstanceOptions' smart constructor.
+data DescribeBrokerInstanceOptions = DescribeBrokerInstanceOptions'
+  { -- | Filter response by engine type.
+    engineType :: Prelude.Maybe Prelude.Text,
+    -- | Filter response by host instance type.
+    hostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | The maximum number of brokers that Amazon MQ can return per page (20 by
+    -- default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Filter response by storage type.
+    storageType :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeBrokerInstanceOptions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'engineType', 'describeBrokerInstanceOptions_engineType' - Filter response by engine type.
+--
+-- 'hostInstanceType', 'describeBrokerInstanceOptions_hostInstanceType' - Filter response by host instance type.
+--
+-- 'maxResults', 'describeBrokerInstanceOptions_maxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'describeBrokerInstanceOptions_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'storageType', 'describeBrokerInstanceOptions_storageType' - Filter response by storage type.
+newDescribeBrokerInstanceOptions ::
+  DescribeBrokerInstanceOptions
+newDescribeBrokerInstanceOptions =
+  DescribeBrokerInstanceOptions'
+    { engineType =
+        Prelude.Nothing,
+      hostInstanceType = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      storageType = Prelude.Nothing
+    }
+
+-- | Filter response by engine type.
+describeBrokerInstanceOptions_engineType :: Lens.Lens' DescribeBrokerInstanceOptions (Prelude.Maybe Prelude.Text)
+describeBrokerInstanceOptions_engineType = Lens.lens (\DescribeBrokerInstanceOptions' {engineType} -> engineType) (\s@DescribeBrokerInstanceOptions' {} a -> s {engineType = a} :: DescribeBrokerInstanceOptions)
+
+-- | Filter response by host instance type.
+describeBrokerInstanceOptions_hostInstanceType :: Lens.Lens' DescribeBrokerInstanceOptions (Prelude.Maybe Prelude.Text)
+describeBrokerInstanceOptions_hostInstanceType = Lens.lens (\DescribeBrokerInstanceOptions' {hostInstanceType} -> hostInstanceType) (\s@DescribeBrokerInstanceOptions' {} a -> s {hostInstanceType = a} :: DescribeBrokerInstanceOptions)
+
+-- | The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+describeBrokerInstanceOptions_maxResults :: Lens.Lens' DescribeBrokerInstanceOptions (Prelude.Maybe Prelude.Natural)
+describeBrokerInstanceOptions_maxResults = Lens.lens (\DescribeBrokerInstanceOptions' {maxResults} -> maxResults) (\s@DescribeBrokerInstanceOptions' {} a -> s {maxResults = a} :: DescribeBrokerInstanceOptions)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+describeBrokerInstanceOptions_nextToken :: Lens.Lens' DescribeBrokerInstanceOptions (Prelude.Maybe Prelude.Text)
+describeBrokerInstanceOptions_nextToken = Lens.lens (\DescribeBrokerInstanceOptions' {nextToken} -> nextToken) (\s@DescribeBrokerInstanceOptions' {} a -> s {nextToken = a} :: DescribeBrokerInstanceOptions)
+
+-- | Filter response by storage type.
+describeBrokerInstanceOptions_storageType :: Lens.Lens' DescribeBrokerInstanceOptions (Prelude.Maybe Prelude.Text)
+describeBrokerInstanceOptions_storageType = Lens.lens (\DescribeBrokerInstanceOptions' {storageType} -> storageType) (\s@DescribeBrokerInstanceOptions' {} a -> s {storageType = a} :: DescribeBrokerInstanceOptions)
+
+instance
+  Core.AWSRequest
+    DescribeBrokerInstanceOptions
+  where
+  type
+    AWSResponse DescribeBrokerInstanceOptions =
+      DescribeBrokerInstanceOptionsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeBrokerInstanceOptionsResponse'
+            Prelude.<$> ( x
+                            Data..?> "brokerInstanceOptions"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "maxResults")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DescribeBrokerInstanceOptions
+  where
+  hashWithSalt _salt DescribeBrokerInstanceOptions' {..} =
+    _salt
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` hostInstanceType
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` storageType
+
+instance Prelude.NFData DescribeBrokerInstanceOptions where
+  rnf DescribeBrokerInstanceOptions' {..} =
+    Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf storageType
+
+instance Data.ToHeaders DescribeBrokerInstanceOptions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DescribeBrokerInstanceOptions where
+  toPath = Prelude.const "/v1/broker-instance-options"
+
+instance Data.ToQuery DescribeBrokerInstanceOptions where
+  toQuery DescribeBrokerInstanceOptions' {..} =
+    Prelude.mconcat
+      [ "engineType" Data.=: engineType,
+        "hostInstanceType" Data.=: hostInstanceType,
+        "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken,
+        "storageType" Data.=: storageType
+      ]
+
+-- | /See:/ 'newDescribeBrokerInstanceOptionsResponse' smart constructor.
+data DescribeBrokerInstanceOptionsResponse = DescribeBrokerInstanceOptionsResponse'
+  { -- | List of available broker instance options.
+    brokerInstanceOptions :: Prelude.Maybe [BrokerInstanceOption],
+    -- | Required. The maximum number of instance options that can be returned
+    -- per page (20 by default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeBrokerInstanceOptionsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerInstanceOptions', 'describeBrokerInstanceOptionsResponse_brokerInstanceOptions' - List of available broker instance options.
+--
+-- 'maxResults', 'describeBrokerInstanceOptionsResponse_maxResults' - Required. The maximum number of instance options that can be returned
+-- per page (20 by default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'describeBrokerInstanceOptionsResponse_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'httpStatus', 'describeBrokerInstanceOptionsResponse_httpStatus' - The response's http status code.
+newDescribeBrokerInstanceOptionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeBrokerInstanceOptionsResponse
+newDescribeBrokerInstanceOptionsResponse pHttpStatus_ =
+  DescribeBrokerInstanceOptionsResponse'
+    { brokerInstanceOptions =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | List of available broker instance options.
+describeBrokerInstanceOptionsResponse_brokerInstanceOptions :: Lens.Lens' DescribeBrokerInstanceOptionsResponse (Prelude.Maybe [BrokerInstanceOption])
+describeBrokerInstanceOptionsResponse_brokerInstanceOptions = Lens.lens (\DescribeBrokerInstanceOptionsResponse' {brokerInstanceOptions} -> brokerInstanceOptions) (\s@DescribeBrokerInstanceOptionsResponse' {} a -> s {brokerInstanceOptions = a} :: DescribeBrokerInstanceOptionsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | Required. The maximum number of instance options that can be returned
+-- per page (20 by default). This value must be an integer from 5 to 100.
+describeBrokerInstanceOptionsResponse_maxResults :: Lens.Lens' DescribeBrokerInstanceOptionsResponse (Prelude.Maybe Prelude.Natural)
+describeBrokerInstanceOptionsResponse_maxResults = Lens.lens (\DescribeBrokerInstanceOptionsResponse' {maxResults} -> maxResults) (\s@DescribeBrokerInstanceOptionsResponse' {} a -> s {maxResults = a} :: DescribeBrokerInstanceOptionsResponse)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+describeBrokerInstanceOptionsResponse_nextToken :: Lens.Lens' DescribeBrokerInstanceOptionsResponse (Prelude.Maybe Prelude.Text)
+describeBrokerInstanceOptionsResponse_nextToken = Lens.lens (\DescribeBrokerInstanceOptionsResponse' {nextToken} -> nextToken) (\s@DescribeBrokerInstanceOptionsResponse' {} a -> s {nextToken = a} :: DescribeBrokerInstanceOptionsResponse)
+
+-- | The response's http status code.
+describeBrokerInstanceOptionsResponse_httpStatus :: Lens.Lens' DescribeBrokerInstanceOptionsResponse Prelude.Int
+describeBrokerInstanceOptionsResponse_httpStatus = Lens.lens (\DescribeBrokerInstanceOptionsResponse' {httpStatus} -> httpStatus) (\s@DescribeBrokerInstanceOptionsResponse' {} a -> s {httpStatus = a} :: DescribeBrokerInstanceOptionsResponse)
+
+instance
+  Prelude.NFData
+    DescribeBrokerInstanceOptionsResponse
+  where
+  rnf DescribeBrokerInstanceOptionsResponse' {..} =
+    Prelude.rnf brokerInstanceOptions
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DescribeConfiguration.hs b/gen/Amazonka/MQ/DescribeConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DescribeConfiguration.hs
@@ -0,0 +1,289 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DescribeConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about the specified configuration.
+module Amazonka.MQ.DescribeConfiguration
+  ( -- * Creating a Request
+    DescribeConfiguration (..),
+    newDescribeConfiguration,
+
+    -- * Request Lenses
+    describeConfiguration_configurationId,
+
+    -- * Destructuring the Response
+    DescribeConfigurationResponse (..),
+    newDescribeConfigurationResponse,
+
+    -- * Response Lenses
+    describeConfigurationResponse_arn,
+    describeConfigurationResponse_authenticationStrategy,
+    describeConfigurationResponse_created,
+    describeConfigurationResponse_description,
+    describeConfigurationResponse_engineType,
+    describeConfigurationResponse_engineVersion,
+    describeConfigurationResponse_id,
+    describeConfigurationResponse_latestRevision,
+    describeConfigurationResponse_name,
+    describeConfigurationResponse_tags,
+    describeConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeConfiguration' smart constructor.
+data DescribeConfiguration = DescribeConfiguration'
+  { -- | The unique ID that Amazon MQ generates for the configuration.
+    configurationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationId', 'describeConfiguration_configurationId' - The unique ID that Amazon MQ generates for the configuration.
+newDescribeConfiguration ::
+  -- | 'configurationId'
+  Prelude.Text ->
+  DescribeConfiguration
+newDescribeConfiguration pConfigurationId_ =
+  DescribeConfiguration'
+    { configurationId =
+        pConfigurationId_
+    }
+
+-- | The unique ID that Amazon MQ generates for the configuration.
+describeConfiguration_configurationId :: Lens.Lens' DescribeConfiguration Prelude.Text
+describeConfiguration_configurationId = Lens.lens (\DescribeConfiguration' {configurationId} -> configurationId) (\s@DescribeConfiguration' {} a -> s {configurationId = a} :: DescribeConfiguration)
+
+instance Core.AWSRequest DescribeConfiguration where
+  type
+    AWSResponse DescribeConfiguration =
+      DescribeConfigurationResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeConfigurationResponse'
+            Prelude.<$> (x Data..?> "arn")
+            Prelude.<*> (x Data..?> "authenticationStrategy")
+            Prelude.<*> (x Data..?> "created")
+            Prelude.<*> (x Data..?> "description")
+            Prelude.<*> (x Data..?> "engineType")
+            Prelude.<*> (x Data..?> "engineVersion")
+            Prelude.<*> (x Data..?> "id")
+            Prelude.<*> (x Data..?> "latestRevision")
+            Prelude.<*> (x Data..?> "name")
+            Prelude.<*> (x Data..?> "tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeConfiguration where
+  hashWithSalt _salt DescribeConfiguration' {..} =
+    _salt `Prelude.hashWithSalt` configurationId
+
+instance Prelude.NFData DescribeConfiguration where
+  rnf DescribeConfiguration' {..} =
+    Prelude.rnf configurationId
+
+instance Data.ToHeaders DescribeConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DescribeConfiguration where
+  toPath DescribeConfiguration' {..} =
+    Prelude.mconcat
+      ["/v1/configurations/", Data.toBS configurationId]
+
+instance Data.ToQuery DescribeConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeConfigurationResponse' smart constructor.
+data DescribeConfigurationResponse = DescribeConfigurationResponse'
+  { -- | Required. The ARN of the configuration.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The authentication strategy associated with the configuration.
+    -- The default is SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | Required. The date and time of the configuration revision.
+    created :: Prelude.Maybe Data.ISO8601,
+    -- | Required. The description of the configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | Required. The type of broker engine. Currently, Amazon MQ supports
+    -- ACTIVEMQ and RABBITMQ.
+    engineType :: Prelude.Maybe EngineType,
+    -- | Required. The broker engine\'s version. For a list of supported engine
+    -- versions, see,
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | Required. The unique ID that Amazon MQ generates for the configuration.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | Required. The latest revision of the configuration.
+    latestRevision :: Prelude.Maybe ConfigurationRevision,
+    -- | Required. The name of the configuration. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 1-150 characters long.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The list of all tags associated with this configuration.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'arn', 'describeConfigurationResponse_arn' - Required. The ARN of the configuration.
+--
+-- 'authenticationStrategy', 'describeConfigurationResponse_authenticationStrategy' - Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+--
+-- 'created', 'describeConfigurationResponse_created' - Required. The date and time of the configuration revision.
+--
+-- 'description', 'describeConfigurationResponse_description' - Required. The description of the configuration.
+--
+-- 'engineType', 'describeConfigurationResponse_engineType' - Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+--
+-- 'engineVersion', 'describeConfigurationResponse_engineVersion' - Required. The broker engine\'s version. For a list of supported engine
+-- versions, see,
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'id', 'describeConfigurationResponse_id' - Required. The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'latestRevision', 'describeConfigurationResponse_latestRevision' - Required. The latest revision of the configuration.
+--
+-- 'name', 'describeConfigurationResponse_name' - Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+--
+-- 'tags', 'describeConfigurationResponse_tags' - The list of all tags associated with this configuration.
+--
+-- 'httpStatus', 'describeConfigurationResponse_httpStatus' - The response's http status code.
+newDescribeConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeConfigurationResponse
+newDescribeConfigurationResponse pHttpStatus_ =
+  DescribeConfigurationResponse'
+    { arn =
+        Prelude.Nothing,
+      authenticationStrategy = Prelude.Nothing,
+      created = Prelude.Nothing,
+      description = Prelude.Nothing,
+      engineType = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      id = Prelude.Nothing,
+      latestRevision = Prelude.Nothing,
+      name = Prelude.Nothing,
+      tags = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Required. The ARN of the configuration.
+describeConfigurationResponse_arn :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationResponse_arn = Lens.lens (\DescribeConfigurationResponse' {arn} -> arn) (\s@DescribeConfigurationResponse' {} a -> s {arn = a} :: DescribeConfigurationResponse)
+
+-- | Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+describeConfigurationResponse_authenticationStrategy :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe AuthenticationStrategy)
+describeConfigurationResponse_authenticationStrategy = Lens.lens (\DescribeConfigurationResponse' {authenticationStrategy} -> authenticationStrategy) (\s@DescribeConfigurationResponse' {} a -> s {authenticationStrategy = a} :: DescribeConfigurationResponse)
+
+-- | Required. The date and time of the configuration revision.
+describeConfigurationResponse_created :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe Prelude.UTCTime)
+describeConfigurationResponse_created = Lens.lens (\DescribeConfigurationResponse' {created} -> created) (\s@DescribeConfigurationResponse' {} a -> s {created = a} :: DescribeConfigurationResponse) Prelude.. Lens.mapping Data._Time
+
+-- | Required. The description of the configuration.
+describeConfigurationResponse_description :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationResponse_description = Lens.lens (\DescribeConfigurationResponse' {description} -> description) (\s@DescribeConfigurationResponse' {} a -> s {description = a} :: DescribeConfigurationResponse)
+
+-- | Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+describeConfigurationResponse_engineType :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe EngineType)
+describeConfigurationResponse_engineType = Lens.lens (\DescribeConfigurationResponse' {engineType} -> engineType) (\s@DescribeConfigurationResponse' {} a -> s {engineType = a} :: DescribeConfigurationResponse)
+
+-- | Required. The broker engine\'s version. For a list of supported engine
+-- versions, see,
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+describeConfigurationResponse_engineVersion :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationResponse_engineVersion = Lens.lens (\DescribeConfigurationResponse' {engineVersion} -> engineVersion) (\s@DescribeConfigurationResponse' {} a -> s {engineVersion = a} :: DescribeConfigurationResponse)
+
+-- | Required. The unique ID that Amazon MQ generates for the configuration.
+describeConfigurationResponse_id :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationResponse_id = Lens.lens (\DescribeConfigurationResponse' {id} -> id) (\s@DescribeConfigurationResponse' {} a -> s {id = a} :: DescribeConfigurationResponse)
+
+-- | Required. The latest revision of the configuration.
+describeConfigurationResponse_latestRevision :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe ConfigurationRevision)
+describeConfigurationResponse_latestRevision = Lens.lens (\DescribeConfigurationResponse' {latestRevision} -> latestRevision) (\s@DescribeConfigurationResponse' {} a -> s {latestRevision = a} :: DescribeConfigurationResponse)
+
+-- | Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+describeConfigurationResponse_name :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationResponse_name = Lens.lens (\DescribeConfigurationResponse' {name} -> name) (\s@DescribeConfigurationResponse' {} a -> s {name = a} :: DescribeConfigurationResponse)
+
+-- | The list of all tags associated with this configuration.
+describeConfigurationResponse_tags :: Lens.Lens' DescribeConfigurationResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+describeConfigurationResponse_tags = Lens.lens (\DescribeConfigurationResponse' {tags} -> tags) (\s@DescribeConfigurationResponse' {} a -> s {tags = a} :: DescribeConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+describeConfigurationResponse_httpStatus :: Lens.Lens' DescribeConfigurationResponse Prelude.Int
+describeConfigurationResponse_httpStatus = Lens.lens (\DescribeConfigurationResponse' {httpStatus} -> httpStatus) (\s@DescribeConfigurationResponse' {} a -> s {httpStatus = a} :: DescribeConfigurationResponse)
+
+instance Prelude.NFData DescribeConfigurationResponse where
+  rnf DescribeConfigurationResponse' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf created
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf latestRevision
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DescribeConfigurationRevision.hs b/gen/Amazonka/MQ/DescribeConfigurationRevision.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DescribeConfigurationRevision.hs
@@ -0,0 +1,230 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DescribeConfigurationRevision
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns the specified configuration revision for the specified
+-- configuration.
+module Amazonka.MQ.DescribeConfigurationRevision
+  ( -- * Creating a Request
+    DescribeConfigurationRevision (..),
+    newDescribeConfigurationRevision,
+
+    -- * Request Lenses
+    describeConfigurationRevision_configurationRevision,
+    describeConfigurationRevision_configurationId,
+
+    -- * Destructuring the Response
+    DescribeConfigurationRevisionResponse (..),
+    newDescribeConfigurationRevisionResponse,
+
+    -- * Response Lenses
+    describeConfigurationRevisionResponse_configurationId,
+    describeConfigurationRevisionResponse_created,
+    describeConfigurationRevisionResponse_data,
+    describeConfigurationRevisionResponse_description,
+    describeConfigurationRevisionResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeConfigurationRevision' smart constructor.
+data DescribeConfigurationRevision = DescribeConfigurationRevision'
+  { -- | The revision of the configuration.
+    configurationRevision :: Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the configuration.
+    configurationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeConfigurationRevision' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationRevision', 'describeConfigurationRevision_configurationRevision' - The revision of the configuration.
+--
+-- 'configurationId', 'describeConfigurationRevision_configurationId' - The unique ID that Amazon MQ generates for the configuration.
+newDescribeConfigurationRevision ::
+  -- | 'configurationRevision'
+  Prelude.Text ->
+  -- | 'configurationId'
+  Prelude.Text ->
+  DescribeConfigurationRevision
+newDescribeConfigurationRevision
+  pConfigurationRevision_
+  pConfigurationId_ =
+    DescribeConfigurationRevision'
+      { configurationRevision =
+          pConfigurationRevision_,
+        configurationId = pConfigurationId_
+      }
+
+-- | The revision of the configuration.
+describeConfigurationRevision_configurationRevision :: Lens.Lens' DescribeConfigurationRevision Prelude.Text
+describeConfigurationRevision_configurationRevision = Lens.lens (\DescribeConfigurationRevision' {configurationRevision} -> configurationRevision) (\s@DescribeConfigurationRevision' {} a -> s {configurationRevision = a} :: DescribeConfigurationRevision)
+
+-- | The unique ID that Amazon MQ generates for the configuration.
+describeConfigurationRevision_configurationId :: Lens.Lens' DescribeConfigurationRevision Prelude.Text
+describeConfigurationRevision_configurationId = Lens.lens (\DescribeConfigurationRevision' {configurationId} -> configurationId) (\s@DescribeConfigurationRevision' {} a -> s {configurationId = a} :: DescribeConfigurationRevision)
+
+instance
+  Core.AWSRequest
+    DescribeConfigurationRevision
+  where
+  type
+    AWSResponse DescribeConfigurationRevision =
+      DescribeConfigurationRevisionResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeConfigurationRevisionResponse'
+            Prelude.<$> (x Data..?> "configurationId")
+            Prelude.<*> (x Data..?> "created")
+            Prelude.<*> (x Data..?> "data")
+            Prelude.<*> (x Data..?> "description")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance
+  Prelude.Hashable
+    DescribeConfigurationRevision
+  where
+  hashWithSalt _salt DescribeConfigurationRevision' {..} =
+    _salt
+      `Prelude.hashWithSalt` configurationRevision
+      `Prelude.hashWithSalt` configurationId
+
+instance Prelude.NFData DescribeConfigurationRevision where
+  rnf DescribeConfigurationRevision' {..} =
+    Prelude.rnf configurationRevision
+      `Prelude.seq` Prelude.rnf configurationId
+
+instance Data.ToHeaders DescribeConfigurationRevision where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DescribeConfigurationRevision where
+  toPath DescribeConfigurationRevision' {..} =
+    Prelude.mconcat
+      [ "/v1/configurations/",
+        Data.toBS configurationId,
+        "/revisions/",
+        Data.toBS configurationRevision
+      ]
+
+instance Data.ToQuery DescribeConfigurationRevision where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeConfigurationRevisionResponse' smart constructor.
+data DescribeConfigurationRevisionResponse = DescribeConfigurationRevisionResponse'
+  { -- | Required. The unique ID that Amazon MQ generates for the configuration.
+    configurationId :: Prelude.Maybe Prelude.Text,
+    -- | Required. The date and time of the configuration.
+    created :: Prelude.Maybe Data.ISO8601,
+    -- | Required. The base64-encoded XML configuration.
+    data' :: Prelude.Maybe Prelude.Text,
+    -- | The description of the configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeConfigurationRevisionResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationId', 'describeConfigurationRevisionResponse_configurationId' - Required. The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'created', 'describeConfigurationRevisionResponse_created' - Required. The date and time of the configuration.
+--
+-- 'data'', 'describeConfigurationRevisionResponse_data' - Required. The base64-encoded XML configuration.
+--
+-- 'description', 'describeConfigurationRevisionResponse_description' - The description of the configuration.
+--
+-- 'httpStatus', 'describeConfigurationRevisionResponse_httpStatus' - The response's http status code.
+newDescribeConfigurationRevisionResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeConfigurationRevisionResponse
+newDescribeConfigurationRevisionResponse pHttpStatus_ =
+  DescribeConfigurationRevisionResponse'
+    { configurationId =
+        Prelude.Nothing,
+      created = Prelude.Nothing,
+      data' = Prelude.Nothing,
+      description = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Required. The unique ID that Amazon MQ generates for the configuration.
+describeConfigurationRevisionResponse_configurationId :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationRevisionResponse_configurationId = Lens.lens (\DescribeConfigurationRevisionResponse' {configurationId} -> configurationId) (\s@DescribeConfigurationRevisionResponse' {} a -> s {configurationId = a} :: DescribeConfigurationRevisionResponse)
+
+-- | Required. The date and time of the configuration.
+describeConfigurationRevisionResponse_created :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.UTCTime)
+describeConfigurationRevisionResponse_created = Lens.lens (\DescribeConfigurationRevisionResponse' {created} -> created) (\s@DescribeConfigurationRevisionResponse' {} a -> s {created = a} :: DescribeConfigurationRevisionResponse) Prelude.. Lens.mapping Data._Time
+
+-- | Required. The base64-encoded XML configuration.
+describeConfigurationRevisionResponse_data :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationRevisionResponse_data = Lens.lens (\DescribeConfigurationRevisionResponse' {data'} -> data') (\s@DescribeConfigurationRevisionResponse' {} a -> s {data' = a} :: DescribeConfigurationRevisionResponse)
+
+-- | The description of the configuration.
+describeConfigurationRevisionResponse_description :: Lens.Lens' DescribeConfigurationRevisionResponse (Prelude.Maybe Prelude.Text)
+describeConfigurationRevisionResponse_description = Lens.lens (\DescribeConfigurationRevisionResponse' {description} -> description) (\s@DescribeConfigurationRevisionResponse' {} a -> s {description = a} :: DescribeConfigurationRevisionResponse)
+
+-- | The response's http status code.
+describeConfigurationRevisionResponse_httpStatus :: Lens.Lens' DescribeConfigurationRevisionResponse Prelude.Int
+describeConfigurationRevisionResponse_httpStatus = Lens.lens (\DescribeConfigurationRevisionResponse' {httpStatus} -> httpStatus) (\s@DescribeConfigurationRevisionResponse' {} a -> s {httpStatus = a} :: DescribeConfigurationRevisionResponse)
+
+instance
+  Prelude.NFData
+    DescribeConfigurationRevisionResponse
+  where
+  rnf DescribeConfigurationRevisionResponse' {..} =
+    Prelude.rnf configurationId
+      `Prelude.seq` Prelude.rnf created
+      `Prelude.seq` Prelude.rnf data'
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/DescribeUser.hs b/gen/Amazonka/MQ/DescribeUser.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/DescribeUser.hs
@@ -0,0 +1,247 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.DescribeUser
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns information about an ActiveMQ user.
+module Amazonka.MQ.DescribeUser
+  ( -- * Creating a Request
+    DescribeUser (..),
+    newDescribeUser,
+
+    -- * Request Lenses
+    describeUser_username,
+    describeUser_brokerId,
+
+    -- * Destructuring the Response
+    DescribeUserResponse (..),
+    newDescribeUserResponse,
+
+    -- * Response Lenses
+    describeUserResponse_brokerId,
+    describeUserResponse_consoleAccess,
+    describeUserResponse_groups,
+    describeUserResponse_pending,
+    describeUserResponse_username,
+    describeUserResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newDescribeUser' smart constructor.
+data DescribeUser = DescribeUser'
+  { -- | The username of the ActiveMQ user. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 2-100 characters long.
+    username :: Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeUser' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'username', 'describeUser_username' - The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+--
+-- 'brokerId', 'describeUser_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newDescribeUser ::
+  -- | 'username'
+  Prelude.Text ->
+  -- | 'brokerId'
+  Prelude.Text ->
+  DescribeUser
+newDescribeUser pUsername_ pBrokerId_ =
+  DescribeUser'
+    { username = pUsername_,
+      brokerId = pBrokerId_
+    }
+
+-- | The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+describeUser_username :: Lens.Lens' DescribeUser Prelude.Text
+describeUser_username = Lens.lens (\DescribeUser' {username} -> username) (\s@DescribeUser' {} a -> s {username = a} :: DescribeUser)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+describeUser_brokerId :: Lens.Lens' DescribeUser Prelude.Text
+describeUser_brokerId = Lens.lens (\DescribeUser' {brokerId} -> brokerId) (\s@DescribeUser' {} a -> s {brokerId = a} :: DescribeUser)
+
+instance Core.AWSRequest DescribeUser where
+  type AWSResponse DescribeUser = DescribeUserResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          DescribeUserResponse'
+            Prelude.<$> (x Data..?> "brokerId")
+            Prelude.<*> (x Data..?> "consoleAccess")
+            Prelude.<*> (x Data..?> "groups" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "pending")
+            Prelude.<*> (x Data..?> "username")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable DescribeUser where
+  hashWithSalt _salt DescribeUser' {..} =
+    _salt
+      `Prelude.hashWithSalt` username
+      `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData DescribeUser where
+  rnf DescribeUser' {..} =
+    Prelude.rnf username
+      `Prelude.seq` Prelude.rnf brokerId
+
+instance Data.ToHeaders DescribeUser where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath DescribeUser where
+  toPath DescribeUser' {..} =
+    Prelude.mconcat
+      [ "/v1/brokers/",
+        Data.toBS brokerId,
+        "/users/",
+        Data.toBS username
+      ]
+
+instance Data.ToQuery DescribeUser where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newDescribeUserResponse' smart constructor.
+data DescribeUserResponse = DescribeUserResponse'
+  { -- | Required. The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+    consoleAccess :: Prelude.Maybe Prelude.Bool,
+    -- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+    -- value can contain only alphanumeric characters, dashes, periods,
+    -- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+    -- long.
+    groups :: Prelude.Maybe [Prelude.Text],
+    -- | The status of the changes pending for the ActiveMQ user.
+    pending :: Prelude.Maybe UserPendingChanges,
+    -- | Required. The username of the ActiveMQ user. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 2-100 characters long.
+    username :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'DescribeUserResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerId', 'describeUserResponse_brokerId' - Required. The unique ID that Amazon MQ generates for the broker.
+--
+-- 'consoleAccess', 'describeUserResponse_consoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+--
+-- 'groups', 'describeUserResponse_groups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+--
+-- 'pending', 'describeUserResponse_pending' - The status of the changes pending for the ActiveMQ user.
+--
+-- 'username', 'describeUserResponse_username' - Required. The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+--
+-- 'httpStatus', 'describeUserResponse_httpStatus' - The response's http status code.
+newDescribeUserResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  DescribeUserResponse
+newDescribeUserResponse pHttpStatus_ =
+  DescribeUserResponse'
+    { brokerId = Prelude.Nothing,
+      consoleAccess = Prelude.Nothing,
+      groups = Prelude.Nothing,
+      pending = Prelude.Nothing,
+      username = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Required. The unique ID that Amazon MQ generates for the broker.
+describeUserResponse_brokerId :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)
+describeUserResponse_brokerId = Lens.lens (\DescribeUserResponse' {brokerId} -> brokerId) (\s@DescribeUserResponse' {} a -> s {brokerId = a} :: DescribeUserResponse)
+
+-- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+describeUserResponse_consoleAccess :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Bool)
+describeUserResponse_consoleAccess = Lens.lens (\DescribeUserResponse' {consoleAccess} -> consoleAccess) (\s@DescribeUserResponse' {} a -> s {consoleAccess = a} :: DescribeUserResponse)
+
+-- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+describeUserResponse_groups :: Lens.Lens' DescribeUserResponse (Prelude.Maybe [Prelude.Text])
+describeUserResponse_groups = Lens.lens (\DescribeUserResponse' {groups} -> groups) (\s@DescribeUserResponse' {} a -> s {groups = a} :: DescribeUserResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The status of the changes pending for the ActiveMQ user.
+describeUserResponse_pending :: Lens.Lens' DescribeUserResponse (Prelude.Maybe UserPendingChanges)
+describeUserResponse_pending = Lens.lens (\DescribeUserResponse' {pending} -> pending) (\s@DescribeUserResponse' {} a -> s {pending = a} :: DescribeUserResponse)
+
+-- | Required. The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+describeUserResponse_username :: Lens.Lens' DescribeUserResponse (Prelude.Maybe Prelude.Text)
+describeUserResponse_username = Lens.lens (\DescribeUserResponse' {username} -> username) (\s@DescribeUserResponse' {} a -> s {username = a} :: DescribeUserResponse)
+
+-- | The response's http status code.
+describeUserResponse_httpStatus :: Lens.Lens' DescribeUserResponse Prelude.Int
+describeUserResponse_httpStatus = Lens.lens (\DescribeUserResponse' {httpStatus} -> httpStatus) (\s@DescribeUserResponse' {} a -> s {httpStatus = a} :: DescribeUserResponse)
+
+instance Prelude.NFData DescribeUserResponse where
+  rnf DescribeUserResponse' {..} =
+    Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf consoleAccess
+      `Prelude.seq` Prelude.rnf groups
+      `Prelude.seq` Prelude.rnf pending
+      `Prelude.seq` Prelude.rnf username
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/Lens.hs b/gen/Amazonka/MQ/Lens.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Lens.hs
@@ -0,0 +1,433 @@
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Lens
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Lens
+  ( -- * Operations
+
+    -- ** CreateBroker
+    createBroker_authenticationStrategy,
+    createBroker_configuration,
+    createBroker_creatorRequestId,
+    createBroker_encryptionOptions,
+    createBroker_ldapServerMetadata,
+    createBroker_logs,
+    createBroker_maintenanceWindowStartTime,
+    createBroker_securityGroups,
+    createBroker_storageType,
+    createBroker_subnetIds,
+    createBroker_tags,
+    createBroker_engineVersion,
+    createBroker_hostInstanceType,
+    createBroker_autoMinorVersionUpgrade,
+    createBroker_users,
+    createBroker_brokerName,
+    createBroker_deploymentMode,
+    createBroker_engineType,
+    createBroker_publiclyAccessible,
+    createBrokerResponse_brokerArn,
+    createBrokerResponse_brokerId,
+    createBrokerResponse_httpStatus,
+
+    -- ** CreateConfiguration
+    createConfiguration_authenticationStrategy,
+    createConfiguration_tags,
+    createConfiguration_engineVersion,
+    createConfiguration_engineType,
+    createConfiguration_name,
+    createConfigurationResponse_arn,
+    createConfigurationResponse_authenticationStrategy,
+    createConfigurationResponse_created,
+    createConfigurationResponse_id,
+    createConfigurationResponse_latestRevision,
+    createConfigurationResponse_name,
+    createConfigurationResponse_httpStatus,
+
+    -- ** CreateTags
+    createTags_tags,
+    createTags_resourceArn,
+
+    -- ** CreateUser
+    createUser_consoleAccess,
+    createUser_groups,
+    createUser_username,
+    createUser_brokerId,
+    createUser_password,
+    createUserResponse_httpStatus,
+
+    -- ** DeleteBroker
+    deleteBroker_brokerId,
+    deleteBrokerResponse_brokerId,
+    deleteBrokerResponse_httpStatus,
+
+    -- ** DeleteTags
+    deleteTags_tagKeys,
+    deleteTags_resourceArn,
+
+    -- ** DeleteUser
+    deleteUser_username,
+    deleteUser_brokerId,
+    deleteUserResponse_httpStatus,
+
+    -- ** DescribeBroker
+    describeBroker_brokerId,
+    describeBrokerResponse_actionsRequired,
+    describeBrokerResponse_authenticationStrategy,
+    describeBrokerResponse_autoMinorVersionUpgrade,
+    describeBrokerResponse_brokerArn,
+    describeBrokerResponse_brokerId,
+    describeBrokerResponse_brokerInstances,
+    describeBrokerResponse_brokerName,
+    describeBrokerResponse_brokerState,
+    describeBrokerResponse_configurations,
+    describeBrokerResponse_created,
+    describeBrokerResponse_deploymentMode,
+    describeBrokerResponse_encryptionOptions,
+    describeBrokerResponse_engineType,
+    describeBrokerResponse_engineVersion,
+    describeBrokerResponse_hostInstanceType,
+    describeBrokerResponse_ldapServerMetadata,
+    describeBrokerResponse_logs,
+    describeBrokerResponse_maintenanceWindowStartTime,
+    describeBrokerResponse_pendingAuthenticationStrategy,
+    describeBrokerResponse_pendingEngineVersion,
+    describeBrokerResponse_pendingHostInstanceType,
+    describeBrokerResponse_pendingLdapServerMetadata,
+    describeBrokerResponse_pendingSecurityGroups,
+    describeBrokerResponse_publiclyAccessible,
+    describeBrokerResponse_securityGroups,
+    describeBrokerResponse_storageType,
+    describeBrokerResponse_subnetIds,
+    describeBrokerResponse_tags,
+    describeBrokerResponse_users,
+    describeBrokerResponse_httpStatus,
+
+    -- ** DescribeBrokerEngineTypes
+    describeBrokerEngineTypes_engineType,
+    describeBrokerEngineTypes_maxResults,
+    describeBrokerEngineTypes_nextToken,
+    describeBrokerEngineTypesResponse_brokerEngineTypes,
+    describeBrokerEngineTypesResponse_maxResults,
+    describeBrokerEngineTypesResponse_nextToken,
+    describeBrokerEngineTypesResponse_httpStatus,
+
+    -- ** DescribeBrokerInstanceOptions
+    describeBrokerInstanceOptions_engineType,
+    describeBrokerInstanceOptions_hostInstanceType,
+    describeBrokerInstanceOptions_maxResults,
+    describeBrokerInstanceOptions_nextToken,
+    describeBrokerInstanceOptions_storageType,
+    describeBrokerInstanceOptionsResponse_brokerInstanceOptions,
+    describeBrokerInstanceOptionsResponse_maxResults,
+    describeBrokerInstanceOptionsResponse_nextToken,
+    describeBrokerInstanceOptionsResponse_httpStatus,
+
+    -- ** DescribeConfiguration
+    describeConfiguration_configurationId,
+    describeConfigurationResponse_arn,
+    describeConfigurationResponse_authenticationStrategy,
+    describeConfigurationResponse_created,
+    describeConfigurationResponse_description,
+    describeConfigurationResponse_engineType,
+    describeConfigurationResponse_engineVersion,
+    describeConfigurationResponse_id,
+    describeConfigurationResponse_latestRevision,
+    describeConfigurationResponse_name,
+    describeConfigurationResponse_tags,
+    describeConfigurationResponse_httpStatus,
+
+    -- ** DescribeConfigurationRevision
+    describeConfigurationRevision_configurationRevision,
+    describeConfigurationRevision_configurationId,
+    describeConfigurationRevisionResponse_configurationId,
+    describeConfigurationRevisionResponse_created,
+    describeConfigurationRevisionResponse_data,
+    describeConfigurationRevisionResponse_description,
+    describeConfigurationRevisionResponse_httpStatus,
+
+    -- ** DescribeUser
+    describeUser_username,
+    describeUser_brokerId,
+    describeUserResponse_brokerId,
+    describeUserResponse_consoleAccess,
+    describeUserResponse_groups,
+    describeUserResponse_pending,
+    describeUserResponse_username,
+    describeUserResponse_httpStatus,
+
+    -- ** ListBrokers
+    listBrokers_maxResults,
+    listBrokers_nextToken,
+    listBrokersResponse_brokerSummaries,
+    listBrokersResponse_nextToken,
+    listBrokersResponse_httpStatus,
+
+    -- ** ListConfigurationRevisions
+    listConfigurationRevisions_maxResults,
+    listConfigurationRevisions_nextToken,
+    listConfigurationRevisions_configurationId,
+    listConfigurationRevisionsResponse_configurationId,
+    listConfigurationRevisionsResponse_maxResults,
+    listConfigurationRevisionsResponse_nextToken,
+    listConfigurationRevisionsResponse_revisions,
+    listConfigurationRevisionsResponse_httpStatus,
+
+    -- ** ListConfigurations
+    listConfigurations_maxResults,
+    listConfigurations_nextToken,
+    listConfigurationsResponse_configurations,
+    listConfigurationsResponse_maxResults,
+    listConfigurationsResponse_nextToken,
+    listConfigurationsResponse_httpStatus,
+
+    -- ** ListTags
+    listTags_resourceArn,
+    listTagsResponse_tags,
+    listTagsResponse_httpStatus,
+
+    -- ** ListUsers
+    listUsers_maxResults,
+    listUsers_nextToken,
+    listUsers_brokerId,
+    listUsersResponse_brokerId,
+    listUsersResponse_maxResults,
+    listUsersResponse_nextToken,
+    listUsersResponse_users,
+    listUsersResponse_httpStatus,
+
+    -- ** RebootBroker
+    rebootBroker_brokerId,
+    rebootBrokerResponse_httpStatus,
+
+    -- ** UpdateBroker
+    updateBroker_authenticationStrategy,
+    updateBroker_autoMinorVersionUpgrade,
+    updateBroker_configuration,
+    updateBroker_engineVersion,
+    updateBroker_hostInstanceType,
+    updateBroker_ldapServerMetadata,
+    updateBroker_logs,
+    updateBroker_maintenanceWindowStartTime,
+    updateBroker_securityGroups,
+    updateBroker_brokerId,
+    updateBrokerResponse_authenticationStrategy,
+    updateBrokerResponse_autoMinorVersionUpgrade,
+    updateBrokerResponse_brokerId,
+    updateBrokerResponse_configuration,
+    updateBrokerResponse_engineVersion,
+    updateBrokerResponse_hostInstanceType,
+    updateBrokerResponse_ldapServerMetadata,
+    updateBrokerResponse_logs,
+    updateBrokerResponse_maintenanceWindowStartTime,
+    updateBrokerResponse_securityGroups,
+    updateBrokerResponse_httpStatus,
+
+    -- ** UpdateConfiguration
+    updateConfiguration_description,
+    updateConfiguration_configurationId,
+    updateConfiguration_data,
+    updateConfigurationResponse_arn,
+    updateConfigurationResponse_created,
+    updateConfigurationResponse_id,
+    updateConfigurationResponse_latestRevision,
+    updateConfigurationResponse_name,
+    updateConfigurationResponse_warnings,
+    updateConfigurationResponse_httpStatus,
+
+    -- ** UpdateUser
+    updateUser_consoleAccess,
+    updateUser_groups,
+    updateUser_password,
+    updateUser_username,
+    updateUser_brokerId,
+    updateUserResponse_httpStatus,
+
+    -- * Types
+
+    -- ** ActionRequired
+    actionRequired_actionRequiredCode,
+    actionRequired_actionRequiredInfo,
+
+    -- ** AvailabilityZone
+    availabilityZone_name,
+
+    -- ** BrokerEngineType
+    brokerEngineType_engineType,
+    brokerEngineType_engineVersions,
+
+    -- ** BrokerInstance
+    brokerInstance_consoleURL,
+    brokerInstance_endpoints,
+    brokerInstance_ipAddress,
+
+    -- ** BrokerInstanceOption
+    brokerInstanceOption_availabilityZones,
+    brokerInstanceOption_engineType,
+    brokerInstanceOption_hostInstanceType,
+    brokerInstanceOption_storageType,
+    brokerInstanceOption_supportedDeploymentModes,
+    brokerInstanceOption_supportedEngineVersions,
+
+    -- ** BrokerSummary
+    brokerSummary_brokerArn,
+    brokerSummary_brokerId,
+    brokerSummary_brokerName,
+    brokerSummary_brokerState,
+    brokerSummary_created,
+    brokerSummary_hostInstanceType,
+    brokerSummary_deploymentMode,
+    brokerSummary_engineType,
+
+    -- ** Configuration
+    configuration_tags,
+    configuration_description,
+    configuration_engineVersion,
+    configuration_latestRevision,
+    configuration_authenticationStrategy,
+    configuration_engineType,
+    configuration_id,
+    configuration_arn,
+    configuration_name,
+    configuration_created,
+
+    -- ** ConfigurationId
+    configurationId_revision,
+    configurationId_id,
+
+    -- ** ConfigurationRevision
+    configurationRevision_description,
+    configurationRevision_revision,
+    configurationRevision_created,
+
+    -- ** Configurations
+    configurations_current,
+    configurations_history,
+    configurations_pending,
+
+    -- ** EncryptionOptions
+    encryptionOptions_kmsKeyId,
+    encryptionOptions_useAwsOwnedKey,
+
+    -- ** EngineVersion
+    engineVersion_name,
+
+    -- ** LdapServerMetadataInput
+    ldapServerMetadataInput_roleName,
+    ldapServerMetadataInput_roleSearchSubtree,
+    ldapServerMetadataInput_userRoleName,
+    ldapServerMetadataInput_userSearchSubtree,
+    ldapServerMetadataInput_hosts,
+    ldapServerMetadataInput_userSearchMatching,
+    ldapServerMetadataInput_userBase,
+    ldapServerMetadataInput_roleSearchMatching,
+    ldapServerMetadataInput_serviceAccountUsername,
+    ldapServerMetadataInput_roleBase,
+    ldapServerMetadataInput_serviceAccountPassword,
+
+    -- ** LdapServerMetadataOutput
+    ldapServerMetadataOutput_roleName,
+    ldapServerMetadataOutput_roleSearchSubtree,
+    ldapServerMetadataOutput_userRoleName,
+    ldapServerMetadataOutput_userSearchSubtree,
+    ldapServerMetadataOutput_hosts,
+    ldapServerMetadataOutput_userSearchMatching,
+    ldapServerMetadataOutput_userBase,
+    ldapServerMetadataOutput_roleSearchMatching,
+    ldapServerMetadataOutput_serviceAccountUsername,
+    ldapServerMetadataOutput_roleBase,
+
+    -- ** Logs
+    logs_audit,
+    logs_general,
+
+    -- ** LogsSummary
+    logsSummary_audit,
+    logsSummary_auditLogGroup,
+    logsSummary_pending,
+    logsSummary_generalLogGroup,
+    logsSummary_general,
+
+    -- ** PendingLogs
+    pendingLogs_audit,
+    pendingLogs_general,
+
+    -- ** SanitizationWarning
+    sanitizationWarning_attributeName,
+    sanitizationWarning_elementName,
+    sanitizationWarning_reason,
+
+    -- ** User
+    user_consoleAccess,
+    user_groups,
+    user_username,
+    user_password,
+
+    -- ** UserPendingChanges
+    userPendingChanges_consoleAccess,
+    userPendingChanges_groups,
+    userPendingChanges_pendingChange,
+
+    -- ** UserSummary
+    userSummary_pendingChange,
+    userSummary_username,
+
+    -- ** WeeklyStartTime
+    weeklyStartTime_timeZone,
+    weeklyStartTime_timeOfDay,
+    weeklyStartTime_dayOfWeek,
+  )
+where
+
+import Amazonka.MQ.CreateBroker
+import Amazonka.MQ.CreateConfiguration
+import Amazonka.MQ.CreateTags
+import Amazonka.MQ.CreateUser
+import Amazonka.MQ.DeleteBroker
+import Amazonka.MQ.DeleteTags
+import Amazonka.MQ.DeleteUser
+import Amazonka.MQ.DescribeBroker
+import Amazonka.MQ.DescribeBrokerEngineTypes
+import Amazonka.MQ.DescribeBrokerInstanceOptions
+import Amazonka.MQ.DescribeConfiguration
+import Amazonka.MQ.DescribeConfigurationRevision
+import Amazonka.MQ.DescribeUser
+import Amazonka.MQ.ListBrokers
+import Amazonka.MQ.ListConfigurationRevisions
+import Amazonka.MQ.ListConfigurations
+import Amazonka.MQ.ListTags
+import Amazonka.MQ.ListUsers
+import Amazonka.MQ.RebootBroker
+import Amazonka.MQ.Types.ActionRequired
+import Amazonka.MQ.Types.AvailabilityZone
+import Amazonka.MQ.Types.BrokerEngineType
+import Amazonka.MQ.Types.BrokerInstance
+import Amazonka.MQ.Types.BrokerInstanceOption
+import Amazonka.MQ.Types.BrokerSummary
+import Amazonka.MQ.Types.Configuration
+import Amazonka.MQ.Types.ConfigurationId
+import Amazonka.MQ.Types.ConfigurationRevision
+import Amazonka.MQ.Types.Configurations
+import Amazonka.MQ.Types.EncryptionOptions
+import Amazonka.MQ.Types.EngineVersion
+import Amazonka.MQ.Types.LdapServerMetadataInput
+import Amazonka.MQ.Types.LdapServerMetadataOutput
+import Amazonka.MQ.Types.Logs
+import Amazonka.MQ.Types.LogsSummary
+import Amazonka.MQ.Types.PendingLogs
+import Amazonka.MQ.Types.SanitizationWarning
+import Amazonka.MQ.Types.User
+import Amazonka.MQ.Types.UserPendingChanges
+import Amazonka.MQ.Types.UserSummary
+import Amazonka.MQ.Types.WeeklyStartTime
+import Amazonka.MQ.UpdateBroker
+import Amazonka.MQ.UpdateConfiguration
+import Amazonka.MQ.UpdateUser
diff --git a/gen/Amazonka/MQ/ListBrokers.hs b/gen/Amazonka/MQ/ListBrokers.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/ListBrokers.hs
@@ -0,0 +1,221 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.ListBrokers
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of all brokers.
+--
+-- This operation returns paginated results.
+module Amazonka.MQ.ListBrokers
+  ( -- * Creating a Request
+    ListBrokers (..),
+    newListBrokers,
+
+    -- * Request Lenses
+    listBrokers_maxResults,
+    listBrokers_nextToken,
+
+    -- * Destructuring the Response
+    ListBrokersResponse (..),
+    newListBrokersResponse,
+
+    -- * Response Lenses
+    listBrokersResponse_brokerSummaries,
+    listBrokersResponse_nextToken,
+    listBrokersResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListBrokers' smart constructor.
+data ListBrokers = ListBrokers'
+  { -- | The maximum number of brokers that Amazon MQ can return per page (20 by
+    -- default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListBrokers' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listBrokers_maxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listBrokers_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+newListBrokers ::
+  ListBrokers
+newListBrokers =
+  ListBrokers'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+listBrokers_maxResults :: Lens.Lens' ListBrokers (Prelude.Maybe Prelude.Natural)
+listBrokers_maxResults = Lens.lens (\ListBrokers' {maxResults} -> maxResults) (\s@ListBrokers' {} a -> s {maxResults = a} :: ListBrokers)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listBrokers_nextToken :: Lens.Lens' ListBrokers (Prelude.Maybe Prelude.Text)
+listBrokers_nextToken = Lens.lens (\ListBrokers' {nextToken} -> nextToken) (\s@ListBrokers' {} a -> s {nextToken = a} :: ListBrokers)
+
+instance Core.AWSPager ListBrokers where
+  page rq rs
+    | Core.stop
+        ( rs
+            Lens.^? listBrokersResponse_nextToken
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Core.stop
+        ( rs
+            Lens.^? listBrokersResponse_brokerSummaries
+            Prelude.. Lens._Just
+        ) =
+        Prelude.Nothing
+    | Prelude.otherwise =
+        Prelude.Just
+          Prelude.$ rq
+          Prelude.& listBrokers_nextToken
+          Lens..~ rs
+          Lens.^? listBrokersResponse_nextToken
+          Prelude.. Lens._Just
+
+instance Core.AWSRequest ListBrokers where
+  type AWSResponse ListBrokers = ListBrokersResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListBrokersResponse'
+            Prelude.<$> ( x
+                            Data..?> "brokerSummaries"
+                            Core..!@ Prelude.mempty
+                        )
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListBrokers where
+  hashWithSalt _salt ListBrokers' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListBrokers where
+  rnf ListBrokers' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListBrokers where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListBrokers where
+  toPath = Prelude.const "/v1/brokers"
+
+instance Data.ToQuery ListBrokers where
+  toQuery ListBrokers' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListBrokersResponse' smart constructor.
+data ListBrokersResponse = ListBrokersResponse'
+  { -- | A list of information about all brokers.
+    brokerSummaries :: Prelude.Maybe [BrokerSummary],
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListBrokersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerSummaries', 'listBrokersResponse_brokerSummaries' - A list of information about all brokers.
+--
+-- 'nextToken', 'listBrokersResponse_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'httpStatus', 'listBrokersResponse_httpStatus' - The response's http status code.
+newListBrokersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListBrokersResponse
+newListBrokersResponse pHttpStatus_ =
+  ListBrokersResponse'
+    { brokerSummaries =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | A list of information about all brokers.
+listBrokersResponse_brokerSummaries :: Lens.Lens' ListBrokersResponse (Prelude.Maybe [BrokerSummary])
+listBrokersResponse_brokerSummaries = Lens.lens (\ListBrokersResponse' {brokerSummaries} -> brokerSummaries) (\s@ListBrokersResponse' {} a -> s {brokerSummaries = a} :: ListBrokersResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listBrokersResponse_nextToken :: Lens.Lens' ListBrokersResponse (Prelude.Maybe Prelude.Text)
+listBrokersResponse_nextToken = Lens.lens (\ListBrokersResponse' {nextToken} -> nextToken) (\s@ListBrokersResponse' {} a -> s {nextToken = a} :: ListBrokersResponse)
+
+-- | The response's http status code.
+listBrokersResponse_httpStatus :: Lens.Lens' ListBrokersResponse Prelude.Int
+listBrokersResponse_httpStatus = Lens.lens (\ListBrokersResponse' {httpStatus} -> httpStatus) (\s@ListBrokersResponse' {} a -> s {httpStatus = a} :: ListBrokersResponse)
+
+instance Prelude.NFData ListBrokersResponse where
+  rnf ListBrokersResponse' {..} =
+    Prelude.rnf brokerSummaries
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/ListConfigurationRevisions.hs b/gen/Amazonka/MQ/ListConfigurationRevisions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/ListConfigurationRevisions.hs
@@ -0,0 +1,246 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.ListConfigurationRevisions
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of all revisions for the specified configuration.
+module Amazonka.MQ.ListConfigurationRevisions
+  ( -- * Creating a Request
+    ListConfigurationRevisions (..),
+    newListConfigurationRevisions,
+
+    -- * Request Lenses
+    listConfigurationRevisions_maxResults,
+    listConfigurationRevisions_nextToken,
+    listConfigurationRevisions_configurationId,
+
+    -- * Destructuring the Response
+    ListConfigurationRevisionsResponse (..),
+    newListConfigurationRevisionsResponse,
+
+    -- * Response Lenses
+    listConfigurationRevisionsResponse_configurationId,
+    listConfigurationRevisionsResponse_maxResults,
+    listConfigurationRevisionsResponse_nextToken,
+    listConfigurationRevisionsResponse_revisions,
+    listConfigurationRevisionsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListConfigurationRevisions' smart constructor.
+data ListConfigurationRevisions = ListConfigurationRevisions'
+  { -- | The maximum number of brokers that Amazon MQ can return per page (20 by
+    -- default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the configuration.
+    configurationId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListConfigurationRevisions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listConfigurationRevisions_maxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listConfigurationRevisions_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'configurationId', 'listConfigurationRevisions_configurationId' - The unique ID that Amazon MQ generates for the configuration.
+newListConfigurationRevisions ::
+  -- | 'configurationId'
+  Prelude.Text ->
+  ListConfigurationRevisions
+newListConfigurationRevisions pConfigurationId_ =
+  ListConfigurationRevisions'
+    { maxResults =
+        Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      configurationId = pConfigurationId_
+    }
+
+-- | The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+listConfigurationRevisions_maxResults :: Lens.Lens' ListConfigurationRevisions (Prelude.Maybe Prelude.Natural)
+listConfigurationRevisions_maxResults = Lens.lens (\ListConfigurationRevisions' {maxResults} -> maxResults) (\s@ListConfigurationRevisions' {} a -> s {maxResults = a} :: ListConfigurationRevisions)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listConfigurationRevisions_nextToken :: Lens.Lens' ListConfigurationRevisions (Prelude.Maybe Prelude.Text)
+listConfigurationRevisions_nextToken = Lens.lens (\ListConfigurationRevisions' {nextToken} -> nextToken) (\s@ListConfigurationRevisions' {} a -> s {nextToken = a} :: ListConfigurationRevisions)
+
+-- | The unique ID that Amazon MQ generates for the configuration.
+listConfigurationRevisions_configurationId :: Lens.Lens' ListConfigurationRevisions Prelude.Text
+listConfigurationRevisions_configurationId = Lens.lens (\ListConfigurationRevisions' {configurationId} -> configurationId) (\s@ListConfigurationRevisions' {} a -> s {configurationId = a} :: ListConfigurationRevisions)
+
+instance Core.AWSRequest ListConfigurationRevisions where
+  type
+    AWSResponse ListConfigurationRevisions =
+      ListConfigurationRevisionsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListConfigurationRevisionsResponse'
+            Prelude.<$> (x Data..?> "configurationId")
+            Prelude.<*> (x Data..?> "maxResults")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (x Data..?> "revisions" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListConfigurationRevisions where
+  hashWithSalt _salt ListConfigurationRevisions' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` configurationId
+
+instance Prelude.NFData ListConfigurationRevisions where
+  rnf ListConfigurationRevisions' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf configurationId
+
+instance Data.ToHeaders ListConfigurationRevisions where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListConfigurationRevisions where
+  toPath ListConfigurationRevisions' {..} =
+    Prelude.mconcat
+      [ "/v1/configurations/",
+        Data.toBS configurationId,
+        "/revisions"
+      ]
+
+instance Data.ToQuery ListConfigurationRevisions where
+  toQuery ListConfigurationRevisions' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListConfigurationRevisionsResponse' smart constructor.
+data ListConfigurationRevisionsResponse = ListConfigurationRevisionsResponse'
+  { -- | The unique ID that Amazon MQ generates for the configuration.
+    configurationId :: Prelude.Maybe Prelude.Text,
+    -- | The maximum number of configuration revisions that can be returned per
+    -- page (20 by default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The list of all revisions for the specified configuration.
+    revisions :: Prelude.Maybe [ConfigurationRevision],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListConfigurationRevisionsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurationId', 'listConfigurationRevisionsResponse_configurationId' - The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'maxResults', 'listConfigurationRevisionsResponse_maxResults' - The maximum number of configuration revisions that can be returned per
+-- page (20 by default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listConfigurationRevisionsResponse_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'revisions', 'listConfigurationRevisionsResponse_revisions' - The list of all revisions for the specified configuration.
+--
+-- 'httpStatus', 'listConfigurationRevisionsResponse_httpStatus' - The response's http status code.
+newListConfigurationRevisionsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListConfigurationRevisionsResponse
+newListConfigurationRevisionsResponse pHttpStatus_ =
+  ListConfigurationRevisionsResponse'
+    { configurationId =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      revisions = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The unique ID that Amazon MQ generates for the configuration.
+listConfigurationRevisionsResponse_configurationId :: Lens.Lens' ListConfigurationRevisionsResponse (Prelude.Maybe Prelude.Text)
+listConfigurationRevisionsResponse_configurationId = Lens.lens (\ListConfigurationRevisionsResponse' {configurationId} -> configurationId) (\s@ListConfigurationRevisionsResponse' {} a -> s {configurationId = a} :: ListConfigurationRevisionsResponse)
+
+-- | The maximum number of configuration revisions that can be returned per
+-- page (20 by default). This value must be an integer from 5 to 100.
+listConfigurationRevisionsResponse_maxResults :: Lens.Lens' ListConfigurationRevisionsResponse (Prelude.Maybe Prelude.Int)
+listConfigurationRevisionsResponse_maxResults = Lens.lens (\ListConfigurationRevisionsResponse' {maxResults} -> maxResults) (\s@ListConfigurationRevisionsResponse' {} a -> s {maxResults = a} :: ListConfigurationRevisionsResponse)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listConfigurationRevisionsResponse_nextToken :: Lens.Lens' ListConfigurationRevisionsResponse (Prelude.Maybe Prelude.Text)
+listConfigurationRevisionsResponse_nextToken = Lens.lens (\ListConfigurationRevisionsResponse' {nextToken} -> nextToken) (\s@ListConfigurationRevisionsResponse' {} a -> s {nextToken = a} :: ListConfigurationRevisionsResponse)
+
+-- | The list of all revisions for the specified configuration.
+listConfigurationRevisionsResponse_revisions :: Lens.Lens' ListConfigurationRevisionsResponse (Prelude.Maybe [ConfigurationRevision])
+listConfigurationRevisionsResponse_revisions = Lens.lens (\ListConfigurationRevisionsResponse' {revisions} -> revisions) (\s@ListConfigurationRevisionsResponse' {} a -> s {revisions = a} :: ListConfigurationRevisionsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listConfigurationRevisionsResponse_httpStatus :: Lens.Lens' ListConfigurationRevisionsResponse Prelude.Int
+listConfigurationRevisionsResponse_httpStatus = Lens.lens (\ListConfigurationRevisionsResponse' {httpStatus} -> httpStatus) (\s@ListConfigurationRevisionsResponse' {} a -> s {httpStatus = a} :: ListConfigurationRevisionsResponse)
+
+instance
+  Prelude.NFData
+    ListConfigurationRevisionsResponse
+  where
+  rnf ListConfigurationRevisionsResponse' {..} =
+    Prelude.rnf configurationId
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf revisions
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/ListConfigurations.hs b/gen/Amazonka/MQ/ListConfigurations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/ListConfigurations.hs
@@ -0,0 +1,211 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.ListConfigurations
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of all configurations.
+module Amazonka.MQ.ListConfigurations
+  ( -- * Creating a Request
+    ListConfigurations (..),
+    newListConfigurations,
+
+    -- * Request Lenses
+    listConfigurations_maxResults,
+    listConfigurations_nextToken,
+
+    -- * Destructuring the Response
+    ListConfigurationsResponse (..),
+    newListConfigurationsResponse,
+
+    -- * Response Lenses
+    listConfigurationsResponse_configurations,
+    listConfigurationsResponse_maxResults,
+    listConfigurationsResponse_nextToken,
+    listConfigurationsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListConfigurations' smart constructor.
+data ListConfigurations = ListConfigurations'
+  { -- | The maximum number of brokers that Amazon MQ can return per page (20 by
+    -- default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListConfigurations' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listConfigurations_maxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listConfigurations_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+newListConfigurations ::
+  ListConfigurations
+newListConfigurations =
+  ListConfigurations'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing
+    }
+
+-- | The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+listConfigurations_maxResults :: Lens.Lens' ListConfigurations (Prelude.Maybe Prelude.Natural)
+listConfigurations_maxResults = Lens.lens (\ListConfigurations' {maxResults} -> maxResults) (\s@ListConfigurations' {} a -> s {maxResults = a} :: ListConfigurations)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listConfigurations_nextToken :: Lens.Lens' ListConfigurations (Prelude.Maybe Prelude.Text)
+listConfigurations_nextToken = Lens.lens (\ListConfigurations' {nextToken} -> nextToken) (\s@ListConfigurations' {} a -> s {nextToken = a} :: ListConfigurations)
+
+instance Core.AWSRequest ListConfigurations where
+  type
+    AWSResponse ListConfigurations =
+      ListConfigurationsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListConfigurationsResponse'
+            Prelude.<$> (x Data..?> "configurations" Core..!@ Prelude.mempty)
+            Prelude.<*> (x Data..?> "maxResults")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListConfigurations where
+  hashWithSalt _salt ListConfigurations' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+
+instance Prelude.NFData ListConfigurations where
+  rnf ListConfigurations' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+
+instance Data.ToHeaders ListConfigurations where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListConfigurations where
+  toPath = Prelude.const "/v1/configurations"
+
+instance Data.ToQuery ListConfigurations where
+  toQuery ListConfigurations' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListConfigurationsResponse' smart constructor.
+data ListConfigurationsResponse = ListConfigurationsResponse'
+  { -- | The list of all revisions for the specified configuration.
+    configurations :: Prelude.Maybe [Configuration],
+    -- | The maximum number of configurations that Amazon MQ can return per page
+    -- (20 by default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Int,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListConfigurationsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'configurations', 'listConfigurationsResponse_configurations' - The list of all revisions for the specified configuration.
+--
+-- 'maxResults', 'listConfigurationsResponse_maxResults' - The maximum number of configurations that Amazon MQ can return per page
+-- (20 by default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listConfigurationsResponse_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'httpStatus', 'listConfigurationsResponse_httpStatus' - The response's http status code.
+newListConfigurationsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListConfigurationsResponse
+newListConfigurationsResponse pHttpStatus_ =
+  ListConfigurationsResponse'
+    { configurations =
+        Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The list of all revisions for the specified configuration.
+listConfigurationsResponse_configurations :: Lens.Lens' ListConfigurationsResponse (Prelude.Maybe [Configuration])
+listConfigurationsResponse_configurations = Lens.lens (\ListConfigurationsResponse' {configurations} -> configurations) (\s@ListConfigurationsResponse' {} a -> s {configurations = a} :: ListConfigurationsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The maximum number of configurations that Amazon MQ can return per page
+-- (20 by default). This value must be an integer from 5 to 100.
+listConfigurationsResponse_maxResults :: Lens.Lens' ListConfigurationsResponse (Prelude.Maybe Prelude.Int)
+listConfigurationsResponse_maxResults = Lens.lens (\ListConfigurationsResponse' {maxResults} -> maxResults) (\s@ListConfigurationsResponse' {} a -> s {maxResults = a} :: ListConfigurationsResponse)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listConfigurationsResponse_nextToken :: Lens.Lens' ListConfigurationsResponse (Prelude.Maybe Prelude.Text)
+listConfigurationsResponse_nextToken = Lens.lens (\ListConfigurationsResponse' {nextToken} -> nextToken) (\s@ListConfigurationsResponse' {} a -> s {nextToken = a} :: ListConfigurationsResponse)
+
+-- | The response's http status code.
+listConfigurationsResponse_httpStatus :: Lens.Lens' ListConfigurationsResponse Prelude.Int
+listConfigurationsResponse_httpStatus = Lens.lens (\ListConfigurationsResponse' {httpStatus} -> httpStatus) (\s@ListConfigurationsResponse' {} a -> s {httpStatus = a} :: ListConfigurationsResponse)
+
+instance Prelude.NFData ListConfigurationsResponse where
+  rnf ListConfigurationsResponse' {..} =
+    Prelude.rnf configurations
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/ListTags.hs b/gen/Amazonka/MQ/ListTags.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/ListTags.hs
@@ -0,0 +1,156 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.ListTags
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Lists tags for a resource.
+module Amazonka.MQ.ListTags
+  ( -- * Creating a Request
+    ListTags (..),
+    newListTags,
+
+    -- * Request Lenses
+    listTags_resourceArn,
+
+    -- * Destructuring the Response
+    ListTagsResponse (..),
+    newListTagsResponse,
+
+    -- * Response Lenses
+    listTagsResponse_tags,
+    listTagsResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListTags' smart constructor.
+data ListTags = ListTags'
+  { -- | The Amazon Resource Name (ARN) of the resource tag.
+    resourceArn :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTags' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'resourceArn', 'listTags_resourceArn' - The Amazon Resource Name (ARN) of the resource tag.
+newListTags ::
+  -- | 'resourceArn'
+  Prelude.Text ->
+  ListTags
+newListTags pResourceArn_ =
+  ListTags' {resourceArn = pResourceArn_}
+
+-- | The Amazon Resource Name (ARN) of the resource tag.
+listTags_resourceArn :: Lens.Lens' ListTags Prelude.Text
+listTags_resourceArn = Lens.lens (\ListTags' {resourceArn} -> resourceArn) (\s@ListTags' {} a -> s {resourceArn = a} :: ListTags)
+
+instance Core.AWSRequest ListTags where
+  type AWSResponse ListTags = ListTagsResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListTagsResponse'
+            Prelude.<$> (x Data..?> "tags" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListTags where
+  hashWithSalt _salt ListTags' {..} =
+    _salt `Prelude.hashWithSalt` resourceArn
+
+instance Prelude.NFData ListTags where
+  rnf ListTags' {..} = Prelude.rnf resourceArn
+
+instance Data.ToHeaders ListTags where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListTags where
+  toPath ListTags' {..} =
+    Prelude.mconcat
+      ["/v1/tags/", Data.toBS resourceArn]
+
+instance Data.ToQuery ListTags where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newListTagsResponse' smart constructor.
+data ListTagsResponse = ListTagsResponse'
+  { -- | The key-value pair for the resource tag.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListTagsResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'tags', 'listTagsResponse_tags' - The key-value pair for the resource tag.
+--
+-- 'httpStatus', 'listTagsResponse_httpStatus' - The response's http status code.
+newListTagsResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListTagsResponse
+newListTagsResponse pHttpStatus_ =
+  ListTagsResponse'
+    { tags = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | The key-value pair for the resource tag.
+listTagsResponse_tags :: Lens.Lens' ListTagsResponse (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+listTagsResponse_tags = Lens.lens (\ListTagsResponse' {tags} -> tags) (\s@ListTagsResponse' {} a -> s {tags = a} :: ListTagsResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listTagsResponse_httpStatus :: Lens.Lens' ListTagsResponse Prelude.Int
+listTagsResponse_httpStatus = Lens.lens (\ListTagsResponse' {httpStatus} -> httpStatus) (\s@ListTagsResponse' {} a -> s {httpStatus = a} :: ListTagsResponse)
+
+instance Prelude.NFData ListTagsResponse where
+  rnf ListTagsResponse' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/ListUsers.hs b/gen/Amazonka/MQ/ListUsers.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/ListUsers.hs
@@ -0,0 +1,239 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.ListUsers
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Returns a list of all ActiveMQ users.
+module Amazonka.MQ.ListUsers
+  ( -- * Creating a Request
+    ListUsers (..),
+    newListUsers,
+
+    -- * Request Lenses
+    listUsers_maxResults,
+    listUsers_nextToken,
+    listUsers_brokerId,
+
+    -- * Destructuring the Response
+    ListUsersResponse (..),
+    newListUsersResponse,
+
+    -- * Response Lenses
+    listUsersResponse_brokerId,
+    listUsersResponse_maxResults,
+    listUsersResponse_nextToken,
+    listUsersResponse_users,
+    listUsersResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newListUsers' smart constructor.
+data ListUsers = ListUsers'
+  { -- | The maximum number of brokers that Amazon MQ can return per page (20 by
+    -- default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListUsers' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'maxResults', 'listUsers_maxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listUsers_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'brokerId', 'listUsers_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newListUsers ::
+  -- | 'brokerId'
+  Prelude.Text ->
+  ListUsers
+newListUsers pBrokerId_ =
+  ListUsers'
+    { maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      brokerId = pBrokerId_
+    }
+
+-- | The maximum number of brokers that Amazon MQ can return per page (20 by
+-- default). This value must be an integer from 5 to 100.
+listUsers_maxResults :: Lens.Lens' ListUsers (Prelude.Maybe Prelude.Natural)
+listUsers_maxResults = Lens.lens (\ListUsers' {maxResults} -> maxResults) (\s@ListUsers' {} a -> s {maxResults = a} :: ListUsers)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listUsers_nextToken :: Lens.Lens' ListUsers (Prelude.Maybe Prelude.Text)
+listUsers_nextToken = Lens.lens (\ListUsers' {nextToken} -> nextToken) (\s@ListUsers' {} a -> s {nextToken = a} :: ListUsers)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+listUsers_brokerId :: Lens.Lens' ListUsers Prelude.Text
+listUsers_brokerId = Lens.lens (\ListUsers' {brokerId} -> brokerId) (\s@ListUsers' {} a -> s {brokerId = a} :: ListUsers)
+
+instance Core.AWSRequest ListUsers where
+  type AWSResponse ListUsers = ListUsersResponse
+  request overrides =
+    Request.get (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          ListUsersResponse'
+            Prelude.<$> (x Data..?> "brokerId")
+            Prelude.<*> (x Data..?> "maxResults")
+            Prelude.<*> (x Data..?> "nextToken")
+            Prelude.<*> (x Data..?> "users" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable ListUsers where
+  hashWithSalt _salt ListUsers' {..} =
+    _salt
+      `Prelude.hashWithSalt` maxResults
+      `Prelude.hashWithSalt` nextToken
+      `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData ListUsers where
+  rnf ListUsers' {..} =
+    Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf brokerId
+
+instance Data.ToHeaders ListUsers where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToPath ListUsers where
+  toPath ListUsers' {..} =
+    Prelude.mconcat
+      ["/v1/brokers/", Data.toBS brokerId, "/users"]
+
+instance Data.ToQuery ListUsers where
+  toQuery ListUsers' {..} =
+    Prelude.mconcat
+      [ "maxResults" Data.=: maxResults,
+        "nextToken" Data.=: nextToken
+      ]
+
+-- | /See:/ 'newListUsersResponse' smart constructor.
+data ListUsersResponse = ListUsersResponse'
+  { -- | Required. The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | Required. The maximum number of ActiveMQ users that can be returned per
+    -- page (20 by default). This value must be an integer from 5 to 100.
+    maxResults :: Prelude.Maybe Prelude.Natural,
+    -- | The token that specifies the next page of results Amazon MQ should
+    -- return. To request the first page, leave nextToken empty.
+    nextToken :: Prelude.Maybe Prelude.Text,
+    -- | Required. The list of all ActiveMQ usernames for the specified broker.
+    -- Does not apply to RabbitMQ brokers.
+    users :: Prelude.Maybe [UserSummary],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ListUsersResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerId', 'listUsersResponse_brokerId' - Required. The unique ID that Amazon MQ generates for the broker.
+--
+-- 'maxResults', 'listUsersResponse_maxResults' - Required. The maximum number of ActiveMQ users that can be returned per
+-- page (20 by default). This value must be an integer from 5 to 100.
+--
+-- 'nextToken', 'listUsersResponse_nextToken' - The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+--
+-- 'users', 'listUsersResponse_users' - Required. The list of all ActiveMQ usernames for the specified broker.
+-- Does not apply to RabbitMQ brokers.
+--
+-- 'httpStatus', 'listUsersResponse_httpStatus' - The response's http status code.
+newListUsersResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  ListUsersResponse
+newListUsersResponse pHttpStatus_ =
+  ListUsersResponse'
+    { brokerId = Prelude.Nothing,
+      maxResults = Prelude.Nothing,
+      nextToken = Prelude.Nothing,
+      users = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Required. The unique ID that Amazon MQ generates for the broker.
+listUsersResponse_brokerId :: Lens.Lens' ListUsersResponse (Prelude.Maybe Prelude.Text)
+listUsersResponse_brokerId = Lens.lens (\ListUsersResponse' {brokerId} -> brokerId) (\s@ListUsersResponse' {} a -> s {brokerId = a} :: ListUsersResponse)
+
+-- | Required. The maximum number of ActiveMQ users that can be returned per
+-- page (20 by default). This value must be an integer from 5 to 100.
+listUsersResponse_maxResults :: Lens.Lens' ListUsersResponse (Prelude.Maybe Prelude.Natural)
+listUsersResponse_maxResults = Lens.lens (\ListUsersResponse' {maxResults} -> maxResults) (\s@ListUsersResponse' {} a -> s {maxResults = a} :: ListUsersResponse)
+
+-- | The token that specifies the next page of results Amazon MQ should
+-- return. To request the first page, leave nextToken empty.
+listUsersResponse_nextToken :: Lens.Lens' ListUsersResponse (Prelude.Maybe Prelude.Text)
+listUsersResponse_nextToken = Lens.lens (\ListUsersResponse' {nextToken} -> nextToken) (\s@ListUsersResponse' {} a -> s {nextToken = a} :: ListUsersResponse)
+
+-- | Required. The list of all ActiveMQ usernames for the specified broker.
+-- Does not apply to RabbitMQ brokers.
+listUsersResponse_users :: Lens.Lens' ListUsersResponse (Prelude.Maybe [UserSummary])
+listUsersResponse_users = Lens.lens (\ListUsersResponse' {users} -> users) (\s@ListUsersResponse' {} a -> s {users = a} :: ListUsersResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+listUsersResponse_httpStatus :: Lens.Lens' ListUsersResponse Prelude.Int
+listUsersResponse_httpStatus = Lens.lens (\ListUsersResponse' {httpStatus} -> httpStatus) (\s@ListUsersResponse' {} a -> s {httpStatus = a} :: ListUsersResponse)
+
+instance Prelude.NFData ListUsersResponse where
+  rnf ListUsersResponse' {..} =
+    Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf maxResults
+      `Prelude.seq` Prelude.rnf nextToken
+      `Prelude.seq` Prelude.rnf users
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/RebootBroker.hs b/gen/Amazonka/MQ/RebootBroker.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/RebootBroker.hs
@@ -0,0 +1,145 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.RebootBroker
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Reboots a broker. Note: This API is asynchronous.
+module Amazonka.MQ.RebootBroker
+  ( -- * Creating a Request
+    RebootBroker (..),
+    newRebootBroker,
+
+    -- * Request Lenses
+    rebootBroker_brokerId,
+
+    -- * Destructuring the Response
+    RebootBrokerResponse (..),
+    newRebootBrokerResponse,
+
+    -- * Response Lenses
+    rebootBrokerResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | /See:/ 'newRebootBroker' smart constructor.
+data RebootBroker = RebootBroker'
+  { -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RebootBroker' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerId', 'rebootBroker_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newRebootBroker ::
+  -- | 'brokerId'
+  Prelude.Text ->
+  RebootBroker
+newRebootBroker pBrokerId_ =
+  RebootBroker' {brokerId = pBrokerId_}
+
+-- | The unique ID that Amazon MQ generates for the broker.
+rebootBroker_brokerId :: Lens.Lens' RebootBroker Prelude.Text
+rebootBroker_brokerId = Lens.lens (\RebootBroker' {brokerId} -> brokerId) (\s@RebootBroker' {} a -> s {brokerId = a} :: RebootBroker)
+
+instance Core.AWSRequest RebootBroker where
+  type AWSResponse RebootBroker = RebootBrokerResponse
+  request overrides =
+    Request.postJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          RebootBrokerResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable RebootBroker where
+  hashWithSalt _salt RebootBroker' {..} =
+    _salt `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData RebootBroker where
+  rnf RebootBroker' {..} = Prelude.rnf brokerId
+
+instance Data.ToHeaders RebootBroker where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON RebootBroker where
+  toJSON = Prelude.const (Data.Object Prelude.mempty)
+
+instance Data.ToPath RebootBroker where
+  toPath RebootBroker' {..} =
+    Prelude.mconcat
+      ["/v1/brokers/", Data.toBS brokerId, "/reboot"]
+
+instance Data.ToQuery RebootBroker where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newRebootBrokerResponse' smart constructor.
+data RebootBrokerResponse = RebootBrokerResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'RebootBrokerResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'rebootBrokerResponse_httpStatus' - The response's http status code.
+newRebootBrokerResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  RebootBrokerResponse
+newRebootBrokerResponse pHttpStatus_ =
+  RebootBrokerResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+rebootBrokerResponse_httpStatus :: Lens.Lens' RebootBrokerResponse Prelude.Int
+rebootBrokerResponse_httpStatus = Lens.lens (\RebootBrokerResponse' {httpStatus} -> httpStatus) (\s@RebootBrokerResponse' {} a -> s {httpStatus = a} :: RebootBrokerResponse)
+
+instance Prelude.NFData RebootBrokerResponse where
+  rnf RebootBrokerResponse' {..} =
+    Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/Types.hs b/gen/Amazonka/MQ/Types.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types.hs
@@ -0,0 +1,381 @@
+{-# LANGUAGE DisambiguateRecordFields #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types
+  ( -- * Service Configuration
+    defaultService,
+
+    -- * Errors
+    _BadRequestException,
+    _ConflictException,
+    _ForbiddenException,
+    _InternalServerErrorException,
+    _NotFoundException,
+    _UnauthorizedException,
+
+    -- * AuthenticationStrategy
+    AuthenticationStrategy (..),
+
+    -- * BrokerState
+    BrokerState (..),
+
+    -- * BrokerStorageType
+    BrokerStorageType (..),
+
+    -- * ChangeType
+    ChangeType (..),
+
+    -- * DayOfWeek
+    DayOfWeek (..),
+
+    -- * DeploymentMode
+    DeploymentMode (..),
+
+    -- * EngineType
+    EngineType (..),
+
+    -- * SanitizationWarningReason
+    SanitizationWarningReason (..),
+
+    -- * ActionRequired
+    ActionRequired (..),
+    newActionRequired,
+    actionRequired_actionRequiredCode,
+    actionRequired_actionRequiredInfo,
+
+    -- * AvailabilityZone
+    AvailabilityZone (..),
+    newAvailabilityZone,
+    availabilityZone_name,
+
+    -- * BrokerEngineType
+    BrokerEngineType (..),
+    newBrokerEngineType,
+    brokerEngineType_engineType,
+    brokerEngineType_engineVersions,
+
+    -- * BrokerInstance
+    BrokerInstance (..),
+    newBrokerInstance,
+    brokerInstance_consoleURL,
+    brokerInstance_endpoints,
+    brokerInstance_ipAddress,
+
+    -- * BrokerInstanceOption
+    BrokerInstanceOption (..),
+    newBrokerInstanceOption,
+    brokerInstanceOption_availabilityZones,
+    brokerInstanceOption_engineType,
+    brokerInstanceOption_hostInstanceType,
+    brokerInstanceOption_storageType,
+    brokerInstanceOption_supportedDeploymentModes,
+    brokerInstanceOption_supportedEngineVersions,
+
+    -- * BrokerSummary
+    BrokerSummary (..),
+    newBrokerSummary,
+    brokerSummary_brokerArn,
+    brokerSummary_brokerId,
+    brokerSummary_brokerName,
+    brokerSummary_brokerState,
+    brokerSummary_created,
+    brokerSummary_hostInstanceType,
+    brokerSummary_deploymentMode,
+    brokerSummary_engineType,
+
+    -- * Configuration
+    Configuration (..),
+    newConfiguration,
+    configuration_tags,
+    configuration_description,
+    configuration_engineVersion,
+    configuration_latestRevision,
+    configuration_authenticationStrategy,
+    configuration_engineType,
+    configuration_id,
+    configuration_arn,
+    configuration_name,
+    configuration_created,
+
+    -- * ConfigurationId
+    ConfigurationId (..),
+    newConfigurationId,
+    configurationId_revision,
+    configurationId_id,
+
+    -- * ConfigurationRevision
+    ConfigurationRevision (..),
+    newConfigurationRevision,
+    configurationRevision_description,
+    configurationRevision_revision,
+    configurationRevision_created,
+
+    -- * Configurations
+    Configurations (..),
+    newConfigurations,
+    configurations_current,
+    configurations_history,
+    configurations_pending,
+
+    -- * EncryptionOptions
+    EncryptionOptions (..),
+    newEncryptionOptions,
+    encryptionOptions_kmsKeyId,
+    encryptionOptions_useAwsOwnedKey,
+
+    -- * EngineVersion
+    EngineVersion (..),
+    newEngineVersion,
+    engineVersion_name,
+
+    -- * LdapServerMetadataInput
+    LdapServerMetadataInput (..),
+    newLdapServerMetadataInput,
+    ldapServerMetadataInput_roleName,
+    ldapServerMetadataInput_roleSearchSubtree,
+    ldapServerMetadataInput_userRoleName,
+    ldapServerMetadataInput_userSearchSubtree,
+    ldapServerMetadataInput_hosts,
+    ldapServerMetadataInput_userSearchMatching,
+    ldapServerMetadataInput_userBase,
+    ldapServerMetadataInput_roleSearchMatching,
+    ldapServerMetadataInput_serviceAccountUsername,
+    ldapServerMetadataInput_roleBase,
+    ldapServerMetadataInput_serviceAccountPassword,
+
+    -- * LdapServerMetadataOutput
+    LdapServerMetadataOutput (..),
+    newLdapServerMetadataOutput,
+    ldapServerMetadataOutput_roleName,
+    ldapServerMetadataOutput_roleSearchSubtree,
+    ldapServerMetadataOutput_userRoleName,
+    ldapServerMetadataOutput_userSearchSubtree,
+    ldapServerMetadataOutput_hosts,
+    ldapServerMetadataOutput_userSearchMatching,
+    ldapServerMetadataOutput_userBase,
+    ldapServerMetadataOutput_roleSearchMatching,
+    ldapServerMetadataOutput_serviceAccountUsername,
+    ldapServerMetadataOutput_roleBase,
+
+    -- * Logs
+    Logs (..),
+    newLogs,
+    logs_audit,
+    logs_general,
+
+    -- * LogsSummary
+    LogsSummary (..),
+    newLogsSummary,
+    logsSummary_audit,
+    logsSummary_auditLogGroup,
+    logsSummary_pending,
+    logsSummary_generalLogGroup,
+    logsSummary_general,
+
+    -- * PendingLogs
+    PendingLogs (..),
+    newPendingLogs,
+    pendingLogs_audit,
+    pendingLogs_general,
+
+    -- * SanitizationWarning
+    SanitizationWarning (..),
+    newSanitizationWarning,
+    sanitizationWarning_attributeName,
+    sanitizationWarning_elementName,
+    sanitizationWarning_reason,
+
+    -- * User
+    User (..),
+    newUser,
+    user_consoleAccess,
+    user_groups,
+    user_username,
+    user_password,
+
+    -- * UserPendingChanges
+    UserPendingChanges (..),
+    newUserPendingChanges,
+    userPendingChanges_consoleAccess,
+    userPendingChanges_groups,
+    userPendingChanges_pendingChange,
+
+    -- * UserSummary
+    UserSummary (..),
+    newUserSummary,
+    userSummary_pendingChange,
+    userSummary_username,
+
+    -- * WeeklyStartTime
+    WeeklyStartTime (..),
+    newWeeklyStartTime,
+    weeklyStartTime_timeZone,
+    weeklyStartTime_timeOfDay,
+    weeklyStartTime_dayOfWeek,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import Amazonka.MQ.Types.ActionRequired
+import Amazonka.MQ.Types.AuthenticationStrategy
+import Amazonka.MQ.Types.AvailabilityZone
+import Amazonka.MQ.Types.BrokerEngineType
+import Amazonka.MQ.Types.BrokerInstance
+import Amazonka.MQ.Types.BrokerInstanceOption
+import Amazonka.MQ.Types.BrokerState
+import Amazonka.MQ.Types.BrokerStorageType
+import Amazonka.MQ.Types.BrokerSummary
+import Amazonka.MQ.Types.ChangeType
+import Amazonka.MQ.Types.Configuration
+import Amazonka.MQ.Types.ConfigurationId
+import Amazonka.MQ.Types.ConfigurationRevision
+import Amazonka.MQ.Types.Configurations
+import Amazonka.MQ.Types.DayOfWeek
+import Amazonka.MQ.Types.DeploymentMode
+import Amazonka.MQ.Types.EncryptionOptions
+import Amazonka.MQ.Types.EngineType
+import Amazonka.MQ.Types.EngineVersion
+import Amazonka.MQ.Types.LdapServerMetadataInput
+import Amazonka.MQ.Types.LdapServerMetadataOutput
+import Amazonka.MQ.Types.Logs
+import Amazonka.MQ.Types.LogsSummary
+import Amazonka.MQ.Types.PendingLogs
+import Amazonka.MQ.Types.SanitizationWarning
+import Amazonka.MQ.Types.SanitizationWarningReason
+import Amazonka.MQ.Types.User
+import Amazonka.MQ.Types.UserPendingChanges
+import Amazonka.MQ.Types.UserSummary
+import Amazonka.MQ.Types.WeeklyStartTime
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Sign.V4 as Sign
+
+-- | API version @2017-11-27@ of the Amazon MQ SDK configuration.
+defaultService :: Core.Service
+defaultService =
+  Core.Service
+    { Core.abbrev = "MQ",
+      Core.signer = Sign.v4,
+      Core.endpointPrefix = "mq",
+      Core.signingName = "mq",
+      Core.version = "2017-11-27",
+      Core.s3AddressingStyle = Core.S3AddressingStyleAuto,
+      Core.endpoint = Core.defaultEndpoint defaultService,
+      Core.timeout = Prelude.Just 70,
+      Core.check = Core.statusSuccess,
+      Core.error = Core.parseJSONError "MQ",
+      Core.retry = retry
+    }
+  where
+    retry =
+      Core.Exponential
+        { Core.base = 5.0e-2,
+          Core.growth = 2,
+          Core.attempts = 5,
+          Core.check = check
+        }
+    check e
+      | Lens.has (Core.hasStatus 502) e =
+          Prelude.Just "bad_gateway"
+      | Lens.has (Core.hasStatus 504) e =
+          Prelude.Just "gateway_timeout"
+      | Lens.has (Core.hasStatus 500) e =
+          Prelude.Just "general_server_error"
+      | Lens.has (Core.hasStatus 509) e =
+          Prelude.Just "limit_exceeded"
+      | Lens.has
+          ( Core.hasCode "RequestThrottledException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "request_throttled_exception"
+      | Lens.has (Core.hasStatus 503) e =
+          Prelude.Just "service_unavailable"
+      | Lens.has
+          ( Core.hasCode "ThrottledException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttled_exception"
+      | Lens.has
+          ( Core.hasCode "Throttling"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttling"
+      | Lens.has
+          ( Core.hasCode "ThrottlingException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throttling_exception"
+      | Lens.has
+          ( Core.hasCode
+              "ProvisionedThroughputExceededException"
+              Prelude.. Core.hasStatus 400
+          )
+          e =
+          Prelude.Just "throughput_exceeded"
+      | Lens.has (Core.hasStatus 429) e =
+          Prelude.Just "too_many_requests"
+      | Prelude.otherwise = Prelude.Nothing
+
+-- | Returns information about an error.
+_BadRequestException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_BadRequestException =
+  Core._MatchServiceError
+    defaultService
+    "BadRequestException"
+    Prelude.. Core.hasStatus 400
+
+-- | Returns information about an error.
+_ConflictException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ConflictException =
+  Core._MatchServiceError
+    defaultService
+    "ConflictException"
+    Prelude.. Core.hasStatus 409
+
+-- | Returns information about an error.
+_ForbiddenException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_ForbiddenException =
+  Core._MatchServiceError
+    defaultService
+    "ForbiddenException"
+    Prelude.. Core.hasStatus 403
+
+-- | Returns information about an error.
+_InternalServerErrorException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_InternalServerErrorException =
+  Core._MatchServiceError
+    defaultService
+    "InternalServerErrorException"
+    Prelude.. Core.hasStatus 500
+
+-- | Returns information about an error.
+_NotFoundException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_NotFoundException =
+  Core._MatchServiceError
+    defaultService
+    "NotFoundException"
+    Prelude.. Core.hasStatus 404
+
+-- | Returns information about an error.
+_UnauthorizedException :: (Core.AsError a) => Lens.Fold a Core.ServiceError
+_UnauthorizedException =
+  Core._MatchServiceError
+    defaultService
+    "UnauthorizedException"
+    Prelude.. Core.hasStatus 401
diff --git a/gen/Amazonka/MQ/Types/ActionRequired.hs b/gen/Amazonka/MQ/Types/ActionRequired.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/ActionRequired.hs
@@ -0,0 +1,107 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.ActionRequired
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.ActionRequired where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The action required to resolve a broker issue when the broker is in a
+-- CRITICAL_ACTION_REQUIRED state.
+--
+-- /See:/ 'newActionRequired' smart constructor.
+data ActionRequired = ActionRequired'
+  { -- | The code you can use to resolve your broker issue when the broker is in
+    -- a CRITICAL_ACTION_REQUIRED state. You can find instructions by choosing
+    -- the link for your code from the list of action required codes in
+    -- <https://docs.aws.amazon.com//latest/developer-guide/troubleshooting-action-required-codes.html Amazon MQ action required codes>.
+    -- Each code references a topic with detailed information, instructions,
+    -- and recommendations for how to resolve the issue and prevent future
+    -- occurrences.
+    actionRequiredCode :: Prelude.Maybe Prelude.Text,
+    -- | Information about the action required to resolve your broker issue when
+    -- the broker is in a CRITICAL_ACTION_REQUIRED state.
+    actionRequiredInfo :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ActionRequired' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'actionRequiredCode', 'actionRequired_actionRequiredCode' - The code you can use to resolve your broker issue when the broker is in
+-- a CRITICAL_ACTION_REQUIRED state. You can find instructions by choosing
+-- the link for your code from the list of action required codes in
+-- <https://docs.aws.amazon.com//latest/developer-guide/troubleshooting-action-required-codes.html Amazon MQ action required codes>.
+-- Each code references a topic with detailed information, instructions,
+-- and recommendations for how to resolve the issue and prevent future
+-- occurrences.
+--
+-- 'actionRequiredInfo', 'actionRequired_actionRequiredInfo' - Information about the action required to resolve your broker issue when
+-- the broker is in a CRITICAL_ACTION_REQUIRED state.
+newActionRequired ::
+  ActionRequired
+newActionRequired =
+  ActionRequired'
+    { actionRequiredCode =
+        Prelude.Nothing,
+      actionRequiredInfo = Prelude.Nothing
+    }
+
+-- | The code you can use to resolve your broker issue when the broker is in
+-- a CRITICAL_ACTION_REQUIRED state. You can find instructions by choosing
+-- the link for your code from the list of action required codes in
+-- <https://docs.aws.amazon.com//latest/developer-guide/troubleshooting-action-required-codes.html Amazon MQ action required codes>.
+-- Each code references a topic with detailed information, instructions,
+-- and recommendations for how to resolve the issue and prevent future
+-- occurrences.
+actionRequired_actionRequiredCode :: Lens.Lens' ActionRequired (Prelude.Maybe Prelude.Text)
+actionRequired_actionRequiredCode = Lens.lens (\ActionRequired' {actionRequiredCode} -> actionRequiredCode) (\s@ActionRequired' {} a -> s {actionRequiredCode = a} :: ActionRequired)
+
+-- | Information about the action required to resolve your broker issue when
+-- the broker is in a CRITICAL_ACTION_REQUIRED state.
+actionRequired_actionRequiredInfo :: Lens.Lens' ActionRequired (Prelude.Maybe Prelude.Text)
+actionRequired_actionRequiredInfo = Lens.lens (\ActionRequired' {actionRequiredInfo} -> actionRequiredInfo) (\s@ActionRequired' {} a -> s {actionRequiredInfo = a} :: ActionRequired)
+
+instance Data.FromJSON ActionRequired where
+  parseJSON =
+    Data.withObject
+      "ActionRequired"
+      ( \x ->
+          ActionRequired'
+            Prelude.<$> (x Data..:? "actionRequiredCode")
+            Prelude.<*> (x Data..:? "actionRequiredInfo")
+      )
+
+instance Prelude.Hashable ActionRequired where
+  hashWithSalt _salt ActionRequired' {..} =
+    _salt
+      `Prelude.hashWithSalt` actionRequiredCode
+      `Prelude.hashWithSalt` actionRequiredInfo
+
+instance Prelude.NFData ActionRequired where
+  rnf ActionRequired' {..} =
+    Prelude.rnf actionRequiredCode
+      `Prelude.seq` Prelude.rnf actionRequiredInfo
diff --git a/gen/Amazonka/MQ/Types/AuthenticationStrategy.hs b/gen/Amazonka/MQ/Types/AuthenticationStrategy.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/AuthenticationStrategy.hs
@@ -0,0 +1,73 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.AuthenticationStrategy
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.AuthenticationStrategy
+  ( AuthenticationStrategy
+      ( ..,
+        AuthenticationStrategy_LDAP,
+        AuthenticationStrategy_SIMPLE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+newtype AuthenticationStrategy = AuthenticationStrategy'
+  { fromAuthenticationStrategy ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern AuthenticationStrategy_LDAP :: AuthenticationStrategy
+pattern AuthenticationStrategy_LDAP = AuthenticationStrategy' "LDAP"
+
+pattern AuthenticationStrategy_SIMPLE :: AuthenticationStrategy
+pattern AuthenticationStrategy_SIMPLE = AuthenticationStrategy' "SIMPLE"
+
+{-# COMPLETE
+  AuthenticationStrategy_LDAP,
+  AuthenticationStrategy_SIMPLE,
+  AuthenticationStrategy'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/AvailabilityZone.hs b/gen/Amazonka/MQ/Types/AvailabilityZone.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/AvailabilityZone.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.AvailabilityZone
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.AvailabilityZone where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Name of the availability zone.
+--
+-- /See:/ 'newAvailabilityZone' smart constructor.
+data AvailabilityZone = AvailabilityZone'
+  { -- | Id for the availability zone.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'AvailabilityZone' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'name', 'availabilityZone_name' - Id for the availability zone.
+newAvailabilityZone ::
+  AvailabilityZone
+newAvailabilityZone =
+  AvailabilityZone' {name = Prelude.Nothing}
+
+-- | Id for the availability zone.
+availabilityZone_name :: Lens.Lens' AvailabilityZone (Prelude.Maybe Prelude.Text)
+availabilityZone_name = Lens.lens (\AvailabilityZone' {name} -> name) (\s@AvailabilityZone' {} a -> s {name = a} :: AvailabilityZone)
+
+instance Data.FromJSON AvailabilityZone where
+  parseJSON =
+    Data.withObject
+      "AvailabilityZone"
+      ( \x ->
+          AvailabilityZone' Prelude.<$> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable AvailabilityZone where
+  hashWithSalt _salt AvailabilityZone' {..} =
+    _salt `Prelude.hashWithSalt` name
+
+instance Prelude.NFData AvailabilityZone where
+  rnf AvailabilityZone' {..} = Prelude.rnf name
diff --git a/gen/Amazonka/MQ/Types/BrokerEngineType.hs b/gen/Amazonka/MQ/Types/BrokerEngineType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/BrokerEngineType.hs
@@ -0,0 +1,89 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.BrokerEngineType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.BrokerEngineType where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.EngineType
+import Amazonka.MQ.Types.EngineVersion
+import qualified Amazonka.Prelude as Prelude
+
+-- | Types of broker engines.
+--
+-- /See:/ 'newBrokerEngineType' smart constructor.
+data BrokerEngineType = BrokerEngineType'
+  { -- | The broker\'s engine type.
+    engineType :: Prelude.Maybe EngineType,
+    -- | The list of engine versions.
+    engineVersions :: Prelude.Maybe [EngineVersion]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BrokerEngineType' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'engineType', 'brokerEngineType_engineType' - The broker\'s engine type.
+--
+-- 'engineVersions', 'brokerEngineType_engineVersions' - The list of engine versions.
+newBrokerEngineType ::
+  BrokerEngineType
+newBrokerEngineType =
+  BrokerEngineType'
+    { engineType = Prelude.Nothing,
+      engineVersions = Prelude.Nothing
+    }
+
+-- | The broker\'s engine type.
+brokerEngineType_engineType :: Lens.Lens' BrokerEngineType (Prelude.Maybe EngineType)
+brokerEngineType_engineType = Lens.lens (\BrokerEngineType' {engineType} -> engineType) (\s@BrokerEngineType' {} a -> s {engineType = a} :: BrokerEngineType)
+
+-- | The list of engine versions.
+brokerEngineType_engineVersions :: Lens.Lens' BrokerEngineType (Prelude.Maybe [EngineVersion])
+brokerEngineType_engineVersions = Lens.lens (\BrokerEngineType' {engineVersions} -> engineVersions) (\s@BrokerEngineType' {} a -> s {engineVersions = a} :: BrokerEngineType) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON BrokerEngineType where
+  parseJSON =
+    Data.withObject
+      "BrokerEngineType"
+      ( \x ->
+          BrokerEngineType'
+            Prelude.<$> (x Data..:? "engineType")
+            Prelude.<*> ( x
+                            Data..:? "engineVersions"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable BrokerEngineType where
+  hashWithSalt _salt BrokerEngineType' {..} =
+    _salt
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` engineVersions
+
+instance Prelude.NFData BrokerEngineType where
+  rnf BrokerEngineType' {..} =
+    Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf engineVersions
diff --git a/gen/Amazonka/MQ/Types/BrokerInstance.hs b/gen/Amazonka/MQ/Types/BrokerInstance.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/BrokerInstance.hs
@@ -0,0 +1,99 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.BrokerInstance
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.BrokerInstance where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about all brokers.
+--
+-- /See:/ 'newBrokerInstance' smart constructor.
+data BrokerInstance = BrokerInstance'
+  { -- | The brokers web console URL.
+    consoleURL :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s wire-level protocol endpoints.
+    endpoints :: Prelude.Maybe [Prelude.Text],
+    -- | The IP address of the Elastic Network Interface (ENI) attached to the
+    -- broker. Does not apply to RabbitMQ brokers.
+    ipAddress :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BrokerInstance' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'consoleURL', 'brokerInstance_consoleURL' - The brokers web console URL.
+--
+-- 'endpoints', 'brokerInstance_endpoints' - The broker\'s wire-level protocol endpoints.
+--
+-- 'ipAddress', 'brokerInstance_ipAddress' - The IP address of the Elastic Network Interface (ENI) attached to the
+-- broker. Does not apply to RabbitMQ brokers.
+newBrokerInstance ::
+  BrokerInstance
+newBrokerInstance =
+  BrokerInstance'
+    { consoleURL = Prelude.Nothing,
+      endpoints = Prelude.Nothing,
+      ipAddress = Prelude.Nothing
+    }
+
+-- | The brokers web console URL.
+brokerInstance_consoleURL :: Lens.Lens' BrokerInstance (Prelude.Maybe Prelude.Text)
+brokerInstance_consoleURL = Lens.lens (\BrokerInstance' {consoleURL} -> consoleURL) (\s@BrokerInstance' {} a -> s {consoleURL = a} :: BrokerInstance)
+
+-- | The broker\'s wire-level protocol endpoints.
+brokerInstance_endpoints :: Lens.Lens' BrokerInstance (Prelude.Maybe [Prelude.Text])
+brokerInstance_endpoints = Lens.lens (\BrokerInstance' {endpoints} -> endpoints) (\s@BrokerInstance' {} a -> s {endpoints = a} :: BrokerInstance) Prelude.. Lens.mapping Lens.coerced
+
+-- | The IP address of the Elastic Network Interface (ENI) attached to the
+-- broker. Does not apply to RabbitMQ brokers.
+brokerInstance_ipAddress :: Lens.Lens' BrokerInstance (Prelude.Maybe Prelude.Text)
+brokerInstance_ipAddress = Lens.lens (\BrokerInstance' {ipAddress} -> ipAddress) (\s@BrokerInstance' {} a -> s {ipAddress = a} :: BrokerInstance)
+
+instance Data.FromJSON BrokerInstance where
+  parseJSON =
+    Data.withObject
+      "BrokerInstance"
+      ( \x ->
+          BrokerInstance'
+            Prelude.<$> (x Data..:? "consoleURL")
+            Prelude.<*> (x Data..:? "endpoints" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "ipAddress")
+      )
+
+instance Prelude.Hashable BrokerInstance where
+  hashWithSalt _salt BrokerInstance' {..} =
+    _salt
+      `Prelude.hashWithSalt` consoleURL
+      `Prelude.hashWithSalt` endpoints
+      `Prelude.hashWithSalt` ipAddress
+
+instance Prelude.NFData BrokerInstance where
+  rnf BrokerInstance' {..} =
+    Prelude.rnf consoleURL
+      `Prelude.seq` Prelude.rnf endpoints
+      `Prelude.seq` Prelude.rnf ipAddress
diff --git a/gen/Amazonka/MQ/Types/BrokerInstanceOption.hs b/gen/Amazonka/MQ/Types/BrokerInstanceOption.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/BrokerInstanceOption.hs
@@ -0,0 +1,146 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.BrokerInstanceOption
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.BrokerInstanceOption where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.AvailabilityZone
+import Amazonka.MQ.Types.BrokerStorageType
+import Amazonka.MQ.Types.DeploymentMode
+import Amazonka.MQ.Types.EngineType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Option for host instance type.
+--
+-- /See:/ 'newBrokerInstanceOption' smart constructor.
+data BrokerInstanceOption = BrokerInstanceOption'
+  { -- | The list of available az.
+    availabilityZones :: Prelude.Maybe [AvailabilityZone],
+    -- | The broker\'s engine type.
+    engineType :: Prelude.Maybe EngineType,
+    -- | The broker\'s instance type.
+    hostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s storage type.
+    storageType :: Prelude.Maybe BrokerStorageType,
+    -- | The list of supported deployment modes.
+    supportedDeploymentModes :: Prelude.Maybe [DeploymentMode],
+    -- | The list of supported engine versions.
+    supportedEngineVersions :: Prelude.Maybe [Prelude.Text]
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BrokerInstanceOption' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'availabilityZones', 'brokerInstanceOption_availabilityZones' - The list of available az.
+--
+-- 'engineType', 'brokerInstanceOption_engineType' - The broker\'s engine type.
+--
+-- 'hostInstanceType', 'brokerInstanceOption_hostInstanceType' - The broker\'s instance type.
+--
+-- 'storageType', 'brokerInstanceOption_storageType' - The broker\'s storage type.
+--
+-- 'supportedDeploymentModes', 'brokerInstanceOption_supportedDeploymentModes' - The list of supported deployment modes.
+--
+-- 'supportedEngineVersions', 'brokerInstanceOption_supportedEngineVersions' - The list of supported engine versions.
+newBrokerInstanceOption ::
+  BrokerInstanceOption
+newBrokerInstanceOption =
+  BrokerInstanceOption'
+    { availabilityZones =
+        Prelude.Nothing,
+      engineType = Prelude.Nothing,
+      hostInstanceType = Prelude.Nothing,
+      storageType = Prelude.Nothing,
+      supportedDeploymentModes = Prelude.Nothing,
+      supportedEngineVersions = Prelude.Nothing
+    }
+
+-- | The list of available az.
+brokerInstanceOption_availabilityZones :: Lens.Lens' BrokerInstanceOption (Prelude.Maybe [AvailabilityZone])
+brokerInstanceOption_availabilityZones = Lens.lens (\BrokerInstanceOption' {availabilityZones} -> availabilityZones) (\s@BrokerInstanceOption' {} a -> s {availabilityZones = a} :: BrokerInstanceOption) Prelude.. Lens.mapping Lens.coerced
+
+-- | The broker\'s engine type.
+brokerInstanceOption_engineType :: Lens.Lens' BrokerInstanceOption (Prelude.Maybe EngineType)
+brokerInstanceOption_engineType = Lens.lens (\BrokerInstanceOption' {engineType} -> engineType) (\s@BrokerInstanceOption' {} a -> s {engineType = a} :: BrokerInstanceOption)
+
+-- | The broker\'s instance type.
+brokerInstanceOption_hostInstanceType :: Lens.Lens' BrokerInstanceOption (Prelude.Maybe Prelude.Text)
+brokerInstanceOption_hostInstanceType = Lens.lens (\BrokerInstanceOption' {hostInstanceType} -> hostInstanceType) (\s@BrokerInstanceOption' {} a -> s {hostInstanceType = a} :: BrokerInstanceOption)
+
+-- | The broker\'s storage type.
+brokerInstanceOption_storageType :: Lens.Lens' BrokerInstanceOption (Prelude.Maybe BrokerStorageType)
+brokerInstanceOption_storageType = Lens.lens (\BrokerInstanceOption' {storageType} -> storageType) (\s@BrokerInstanceOption' {} a -> s {storageType = a} :: BrokerInstanceOption)
+
+-- | The list of supported deployment modes.
+brokerInstanceOption_supportedDeploymentModes :: Lens.Lens' BrokerInstanceOption (Prelude.Maybe [DeploymentMode])
+brokerInstanceOption_supportedDeploymentModes = Lens.lens (\BrokerInstanceOption' {supportedDeploymentModes} -> supportedDeploymentModes) (\s@BrokerInstanceOption' {} a -> s {supportedDeploymentModes = a} :: BrokerInstanceOption) Prelude.. Lens.mapping Lens.coerced
+
+-- | The list of supported engine versions.
+brokerInstanceOption_supportedEngineVersions :: Lens.Lens' BrokerInstanceOption (Prelude.Maybe [Prelude.Text])
+brokerInstanceOption_supportedEngineVersions = Lens.lens (\BrokerInstanceOption' {supportedEngineVersions} -> supportedEngineVersions) (\s@BrokerInstanceOption' {} a -> s {supportedEngineVersions = a} :: BrokerInstanceOption) Prelude.. Lens.mapping Lens.coerced
+
+instance Data.FromJSON BrokerInstanceOption where
+  parseJSON =
+    Data.withObject
+      "BrokerInstanceOption"
+      ( \x ->
+          BrokerInstanceOption'
+            Prelude.<$> ( x
+                            Data..:? "availabilityZones"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> (x Data..:? "engineType")
+            Prelude.<*> (x Data..:? "hostInstanceType")
+            Prelude.<*> (x Data..:? "storageType")
+            Prelude.<*> ( x
+                            Data..:? "supportedDeploymentModes"
+                            Data..!= Prelude.mempty
+                        )
+            Prelude.<*> ( x
+                            Data..:? "supportedEngineVersions"
+                            Data..!= Prelude.mempty
+                        )
+      )
+
+instance Prelude.Hashable BrokerInstanceOption where
+  hashWithSalt _salt BrokerInstanceOption' {..} =
+    _salt
+      `Prelude.hashWithSalt` availabilityZones
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` hostInstanceType
+      `Prelude.hashWithSalt` storageType
+      `Prelude.hashWithSalt` supportedDeploymentModes
+      `Prelude.hashWithSalt` supportedEngineVersions
+
+instance Prelude.NFData BrokerInstanceOption where
+  rnf BrokerInstanceOption' {..} =
+    Prelude.rnf availabilityZones
+      `Prelude.seq` Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf storageType
+      `Prelude.seq` Prelude.rnf supportedDeploymentModes
+      `Prelude.seq` Prelude.rnf supportedEngineVersions
diff --git a/gen/Amazonka/MQ/Types/BrokerState.hs b/gen/Amazonka/MQ/Types/BrokerState.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/BrokerState.hs
@@ -0,0 +1,92 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.BrokerState
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.BrokerState
+  ( BrokerState
+      ( ..,
+        BrokerState_CREATION_FAILED,
+        BrokerState_CREATION_IN_PROGRESS,
+        BrokerState_CRITICAL_ACTION_REQUIRED,
+        BrokerState_DELETION_IN_PROGRESS,
+        BrokerState_REBOOT_IN_PROGRESS,
+        BrokerState_RUNNING
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The broker\'s status.
+newtype BrokerState = BrokerState'
+  { fromBrokerState ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern BrokerState_CREATION_FAILED :: BrokerState
+pattern BrokerState_CREATION_FAILED = BrokerState' "CREATION_FAILED"
+
+pattern BrokerState_CREATION_IN_PROGRESS :: BrokerState
+pattern BrokerState_CREATION_IN_PROGRESS = BrokerState' "CREATION_IN_PROGRESS"
+
+pattern BrokerState_CRITICAL_ACTION_REQUIRED :: BrokerState
+pattern BrokerState_CRITICAL_ACTION_REQUIRED = BrokerState' "CRITICAL_ACTION_REQUIRED"
+
+pattern BrokerState_DELETION_IN_PROGRESS :: BrokerState
+pattern BrokerState_DELETION_IN_PROGRESS = BrokerState' "DELETION_IN_PROGRESS"
+
+pattern BrokerState_REBOOT_IN_PROGRESS :: BrokerState
+pattern BrokerState_REBOOT_IN_PROGRESS = BrokerState' "REBOOT_IN_PROGRESS"
+
+pattern BrokerState_RUNNING :: BrokerState
+pattern BrokerState_RUNNING = BrokerState' "RUNNING"
+
+{-# COMPLETE
+  BrokerState_CREATION_FAILED,
+  BrokerState_CREATION_IN_PROGRESS,
+  BrokerState_CRITICAL_ACTION_REQUIRED,
+  BrokerState_DELETION_IN_PROGRESS,
+  BrokerState_REBOOT_IN_PROGRESS,
+  BrokerState_RUNNING,
+  BrokerState'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/BrokerStorageType.hs b/gen/Amazonka/MQ/Types/BrokerStorageType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/BrokerStorageType.hs
@@ -0,0 +1,74 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.BrokerStorageType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.BrokerStorageType
+  ( BrokerStorageType
+      ( ..,
+        BrokerStorageType_EBS,
+        BrokerStorageType_EFS
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The broker\'s storage type.
+--
+-- EFS is not supported for RabbitMQ engine type.
+newtype BrokerStorageType = BrokerStorageType'
+  { fromBrokerStorageType ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern BrokerStorageType_EBS :: BrokerStorageType
+pattern BrokerStorageType_EBS = BrokerStorageType' "EBS"
+
+pattern BrokerStorageType_EFS :: BrokerStorageType
+pattern BrokerStorageType_EFS = BrokerStorageType' "EFS"
+
+{-# COMPLETE
+  BrokerStorageType_EBS,
+  BrokerStorageType_EFS,
+  BrokerStorageType'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/BrokerSummary.hs b/gen/Amazonka/MQ/Types/BrokerSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/BrokerSummary.hs
@@ -0,0 +1,172 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.BrokerSummary
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.BrokerSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.BrokerState
+import Amazonka.MQ.Types.DeploymentMode
+import Amazonka.MQ.Types.EngineType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about all brokers.
+--
+-- /See:/ 'newBrokerSummary' smart constructor.
+data BrokerSummary = BrokerSummary'
+  { -- | The broker\'s Amazon Resource Name (ARN).
+    brokerArn :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s name. This value is unique in your AWS account, 1-50
+    -- characters long, and containing only letters, numbers, dashes, and
+    -- underscores, and must not contain white spaces, brackets, wildcard
+    -- characters, or special characters.
+    brokerName :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s status.
+    brokerState :: Prelude.Maybe BrokerState,
+    -- | The time when the broker was created.
+    created :: Prelude.Maybe Data.ISO8601,
+    -- | The broker\'s instance type.
+    hostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s deployment mode.
+    deploymentMode :: DeploymentMode,
+    -- | The type of broker engine.
+    engineType :: EngineType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'BrokerSummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'brokerArn', 'brokerSummary_brokerArn' - The broker\'s Amazon Resource Name (ARN).
+--
+-- 'brokerId', 'brokerSummary_brokerId' - The unique ID that Amazon MQ generates for the broker.
+--
+-- 'brokerName', 'brokerSummary_brokerName' - The broker\'s name. This value is unique in your AWS account, 1-50
+-- characters long, and containing only letters, numbers, dashes, and
+-- underscores, and must not contain white spaces, brackets, wildcard
+-- characters, or special characters.
+--
+-- 'brokerState', 'brokerSummary_brokerState' - The broker\'s status.
+--
+-- 'created', 'brokerSummary_created' - The time when the broker was created.
+--
+-- 'hostInstanceType', 'brokerSummary_hostInstanceType' - The broker\'s instance type.
+--
+-- 'deploymentMode', 'brokerSummary_deploymentMode' - The broker\'s deployment mode.
+--
+-- 'engineType', 'brokerSummary_engineType' - The type of broker engine.
+newBrokerSummary ::
+  -- | 'deploymentMode'
+  DeploymentMode ->
+  -- | 'engineType'
+  EngineType ->
+  BrokerSummary
+newBrokerSummary pDeploymentMode_ pEngineType_ =
+  BrokerSummary'
+    { brokerArn = Prelude.Nothing,
+      brokerId = Prelude.Nothing,
+      brokerName = Prelude.Nothing,
+      brokerState = Prelude.Nothing,
+      created = Prelude.Nothing,
+      hostInstanceType = Prelude.Nothing,
+      deploymentMode = pDeploymentMode_,
+      engineType = pEngineType_
+    }
+
+-- | The broker\'s Amazon Resource Name (ARN).
+brokerSummary_brokerArn :: Lens.Lens' BrokerSummary (Prelude.Maybe Prelude.Text)
+brokerSummary_brokerArn = Lens.lens (\BrokerSummary' {brokerArn} -> brokerArn) (\s@BrokerSummary' {} a -> s {brokerArn = a} :: BrokerSummary)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+brokerSummary_brokerId :: Lens.Lens' BrokerSummary (Prelude.Maybe Prelude.Text)
+brokerSummary_brokerId = Lens.lens (\BrokerSummary' {brokerId} -> brokerId) (\s@BrokerSummary' {} a -> s {brokerId = a} :: BrokerSummary)
+
+-- | The broker\'s name. This value is unique in your AWS account, 1-50
+-- characters long, and containing only letters, numbers, dashes, and
+-- underscores, and must not contain white spaces, brackets, wildcard
+-- characters, or special characters.
+brokerSummary_brokerName :: Lens.Lens' BrokerSummary (Prelude.Maybe Prelude.Text)
+brokerSummary_brokerName = Lens.lens (\BrokerSummary' {brokerName} -> brokerName) (\s@BrokerSummary' {} a -> s {brokerName = a} :: BrokerSummary)
+
+-- | The broker\'s status.
+brokerSummary_brokerState :: Lens.Lens' BrokerSummary (Prelude.Maybe BrokerState)
+brokerSummary_brokerState = Lens.lens (\BrokerSummary' {brokerState} -> brokerState) (\s@BrokerSummary' {} a -> s {brokerState = a} :: BrokerSummary)
+
+-- | The time when the broker was created.
+brokerSummary_created :: Lens.Lens' BrokerSummary (Prelude.Maybe Prelude.UTCTime)
+brokerSummary_created = Lens.lens (\BrokerSummary' {created} -> created) (\s@BrokerSummary' {} a -> s {created = a} :: BrokerSummary) Prelude.. Lens.mapping Data._Time
+
+-- | The broker\'s instance type.
+brokerSummary_hostInstanceType :: Lens.Lens' BrokerSummary (Prelude.Maybe Prelude.Text)
+brokerSummary_hostInstanceType = Lens.lens (\BrokerSummary' {hostInstanceType} -> hostInstanceType) (\s@BrokerSummary' {} a -> s {hostInstanceType = a} :: BrokerSummary)
+
+-- | The broker\'s deployment mode.
+brokerSummary_deploymentMode :: Lens.Lens' BrokerSummary DeploymentMode
+brokerSummary_deploymentMode = Lens.lens (\BrokerSummary' {deploymentMode} -> deploymentMode) (\s@BrokerSummary' {} a -> s {deploymentMode = a} :: BrokerSummary)
+
+-- | The type of broker engine.
+brokerSummary_engineType :: Lens.Lens' BrokerSummary EngineType
+brokerSummary_engineType = Lens.lens (\BrokerSummary' {engineType} -> engineType) (\s@BrokerSummary' {} a -> s {engineType = a} :: BrokerSummary)
+
+instance Data.FromJSON BrokerSummary where
+  parseJSON =
+    Data.withObject
+      "BrokerSummary"
+      ( \x ->
+          BrokerSummary'
+            Prelude.<$> (x Data..:? "brokerArn")
+            Prelude.<*> (x Data..:? "brokerId")
+            Prelude.<*> (x Data..:? "brokerName")
+            Prelude.<*> (x Data..:? "brokerState")
+            Prelude.<*> (x Data..:? "created")
+            Prelude.<*> (x Data..:? "hostInstanceType")
+            Prelude.<*> (x Data..: "deploymentMode")
+            Prelude.<*> (x Data..: "engineType")
+      )
+
+instance Prelude.Hashable BrokerSummary where
+  hashWithSalt _salt BrokerSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` brokerArn
+      `Prelude.hashWithSalt` brokerId
+      `Prelude.hashWithSalt` brokerName
+      `Prelude.hashWithSalt` brokerState
+      `Prelude.hashWithSalt` created
+      `Prelude.hashWithSalt` hostInstanceType
+      `Prelude.hashWithSalt` deploymentMode
+      `Prelude.hashWithSalt` engineType
+
+instance Prelude.NFData BrokerSummary where
+  rnf BrokerSummary' {..} =
+    Prelude.rnf brokerArn
+      `Prelude.seq` Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf brokerName
+      `Prelude.seq` Prelude.rnf brokerState
+      `Prelude.seq` Prelude.rnf created
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf deploymentMode
+      `Prelude.seq` Prelude.rnf engineType
diff --git a/gen/Amazonka/MQ/Types/ChangeType.hs b/gen/Amazonka/MQ/Types/ChangeType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/ChangeType.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.ChangeType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.ChangeType
+  ( ChangeType
+      ( ..,
+        ChangeType_CREATE,
+        ChangeType_DELETE,
+        ChangeType_UPDATE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The type of change pending for the ActiveMQ user.
+newtype ChangeType = ChangeType'
+  { fromChangeType ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern ChangeType_CREATE :: ChangeType
+pattern ChangeType_CREATE = ChangeType' "CREATE"
+
+pattern ChangeType_DELETE :: ChangeType
+pattern ChangeType_DELETE = ChangeType' "DELETE"
+
+pattern ChangeType_UPDATE :: ChangeType
+pattern ChangeType_UPDATE = ChangeType' "UPDATE"
+
+{-# COMPLETE
+  ChangeType_CREATE,
+  ChangeType_DELETE,
+  ChangeType_UPDATE,
+  ChangeType'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/Configuration.hs b/gen/Amazonka/MQ/Types/Configuration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/Configuration.hs
@@ -0,0 +1,228 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.Configuration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.Configuration where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.AuthenticationStrategy
+import Amazonka.MQ.Types.ConfigurationRevision
+import Amazonka.MQ.Types.EngineType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about all configurations.
+--
+-- /See:/ 'newConfiguration' smart constructor.
+data Configuration = Configuration'
+  { -- | The list of all tags associated with this configuration.
+    tags :: Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text),
+    -- | Required. The description of the configuration.
+    description :: Prelude.Text,
+    -- | Required. The broker engine\'s version. For a list of supported engine
+    -- versions, see,
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Text,
+    -- | Required. The latest revision of the configuration.
+    latestRevision :: ConfigurationRevision,
+    -- | Optional. The authentication strategy associated with the configuration.
+    -- The default is SIMPLE.
+    authenticationStrategy :: AuthenticationStrategy,
+    -- | Required. The type of broker engine. Currently, Amazon MQ supports
+    -- ACTIVEMQ and RABBITMQ.
+    engineType :: EngineType,
+    -- | Required. The unique ID that Amazon MQ generates for the configuration.
+    id :: Prelude.Text,
+    -- | Required. The ARN of the configuration.
+    arn :: Prelude.Text,
+    -- | Required. The name of the configuration. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 1-150 characters long.
+    name :: Prelude.Text,
+    -- | Required. The date and time of the configuration revision.
+    created :: Data.ISO8601
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Configuration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'tags', 'configuration_tags' - The list of all tags associated with this configuration.
+--
+-- 'description', 'configuration_description' - Required. The description of the configuration.
+--
+-- 'engineVersion', 'configuration_engineVersion' - Required. The broker engine\'s version. For a list of supported engine
+-- versions, see,
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'latestRevision', 'configuration_latestRevision' - Required. The latest revision of the configuration.
+--
+-- 'authenticationStrategy', 'configuration_authenticationStrategy' - Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+--
+-- 'engineType', 'configuration_engineType' - Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+--
+-- 'id', 'configuration_id' - Required. The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'arn', 'configuration_arn' - Required. The ARN of the configuration.
+--
+-- 'name', 'configuration_name' - Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+--
+-- 'created', 'configuration_created' - Required. The date and time of the configuration revision.
+newConfiguration ::
+  -- | 'description'
+  Prelude.Text ->
+  -- | 'engineVersion'
+  Prelude.Text ->
+  -- | 'latestRevision'
+  ConfigurationRevision ->
+  -- | 'authenticationStrategy'
+  AuthenticationStrategy ->
+  -- | 'engineType'
+  EngineType ->
+  -- | 'id'
+  Prelude.Text ->
+  -- | 'arn'
+  Prelude.Text ->
+  -- | 'name'
+  Prelude.Text ->
+  -- | 'created'
+  Prelude.UTCTime ->
+  Configuration
+newConfiguration
+  pDescription_
+  pEngineVersion_
+  pLatestRevision_
+  pAuthenticationStrategy_
+  pEngineType_
+  pId_
+  pArn_
+  pName_
+  pCreated_ =
+    Configuration'
+      { tags = Prelude.Nothing,
+        description = pDescription_,
+        engineVersion = pEngineVersion_,
+        latestRevision = pLatestRevision_,
+        authenticationStrategy = pAuthenticationStrategy_,
+        engineType = pEngineType_,
+        id = pId_,
+        arn = pArn_,
+        name = pName_,
+        created = Data._Time Lens.# pCreated_
+      }
+
+-- | The list of all tags associated with this configuration.
+configuration_tags :: Lens.Lens' Configuration (Prelude.Maybe (Prelude.HashMap Prelude.Text Prelude.Text))
+configuration_tags = Lens.lens (\Configuration' {tags} -> tags) (\s@Configuration' {} a -> s {tags = a} :: Configuration) Prelude.. Lens.mapping Lens.coerced
+
+-- | Required. The description of the configuration.
+configuration_description :: Lens.Lens' Configuration Prelude.Text
+configuration_description = Lens.lens (\Configuration' {description} -> description) (\s@Configuration' {} a -> s {description = a} :: Configuration)
+
+-- | Required. The broker engine\'s version. For a list of supported engine
+-- versions, see,
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+configuration_engineVersion :: Lens.Lens' Configuration Prelude.Text
+configuration_engineVersion = Lens.lens (\Configuration' {engineVersion} -> engineVersion) (\s@Configuration' {} a -> s {engineVersion = a} :: Configuration)
+
+-- | Required. The latest revision of the configuration.
+configuration_latestRevision :: Lens.Lens' Configuration ConfigurationRevision
+configuration_latestRevision = Lens.lens (\Configuration' {latestRevision} -> latestRevision) (\s@Configuration' {} a -> s {latestRevision = a} :: Configuration)
+
+-- | Optional. The authentication strategy associated with the configuration.
+-- The default is SIMPLE.
+configuration_authenticationStrategy :: Lens.Lens' Configuration AuthenticationStrategy
+configuration_authenticationStrategy = Lens.lens (\Configuration' {authenticationStrategy} -> authenticationStrategy) (\s@Configuration' {} a -> s {authenticationStrategy = a} :: Configuration)
+
+-- | Required. The type of broker engine. Currently, Amazon MQ supports
+-- ACTIVEMQ and RABBITMQ.
+configuration_engineType :: Lens.Lens' Configuration EngineType
+configuration_engineType = Lens.lens (\Configuration' {engineType} -> engineType) (\s@Configuration' {} a -> s {engineType = a} :: Configuration)
+
+-- | Required. The unique ID that Amazon MQ generates for the configuration.
+configuration_id :: Lens.Lens' Configuration Prelude.Text
+configuration_id = Lens.lens (\Configuration' {id} -> id) (\s@Configuration' {} a -> s {id = a} :: Configuration)
+
+-- | Required. The ARN of the configuration.
+configuration_arn :: Lens.Lens' Configuration Prelude.Text
+configuration_arn = Lens.lens (\Configuration' {arn} -> arn) (\s@Configuration' {} a -> s {arn = a} :: Configuration)
+
+-- | Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+configuration_name :: Lens.Lens' Configuration Prelude.Text
+configuration_name = Lens.lens (\Configuration' {name} -> name) (\s@Configuration' {} a -> s {name = a} :: Configuration)
+
+-- | Required. The date and time of the configuration revision.
+configuration_created :: Lens.Lens' Configuration Prelude.UTCTime
+configuration_created = Lens.lens (\Configuration' {created} -> created) (\s@Configuration' {} a -> s {created = a} :: Configuration) Prelude.. Data._Time
+
+instance Data.FromJSON Configuration where
+  parseJSON =
+    Data.withObject
+      "Configuration"
+      ( \x ->
+          Configuration'
+            Prelude.<$> (x Data..:? "tags" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..: "description")
+            Prelude.<*> (x Data..: "engineVersion")
+            Prelude.<*> (x Data..: "latestRevision")
+            Prelude.<*> (x Data..: "authenticationStrategy")
+            Prelude.<*> (x Data..: "engineType")
+            Prelude.<*> (x Data..: "id")
+            Prelude.<*> (x Data..: "arn")
+            Prelude.<*> (x Data..: "name")
+            Prelude.<*> (x Data..: "created")
+      )
+
+instance Prelude.Hashable Configuration where
+  hashWithSalt _salt Configuration' {..} =
+    _salt
+      `Prelude.hashWithSalt` tags
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` latestRevision
+      `Prelude.hashWithSalt` authenticationStrategy
+      `Prelude.hashWithSalt` engineType
+      `Prelude.hashWithSalt` id
+      `Prelude.hashWithSalt` arn
+      `Prelude.hashWithSalt` name
+      `Prelude.hashWithSalt` created
+
+instance Prelude.NFData Configuration where
+  rnf Configuration' {..} =
+    Prelude.rnf tags
+      `Prelude.seq` Prelude.rnf description
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf latestRevision
+      `Prelude.seq` Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf engineType
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf created
diff --git a/gen/Amazonka/MQ/Types/ConfigurationId.hs b/gen/Amazonka/MQ/Types/ConfigurationId.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/ConfigurationId.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.ConfigurationId
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.ConfigurationId where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | A list of information about the configuration.
+--
+-- Does not apply to RabbitMQ brokers.
+--
+-- /See:/ 'newConfigurationId' smart constructor.
+data ConfigurationId = ConfigurationId'
+  { -- | The revision number of the configuration.
+    revision :: Prelude.Maybe Prelude.Int,
+    -- | Required. The unique ID that Amazon MQ generates for the configuration.
+    id :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ConfigurationId' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'revision', 'configurationId_revision' - The revision number of the configuration.
+--
+-- 'id', 'configurationId_id' - Required. The unique ID that Amazon MQ generates for the configuration.
+newConfigurationId ::
+  -- | 'id'
+  Prelude.Text ->
+  ConfigurationId
+newConfigurationId pId_ =
+  ConfigurationId'
+    { revision = Prelude.Nothing,
+      id = pId_
+    }
+
+-- | The revision number of the configuration.
+configurationId_revision :: Lens.Lens' ConfigurationId (Prelude.Maybe Prelude.Int)
+configurationId_revision = Lens.lens (\ConfigurationId' {revision} -> revision) (\s@ConfigurationId' {} a -> s {revision = a} :: ConfigurationId)
+
+-- | Required. The unique ID that Amazon MQ generates for the configuration.
+configurationId_id :: Lens.Lens' ConfigurationId Prelude.Text
+configurationId_id = Lens.lens (\ConfigurationId' {id} -> id) (\s@ConfigurationId' {} a -> s {id = a} :: ConfigurationId)
+
+instance Data.FromJSON ConfigurationId where
+  parseJSON =
+    Data.withObject
+      "ConfigurationId"
+      ( \x ->
+          ConfigurationId'
+            Prelude.<$> (x Data..:? "revision")
+            Prelude.<*> (x Data..: "id")
+      )
+
+instance Prelude.Hashable ConfigurationId where
+  hashWithSalt _salt ConfigurationId' {..} =
+    _salt
+      `Prelude.hashWithSalt` revision
+      `Prelude.hashWithSalt` id
+
+instance Prelude.NFData ConfigurationId where
+  rnf ConfigurationId' {..} =
+    Prelude.rnf revision `Prelude.seq` Prelude.rnf id
+
+instance Data.ToJSON ConfigurationId where
+  toJSON ConfigurationId' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("revision" Data..=) Prelude.<$> revision,
+            Prelude.Just ("id" Data..= id)
+          ]
+      )
diff --git a/gen/Amazonka/MQ/Types/ConfigurationRevision.hs b/gen/Amazonka/MQ/Types/ConfigurationRevision.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/ConfigurationRevision.hs
@@ -0,0 +1,101 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.ConfigurationRevision
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.ConfigurationRevision where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the specified configuration revision.
+--
+-- /See:/ 'newConfigurationRevision' smart constructor.
+data ConfigurationRevision = ConfigurationRevision'
+  { -- | The description of the configuration revision.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | Required. The revision number of the configuration.
+    revision :: Prelude.Int,
+    -- | Required. The date and time of the configuration revision.
+    created :: Data.ISO8601
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'ConfigurationRevision' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'description', 'configurationRevision_description' - The description of the configuration revision.
+--
+-- 'revision', 'configurationRevision_revision' - Required. The revision number of the configuration.
+--
+-- 'created', 'configurationRevision_created' - Required. The date and time of the configuration revision.
+newConfigurationRevision ::
+  -- | 'revision'
+  Prelude.Int ->
+  -- | 'created'
+  Prelude.UTCTime ->
+  ConfigurationRevision
+newConfigurationRevision pRevision_ pCreated_ =
+  ConfigurationRevision'
+    { description =
+        Prelude.Nothing,
+      revision = pRevision_,
+      created = Data._Time Lens.# pCreated_
+    }
+
+-- | The description of the configuration revision.
+configurationRevision_description :: Lens.Lens' ConfigurationRevision (Prelude.Maybe Prelude.Text)
+configurationRevision_description = Lens.lens (\ConfigurationRevision' {description} -> description) (\s@ConfigurationRevision' {} a -> s {description = a} :: ConfigurationRevision)
+
+-- | Required. The revision number of the configuration.
+configurationRevision_revision :: Lens.Lens' ConfigurationRevision Prelude.Int
+configurationRevision_revision = Lens.lens (\ConfigurationRevision' {revision} -> revision) (\s@ConfigurationRevision' {} a -> s {revision = a} :: ConfigurationRevision)
+
+-- | Required. The date and time of the configuration revision.
+configurationRevision_created :: Lens.Lens' ConfigurationRevision Prelude.UTCTime
+configurationRevision_created = Lens.lens (\ConfigurationRevision' {created} -> created) (\s@ConfigurationRevision' {} a -> s {created = a} :: ConfigurationRevision) Prelude.. Data._Time
+
+instance Data.FromJSON ConfigurationRevision where
+  parseJSON =
+    Data.withObject
+      "ConfigurationRevision"
+      ( \x ->
+          ConfigurationRevision'
+            Prelude.<$> (x Data..:? "description")
+            Prelude.<*> (x Data..: "revision")
+            Prelude.<*> (x Data..: "created")
+      )
+
+instance Prelude.Hashable ConfigurationRevision where
+  hashWithSalt _salt ConfigurationRevision' {..} =
+    _salt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` revision
+      `Prelude.hashWithSalt` created
+
+instance Prelude.NFData ConfigurationRevision where
+  rnf ConfigurationRevision' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf revision
+      `Prelude.seq` Prelude.rnf created
diff --git a/gen/Amazonka/MQ/Types/Configurations.hs b/gen/Amazonka/MQ/Types/Configurations.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/Configurations.hs
@@ -0,0 +1,97 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.Configurations
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.Configurations where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.ConfigurationId
+import qualified Amazonka.Prelude as Prelude
+
+-- | Broker configuration information
+--
+-- /See:/ 'newConfigurations' smart constructor.
+data Configurations = Configurations'
+  { -- | The broker\'s current configuration.
+    current :: Prelude.Maybe ConfigurationId,
+    -- | The history of configurations applied to the broker.
+    history :: Prelude.Maybe [ConfigurationId],
+    -- | The broker\'s pending configuration.
+    pending :: Prelude.Maybe ConfigurationId
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Configurations' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'current', 'configurations_current' - The broker\'s current configuration.
+--
+-- 'history', 'configurations_history' - The history of configurations applied to the broker.
+--
+-- 'pending', 'configurations_pending' - The broker\'s pending configuration.
+newConfigurations ::
+  Configurations
+newConfigurations =
+  Configurations'
+    { current = Prelude.Nothing,
+      history = Prelude.Nothing,
+      pending = Prelude.Nothing
+    }
+
+-- | The broker\'s current configuration.
+configurations_current :: Lens.Lens' Configurations (Prelude.Maybe ConfigurationId)
+configurations_current = Lens.lens (\Configurations' {current} -> current) (\s@Configurations' {} a -> s {current = a} :: Configurations)
+
+-- | The history of configurations applied to the broker.
+configurations_history :: Lens.Lens' Configurations (Prelude.Maybe [ConfigurationId])
+configurations_history = Lens.lens (\Configurations' {history} -> history) (\s@Configurations' {} a -> s {history = a} :: Configurations) Prelude.. Lens.mapping Lens.coerced
+
+-- | The broker\'s pending configuration.
+configurations_pending :: Lens.Lens' Configurations (Prelude.Maybe ConfigurationId)
+configurations_pending = Lens.lens (\Configurations' {pending} -> pending) (\s@Configurations' {} a -> s {pending = a} :: Configurations)
+
+instance Data.FromJSON Configurations where
+  parseJSON =
+    Data.withObject
+      "Configurations"
+      ( \x ->
+          Configurations'
+            Prelude.<$> (x Data..:? "current")
+            Prelude.<*> (x Data..:? "history" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..:? "pending")
+      )
+
+instance Prelude.Hashable Configurations where
+  hashWithSalt _salt Configurations' {..} =
+    _salt
+      `Prelude.hashWithSalt` current
+      `Prelude.hashWithSalt` history
+      `Prelude.hashWithSalt` pending
+
+instance Prelude.NFData Configurations where
+  rnf Configurations' {..} =
+    Prelude.rnf current
+      `Prelude.seq` Prelude.rnf history
+      `Prelude.seq` Prelude.rnf pending
diff --git a/gen/Amazonka/MQ/Types/DayOfWeek.hs b/gen/Amazonka/MQ/Types/DayOfWeek.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/DayOfWeek.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.DayOfWeek
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.DayOfWeek
+  ( DayOfWeek
+      ( ..,
+        DayOfWeek_FRIDAY,
+        DayOfWeek_MONDAY,
+        DayOfWeek_SATURDAY,
+        DayOfWeek_SUNDAY,
+        DayOfWeek_THURSDAY,
+        DayOfWeek_TUESDAY,
+        DayOfWeek_WEDNESDAY
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+newtype DayOfWeek = DayOfWeek'
+  { fromDayOfWeek ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern DayOfWeek_FRIDAY :: DayOfWeek
+pattern DayOfWeek_FRIDAY = DayOfWeek' "FRIDAY"
+
+pattern DayOfWeek_MONDAY :: DayOfWeek
+pattern DayOfWeek_MONDAY = DayOfWeek' "MONDAY"
+
+pattern DayOfWeek_SATURDAY :: DayOfWeek
+pattern DayOfWeek_SATURDAY = DayOfWeek' "SATURDAY"
+
+pattern DayOfWeek_SUNDAY :: DayOfWeek
+pattern DayOfWeek_SUNDAY = DayOfWeek' "SUNDAY"
+
+pattern DayOfWeek_THURSDAY :: DayOfWeek
+pattern DayOfWeek_THURSDAY = DayOfWeek' "THURSDAY"
+
+pattern DayOfWeek_TUESDAY :: DayOfWeek
+pattern DayOfWeek_TUESDAY = DayOfWeek' "TUESDAY"
+
+pattern DayOfWeek_WEDNESDAY :: DayOfWeek
+pattern DayOfWeek_WEDNESDAY = DayOfWeek' "WEDNESDAY"
+
+{-# COMPLETE
+  DayOfWeek_FRIDAY,
+  DayOfWeek_MONDAY,
+  DayOfWeek_SATURDAY,
+  DayOfWeek_SUNDAY,
+  DayOfWeek_THURSDAY,
+  DayOfWeek_TUESDAY,
+  DayOfWeek_WEDNESDAY,
+  DayOfWeek'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/DeploymentMode.hs b/gen/Amazonka/MQ/Types/DeploymentMode.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/DeploymentMode.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.DeploymentMode
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.DeploymentMode
+  ( DeploymentMode
+      ( ..,
+        DeploymentMode_ACTIVE_STANDBY_MULTI_AZ,
+        DeploymentMode_CLUSTER_MULTI_AZ,
+        DeploymentMode_SINGLE_INSTANCE
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The broker\'s deployment mode.
+newtype DeploymentMode = DeploymentMode'
+  { fromDeploymentMode ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern DeploymentMode_ACTIVE_STANDBY_MULTI_AZ :: DeploymentMode
+pattern DeploymentMode_ACTIVE_STANDBY_MULTI_AZ = DeploymentMode' "ACTIVE_STANDBY_MULTI_AZ"
+
+pattern DeploymentMode_CLUSTER_MULTI_AZ :: DeploymentMode
+pattern DeploymentMode_CLUSTER_MULTI_AZ = DeploymentMode' "CLUSTER_MULTI_AZ"
+
+pattern DeploymentMode_SINGLE_INSTANCE :: DeploymentMode
+pattern DeploymentMode_SINGLE_INSTANCE = DeploymentMode' "SINGLE_INSTANCE"
+
+{-# COMPLETE
+  DeploymentMode_ACTIVE_STANDBY_MULTI_AZ,
+  DeploymentMode_CLUSTER_MULTI_AZ,
+  DeploymentMode_SINGLE_INSTANCE,
+  DeploymentMode'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/EncryptionOptions.hs b/gen/Amazonka/MQ/Types/EncryptionOptions.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/EncryptionOptions.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.EncryptionOptions
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.EncryptionOptions where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Does not apply to RabbitMQ brokers.
+--
+-- Encryption options for the broker.
+--
+-- /See:/ 'newEncryptionOptions' smart constructor.
+data EncryptionOptions = EncryptionOptions'
+  { -- | The customer master key (CMK) to use for the AWS Key Management Service
+    -- (KMS). This key is used to encrypt your data at rest. If not provided,
+    -- Amazon MQ will use a default CMK to encrypt your data.
+    kmsKeyId :: Prelude.Maybe Prelude.Text,
+    -- | Enables the use of an AWS owned CMK using AWS Key Management Service
+    -- (KMS). Set to true by default, if no value is provided, for example, for
+    -- RabbitMQ brokers.
+    useAwsOwnedKey :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EncryptionOptions' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'kmsKeyId', 'encryptionOptions_kmsKeyId' - The customer master key (CMK) to use for the AWS Key Management Service
+-- (KMS). This key is used to encrypt your data at rest. If not provided,
+-- Amazon MQ will use a default CMK to encrypt your data.
+--
+-- 'useAwsOwnedKey', 'encryptionOptions_useAwsOwnedKey' - Enables the use of an AWS owned CMK using AWS Key Management Service
+-- (KMS). Set to true by default, if no value is provided, for example, for
+-- RabbitMQ brokers.
+newEncryptionOptions ::
+  -- | 'useAwsOwnedKey'
+  Prelude.Bool ->
+  EncryptionOptions
+newEncryptionOptions pUseAwsOwnedKey_ =
+  EncryptionOptions'
+    { kmsKeyId = Prelude.Nothing,
+      useAwsOwnedKey = pUseAwsOwnedKey_
+    }
+
+-- | The customer master key (CMK) to use for the AWS Key Management Service
+-- (KMS). This key is used to encrypt your data at rest. If not provided,
+-- Amazon MQ will use a default CMK to encrypt your data.
+encryptionOptions_kmsKeyId :: Lens.Lens' EncryptionOptions (Prelude.Maybe Prelude.Text)
+encryptionOptions_kmsKeyId = Lens.lens (\EncryptionOptions' {kmsKeyId} -> kmsKeyId) (\s@EncryptionOptions' {} a -> s {kmsKeyId = a} :: EncryptionOptions)
+
+-- | Enables the use of an AWS owned CMK using AWS Key Management Service
+-- (KMS). Set to true by default, if no value is provided, for example, for
+-- RabbitMQ brokers.
+encryptionOptions_useAwsOwnedKey :: Lens.Lens' EncryptionOptions Prelude.Bool
+encryptionOptions_useAwsOwnedKey = Lens.lens (\EncryptionOptions' {useAwsOwnedKey} -> useAwsOwnedKey) (\s@EncryptionOptions' {} a -> s {useAwsOwnedKey = a} :: EncryptionOptions)
+
+instance Data.FromJSON EncryptionOptions where
+  parseJSON =
+    Data.withObject
+      "EncryptionOptions"
+      ( \x ->
+          EncryptionOptions'
+            Prelude.<$> (x Data..:? "kmsKeyId")
+            Prelude.<*> (x Data..: "useAwsOwnedKey")
+      )
+
+instance Prelude.Hashable EncryptionOptions where
+  hashWithSalt _salt EncryptionOptions' {..} =
+    _salt
+      `Prelude.hashWithSalt` kmsKeyId
+      `Prelude.hashWithSalt` useAwsOwnedKey
+
+instance Prelude.NFData EncryptionOptions where
+  rnf EncryptionOptions' {..} =
+    Prelude.rnf kmsKeyId
+      `Prelude.seq` Prelude.rnf useAwsOwnedKey
+
+instance Data.ToJSON EncryptionOptions where
+  toJSON EncryptionOptions' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("kmsKeyId" Data..=) Prelude.<$> kmsKeyId,
+            Prelude.Just
+              ("useAwsOwnedKey" Data..= useAwsOwnedKey)
+          ]
+      )
diff --git a/gen/Amazonka/MQ/Types/EngineType.hs b/gen/Amazonka/MQ/Types/EngineType.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/EngineType.hs
@@ -0,0 +1,72 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.EngineType
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.EngineType
+  ( EngineType
+      ( ..,
+        EngineType_ACTIVEMQ,
+        EngineType_RABBITMQ
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The type of broker engine. Amazon MQ supports ActiveMQ and RabbitMQ.
+newtype EngineType = EngineType'
+  { fromEngineType ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern EngineType_ACTIVEMQ :: EngineType
+pattern EngineType_ACTIVEMQ = EngineType' "ACTIVEMQ"
+
+pattern EngineType_RABBITMQ :: EngineType
+pattern EngineType_RABBITMQ = EngineType' "RABBITMQ"
+
+{-# COMPLETE
+  EngineType_ACTIVEMQ,
+  EngineType_RABBITMQ,
+  EngineType'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/EngineVersion.hs b/gen/Amazonka/MQ/Types/EngineVersion.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/EngineVersion.hs
@@ -0,0 +1,67 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.EngineVersion
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.EngineVersion where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Id of the engine version.
+--
+-- /See:/ 'newEngineVersion' smart constructor.
+data EngineVersion = EngineVersion'
+  { -- | Id for the version.
+    name :: Prelude.Maybe Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'EngineVersion' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'name', 'engineVersion_name' - Id for the version.
+newEngineVersion ::
+  EngineVersion
+newEngineVersion =
+  EngineVersion' {name = Prelude.Nothing}
+
+-- | Id for the version.
+engineVersion_name :: Lens.Lens' EngineVersion (Prelude.Maybe Prelude.Text)
+engineVersion_name = Lens.lens (\EngineVersion' {name} -> name) (\s@EngineVersion' {} a -> s {name = a} :: EngineVersion)
+
+instance Data.FromJSON EngineVersion where
+  parseJSON =
+    Data.withObject
+      "EngineVersion"
+      ( \x ->
+          EngineVersion' Prelude.<$> (x Data..:? "name")
+      )
+
+instance Prelude.Hashable EngineVersion where
+  hashWithSalt _salt EngineVersion' {..} =
+    _salt `Prelude.hashWithSalt` name
+
+instance Prelude.NFData EngineVersion where
+  rnf EngineVersion' {..} = Prelude.rnf name
diff --git a/gen/Amazonka/MQ/Types/LdapServerMetadataInput.hs b/gen/Amazonka/MQ/Types/LdapServerMetadataInput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/LdapServerMetadataInput.hs
@@ -0,0 +1,304 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.LdapServerMetadataInput
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.LdapServerMetadataInput where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker.
+--
+-- Does not apply to RabbitMQ brokers.
+--
+-- /See:/ 'newLdapServerMetadataInput' smart constructor.
+data LdapServerMetadataInput = LdapServerMetadataInput'
+  { -- | Specifies the LDAP attribute that identifies the group name attribute in
+    -- the object returned from the group membership query.
+    roleName :: Prelude.Maybe Prelude.Text,
+    -- | The directory search scope for the role. If set to true, scope is to
+    -- search the entire subtree.
+    roleSearchSubtree :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the name of the LDAP attribute for the user group membership.
+    userRoleName :: Prelude.Maybe Prelude.Text,
+    -- | The directory search scope for the user. If set to true, scope is to
+    -- search the entire subtree.
+    userSearchSubtree :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the location of the LDAP server such as AWS Directory Service
+    -- for Microsoft Active Directory . Optional failover server.
+    hosts :: [Prelude.Text],
+    -- | The LDAP search filter used to find users within the userBase. The
+    -- client\'s username is substituted into the {0} placeholder in the search
+    -- filter. For example, if this option is set to (uid={0}) and the received
+    -- username is janedoe, the search filter becomes (uid=janedoe) after
+    -- string substitution. It will result in matching an entry like
+    -- uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example, dc=com.
+    userSearchMatching :: Prelude.Text,
+    -- | Select a particular subtree of the directory information tree (DIT) to
+    -- search for user entries. The subtree is specified by a DN, which
+    -- specifies the base node of the subtree. For example, by setting this
+    -- option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for
+    -- user entries is restricted to the subtree beneath ou=Users, ou=corp,
+    -- dc=corp, dc=example, dc=com.
+    userBase :: Prelude.Text,
+    -- | The LDAP search filter used to find roles within the roleBase. The
+    -- distinguished name of the user matched by userSearchMatching is
+    -- substituted into the {0} placeholder in the search filter. The client\'s
+    -- username is substituted into the {1} placeholder. For example, if you
+    -- set this option to (member=uid={1})for the user janedoe, the search
+    -- filter becomes (member=uid=janedoe) after string substitution. It
+    -- matches all role entries that have a member attribute equal to
+    -- uid=janedoe under the subtree selected by the roleBase.
+    roleSearchMatching :: Prelude.Text,
+    -- | Service account username. A service account is an account in your LDAP
+    -- server that has access to initiate a connection. For example,
+    -- cn=admin,dc=corp, dc=example, dc=com.
+    serviceAccountUsername :: Prelude.Text,
+    -- | The distinguished name of the node in the directory information tree
+    -- (DIT) to search for roles or groups. For example, ou=group, ou=corp,
+    -- dc=corp, dc=example, dc=com.
+    roleBase :: Prelude.Text,
+    -- | Service account password. A service account is an account in your LDAP
+    -- server that has access to initiate a connection. For example,
+    -- cn=admin,dc=corp, dc=example, dc=com.
+    serviceAccountPassword :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LdapServerMetadataInput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleName', 'ldapServerMetadataInput_roleName' - Specifies the LDAP attribute that identifies the group name attribute in
+-- the object returned from the group membership query.
+--
+-- 'roleSearchSubtree', 'ldapServerMetadataInput_roleSearchSubtree' - The directory search scope for the role. If set to true, scope is to
+-- search the entire subtree.
+--
+-- 'userRoleName', 'ldapServerMetadataInput_userRoleName' - Specifies the name of the LDAP attribute for the user group membership.
+--
+-- 'userSearchSubtree', 'ldapServerMetadataInput_userSearchSubtree' - The directory search scope for the user. If set to true, scope is to
+-- search the entire subtree.
+--
+-- 'hosts', 'ldapServerMetadataInput_hosts' - Specifies the location of the LDAP server such as AWS Directory Service
+-- for Microsoft Active Directory . Optional failover server.
+--
+-- 'userSearchMatching', 'ldapServerMetadataInput_userSearchMatching' - The LDAP search filter used to find users within the userBase. The
+-- client\'s username is substituted into the {0} placeholder in the search
+-- filter. For example, if this option is set to (uid={0}) and the received
+-- username is janedoe, the search filter becomes (uid=janedoe) after
+-- string substitution. It will result in matching an entry like
+-- uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example, dc=com.
+--
+-- 'userBase', 'ldapServerMetadataInput_userBase' - Select a particular subtree of the directory information tree (DIT) to
+-- search for user entries. The subtree is specified by a DN, which
+-- specifies the base node of the subtree. For example, by setting this
+-- option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for
+-- user entries is restricted to the subtree beneath ou=Users, ou=corp,
+-- dc=corp, dc=example, dc=com.
+--
+-- 'roleSearchMatching', 'ldapServerMetadataInput_roleSearchMatching' - The LDAP search filter used to find roles within the roleBase. The
+-- distinguished name of the user matched by userSearchMatching is
+-- substituted into the {0} placeholder in the search filter. The client\'s
+-- username is substituted into the {1} placeholder. For example, if you
+-- set this option to (member=uid={1})for the user janedoe, the search
+-- filter becomes (member=uid=janedoe) after string substitution. It
+-- matches all role entries that have a member attribute equal to
+-- uid=janedoe under the subtree selected by the roleBase.
+--
+-- 'serviceAccountUsername', 'ldapServerMetadataInput_serviceAccountUsername' - Service account username. A service account is an account in your LDAP
+-- server that has access to initiate a connection. For example,
+-- cn=admin,dc=corp, dc=example, dc=com.
+--
+-- 'roleBase', 'ldapServerMetadataInput_roleBase' - The distinguished name of the node in the directory information tree
+-- (DIT) to search for roles or groups. For example, ou=group, ou=corp,
+-- dc=corp, dc=example, dc=com.
+--
+-- 'serviceAccountPassword', 'ldapServerMetadataInput_serviceAccountPassword' - Service account password. A service account is an account in your LDAP
+-- server that has access to initiate a connection. For example,
+-- cn=admin,dc=corp, dc=example, dc=com.
+newLdapServerMetadataInput ::
+  -- | 'userSearchMatching'
+  Prelude.Text ->
+  -- | 'userBase'
+  Prelude.Text ->
+  -- | 'roleSearchMatching'
+  Prelude.Text ->
+  -- | 'serviceAccountUsername'
+  Prelude.Text ->
+  -- | 'roleBase'
+  Prelude.Text ->
+  -- | 'serviceAccountPassword'
+  Prelude.Text ->
+  LdapServerMetadataInput
+newLdapServerMetadataInput
+  pUserSearchMatching_
+  pUserBase_
+  pRoleSearchMatching_
+  pServiceAccountUsername_
+  pRoleBase_
+  pServiceAccountPassword_ =
+    LdapServerMetadataInput'
+      { roleName =
+          Prelude.Nothing,
+        roleSearchSubtree = Prelude.Nothing,
+        userRoleName = Prelude.Nothing,
+        userSearchSubtree = Prelude.Nothing,
+        hosts = Prelude.mempty,
+        userSearchMatching = pUserSearchMatching_,
+        userBase = pUserBase_,
+        roleSearchMatching = pRoleSearchMatching_,
+        serviceAccountUsername = pServiceAccountUsername_,
+        roleBase = pRoleBase_,
+        serviceAccountPassword = pServiceAccountPassword_
+      }
+
+-- | Specifies the LDAP attribute that identifies the group name attribute in
+-- the object returned from the group membership query.
+ldapServerMetadataInput_roleName :: Lens.Lens' LdapServerMetadataInput (Prelude.Maybe Prelude.Text)
+ldapServerMetadataInput_roleName = Lens.lens (\LdapServerMetadataInput' {roleName} -> roleName) (\s@LdapServerMetadataInput' {} a -> s {roleName = a} :: LdapServerMetadataInput)
+
+-- | The directory search scope for the role. If set to true, scope is to
+-- search the entire subtree.
+ldapServerMetadataInput_roleSearchSubtree :: Lens.Lens' LdapServerMetadataInput (Prelude.Maybe Prelude.Bool)
+ldapServerMetadataInput_roleSearchSubtree = Lens.lens (\LdapServerMetadataInput' {roleSearchSubtree} -> roleSearchSubtree) (\s@LdapServerMetadataInput' {} a -> s {roleSearchSubtree = a} :: LdapServerMetadataInput)
+
+-- | Specifies the name of the LDAP attribute for the user group membership.
+ldapServerMetadataInput_userRoleName :: Lens.Lens' LdapServerMetadataInput (Prelude.Maybe Prelude.Text)
+ldapServerMetadataInput_userRoleName = Lens.lens (\LdapServerMetadataInput' {userRoleName} -> userRoleName) (\s@LdapServerMetadataInput' {} a -> s {userRoleName = a} :: LdapServerMetadataInput)
+
+-- | The directory search scope for the user. If set to true, scope is to
+-- search the entire subtree.
+ldapServerMetadataInput_userSearchSubtree :: Lens.Lens' LdapServerMetadataInput (Prelude.Maybe Prelude.Bool)
+ldapServerMetadataInput_userSearchSubtree = Lens.lens (\LdapServerMetadataInput' {userSearchSubtree} -> userSearchSubtree) (\s@LdapServerMetadataInput' {} a -> s {userSearchSubtree = a} :: LdapServerMetadataInput)
+
+-- | Specifies the location of the LDAP server such as AWS Directory Service
+-- for Microsoft Active Directory . Optional failover server.
+ldapServerMetadataInput_hosts :: Lens.Lens' LdapServerMetadataInput [Prelude.Text]
+ldapServerMetadataInput_hosts = Lens.lens (\LdapServerMetadataInput' {hosts} -> hosts) (\s@LdapServerMetadataInput' {} a -> s {hosts = a} :: LdapServerMetadataInput) Prelude.. Lens.coerced
+
+-- | The LDAP search filter used to find users within the userBase. The
+-- client\'s username is substituted into the {0} placeholder in the search
+-- filter. For example, if this option is set to (uid={0}) and the received
+-- username is janedoe, the search filter becomes (uid=janedoe) after
+-- string substitution. It will result in matching an entry like
+-- uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example, dc=com.
+ldapServerMetadataInput_userSearchMatching :: Lens.Lens' LdapServerMetadataInput Prelude.Text
+ldapServerMetadataInput_userSearchMatching = Lens.lens (\LdapServerMetadataInput' {userSearchMatching} -> userSearchMatching) (\s@LdapServerMetadataInput' {} a -> s {userSearchMatching = a} :: LdapServerMetadataInput)
+
+-- | Select a particular subtree of the directory information tree (DIT) to
+-- search for user entries. The subtree is specified by a DN, which
+-- specifies the base node of the subtree. For example, by setting this
+-- option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for
+-- user entries is restricted to the subtree beneath ou=Users, ou=corp,
+-- dc=corp, dc=example, dc=com.
+ldapServerMetadataInput_userBase :: Lens.Lens' LdapServerMetadataInput Prelude.Text
+ldapServerMetadataInput_userBase = Lens.lens (\LdapServerMetadataInput' {userBase} -> userBase) (\s@LdapServerMetadataInput' {} a -> s {userBase = a} :: LdapServerMetadataInput)
+
+-- | The LDAP search filter used to find roles within the roleBase. The
+-- distinguished name of the user matched by userSearchMatching is
+-- substituted into the {0} placeholder in the search filter. The client\'s
+-- username is substituted into the {1} placeholder. For example, if you
+-- set this option to (member=uid={1})for the user janedoe, the search
+-- filter becomes (member=uid=janedoe) after string substitution. It
+-- matches all role entries that have a member attribute equal to
+-- uid=janedoe under the subtree selected by the roleBase.
+ldapServerMetadataInput_roleSearchMatching :: Lens.Lens' LdapServerMetadataInput Prelude.Text
+ldapServerMetadataInput_roleSearchMatching = Lens.lens (\LdapServerMetadataInput' {roleSearchMatching} -> roleSearchMatching) (\s@LdapServerMetadataInput' {} a -> s {roleSearchMatching = a} :: LdapServerMetadataInput)
+
+-- | Service account username. A service account is an account in your LDAP
+-- server that has access to initiate a connection. For example,
+-- cn=admin,dc=corp, dc=example, dc=com.
+ldapServerMetadataInput_serviceAccountUsername :: Lens.Lens' LdapServerMetadataInput Prelude.Text
+ldapServerMetadataInput_serviceAccountUsername = Lens.lens (\LdapServerMetadataInput' {serviceAccountUsername} -> serviceAccountUsername) (\s@LdapServerMetadataInput' {} a -> s {serviceAccountUsername = a} :: LdapServerMetadataInput)
+
+-- | The distinguished name of the node in the directory information tree
+-- (DIT) to search for roles or groups. For example, ou=group, ou=corp,
+-- dc=corp, dc=example, dc=com.
+ldapServerMetadataInput_roleBase :: Lens.Lens' LdapServerMetadataInput Prelude.Text
+ldapServerMetadataInput_roleBase = Lens.lens (\LdapServerMetadataInput' {roleBase} -> roleBase) (\s@LdapServerMetadataInput' {} a -> s {roleBase = a} :: LdapServerMetadataInput)
+
+-- | Service account password. A service account is an account in your LDAP
+-- server that has access to initiate a connection. For example,
+-- cn=admin,dc=corp, dc=example, dc=com.
+ldapServerMetadataInput_serviceAccountPassword :: Lens.Lens' LdapServerMetadataInput Prelude.Text
+ldapServerMetadataInput_serviceAccountPassword = Lens.lens (\LdapServerMetadataInput' {serviceAccountPassword} -> serviceAccountPassword) (\s@LdapServerMetadataInput' {} a -> s {serviceAccountPassword = a} :: LdapServerMetadataInput)
+
+instance Prelude.Hashable LdapServerMetadataInput where
+  hashWithSalt _salt LdapServerMetadataInput' {..} =
+    _salt
+      `Prelude.hashWithSalt` roleName
+      `Prelude.hashWithSalt` roleSearchSubtree
+      `Prelude.hashWithSalt` userRoleName
+      `Prelude.hashWithSalt` userSearchSubtree
+      `Prelude.hashWithSalt` hosts
+      `Prelude.hashWithSalt` userSearchMatching
+      `Prelude.hashWithSalt` userBase
+      `Prelude.hashWithSalt` roleSearchMatching
+      `Prelude.hashWithSalt` serviceAccountUsername
+      `Prelude.hashWithSalt` roleBase
+      `Prelude.hashWithSalt` serviceAccountPassword
+
+instance Prelude.NFData LdapServerMetadataInput where
+  rnf LdapServerMetadataInput' {..} =
+    Prelude.rnf roleName
+      `Prelude.seq` Prelude.rnf roleSearchSubtree
+      `Prelude.seq` Prelude.rnf userRoleName
+      `Prelude.seq` Prelude.rnf userSearchSubtree
+      `Prelude.seq` Prelude.rnf hosts
+      `Prelude.seq` Prelude.rnf userSearchMatching
+      `Prelude.seq` Prelude.rnf userBase
+      `Prelude.seq` Prelude.rnf roleSearchMatching
+      `Prelude.seq` Prelude.rnf serviceAccountUsername
+      `Prelude.seq` Prelude.rnf roleBase
+      `Prelude.seq` Prelude.rnf serviceAccountPassword
+
+instance Data.ToJSON LdapServerMetadataInput where
+  toJSON LdapServerMetadataInput' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("roleName" Data..=) Prelude.<$> roleName,
+            ("roleSearchSubtree" Data..=)
+              Prelude.<$> roleSearchSubtree,
+            ("userRoleName" Data..=) Prelude.<$> userRoleName,
+            ("userSearchSubtree" Data..=)
+              Prelude.<$> userSearchSubtree,
+            Prelude.Just ("hosts" Data..= hosts),
+            Prelude.Just
+              ("userSearchMatching" Data..= userSearchMatching),
+            Prelude.Just ("userBase" Data..= userBase),
+            Prelude.Just
+              ("roleSearchMatching" Data..= roleSearchMatching),
+            Prelude.Just
+              ( "serviceAccountUsername"
+                  Data..= serviceAccountUsername
+              ),
+            Prelude.Just ("roleBase" Data..= roleBase),
+            Prelude.Just
+              ( "serviceAccountPassword"
+                  Data..= serviceAccountPassword
+              )
+          ]
+      )
diff --git a/gen/Amazonka/MQ/Types/LdapServerMetadataOutput.hs b/gen/Amazonka/MQ/Types/LdapServerMetadataOutput.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/LdapServerMetadataOutput.hs
@@ -0,0 +1,272 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.LdapServerMetadataOutput
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.LdapServerMetadataOutput where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker.
+--
+-- /See:/ 'newLdapServerMetadataOutput' smart constructor.
+data LdapServerMetadataOutput = LdapServerMetadataOutput'
+  { -- | Specifies the LDAP attribute that identifies the group name attribute in
+    -- the object returned from the group membership query.
+    roleName :: Prelude.Maybe Prelude.Text,
+    -- | The directory search scope for the role. If set to true, scope is to
+    -- search the entire subtree.
+    roleSearchSubtree :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the name of the LDAP attribute for the user group membership.
+    userRoleName :: Prelude.Maybe Prelude.Text,
+    -- | The directory search scope for the user. If set to true, scope is to
+    -- search the entire subtree.
+    userSearchSubtree :: Prelude.Maybe Prelude.Bool,
+    -- | Specifies the location of the LDAP server such as AWS Directory Service
+    -- for Microsoft Active Directory . Optional failover server.
+    hosts :: [Prelude.Text],
+    -- | The LDAP search filter used to find users within the userBase. The
+    -- client\'s username is substituted into the {0} placeholder in the search
+    -- filter. For example, if this option is set to (uid={0}) and the received
+    -- username is janedoe, the search filter becomes (uid=janedoe) after
+    -- string substitution. It will result in matching an entry like
+    -- uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example, dc=com.
+    userSearchMatching :: Prelude.Text,
+    -- | Select a particular subtree of the directory information tree (DIT) to
+    -- search for user entries. The subtree is specified by a DN, which
+    -- specifies the base node of the subtree. For example, by setting this
+    -- option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for
+    -- user entries is restricted to the subtree beneath ou=Users, ou=corp,
+    -- dc=corp, dc=example, dc=com.
+    userBase :: Prelude.Text,
+    -- | The LDAP search filter used to find roles within the roleBase. The
+    -- distinguished name of the user matched by userSearchMatching is
+    -- substituted into the {0} placeholder in the search filter. The client\'s
+    -- username is substituted into the {1} placeholder. For example, if you
+    -- set this option to (member=uid={1})for the user janedoe, the search
+    -- filter becomes (member=uid=janedoe) after string substitution. It
+    -- matches all role entries that have a member attribute equal to
+    -- uid=janedoe under the subtree selected by the roleBase.
+    roleSearchMatching :: Prelude.Text,
+    -- | Service account username. A service account is an account in your LDAP
+    -- server that has access to initiate a connection. For example,
+    -- cn=admin,dc=corp, dc=example, dc=com.
+    serviceAccountUsername :: Prelude.Text,
+    -- | The distinguished name of the node in the directory information tree
+    -- (DIT) to search for roles or groups. For example, ou=group, ou=corp,
+    -- dc=corp, dc=example, dc=com.
+    roleBase :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LdapServerMetadataOutput' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'roleName', 'ldapServerMetadataOutput_roleName' - Specifies the LDAP attribute that identifies the group name attribute in
+-- the object returned from the group membership query.
+--
+-- 'roleSearchSubtree', 'ldapServerMetadataOutput_roleSearchSubtree' - The directory search scope for the role. If set to true, scope is to
+-- search the entire subtree.
+--
+-- 'userRoleName', 'ldapServerMetadataOutput_userRoleName' - Specifies the name of the LDAP attribute for the user group membership.
+--
+-- 'userSearchSubtree', 'ldapServerMetadataOutput_userSearchSubtree' - The directory search scope for the user. If set to true, scope is to
+-- search the entire subtree.
+--
+-- 'hosts', 'ldapServerMetadataOutput_hosts' - Specifies the location of the LDAP server such as AWS Directory Service
+-- for Microsoft Active Directory . Optional failover server.
+--
+-- 'userSearchMatching', 'ldapServerMetadataOutput_userSearchMatching' - The LDAP search filter used to find users within the userBase. The
+-- client\'s username is substituted into the {0} placeholder in the search
+-- filter. For example, if this option is set to (uid={0}) and the received
+-- username is janedoe, the search filter becomes (uid=janedoe) after
+-- string substitution. It will result in matching an entry like
+-- uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example, dc=com.
+--
+-- 'userBase', 'ldapServerMetadataOutput_userBase' - Select a particular subtree of the directory information tree (DIT) to
+-- search for user entries. The subtree is specified by a DN, which
+-- specifies the base node of the subtree. For example, by setting this
+-- option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for
+-- user entries is restricted to the subtree beneath ou=Users, ou=corp,
+-- dc=corp, dc=example, dc=com.
+--
+-- 'roleSearchMatching', 'ldapServerMetadataOutput_roleSearchMatching' - The LDAP search filter used to find roles within the roleBase. The
+-- distinguished name of the user matched by userSearchMatching is
+-- substituted into the {0} placeholder in the search filter. The client\'s
+-- username is substituted into the {1} placeholder. For example, if you
+-- set this option to (member=uid={1})for the user janedoe, the search
+-- filter becomes (member=uid=janedoe) after string substitution. It
+-- matches all role entries that have a member attribute equal to
+-- uid=janedoe under the subtree selected by the roleBase.
+--
+-- 'serviceAccountUsername', 'ldapServerMetadataOutput_serviceAccountUsername' - Service account username. A service account is an account in your LDAP
+-- server that has access to initiate a connection. For example,
+-- cn=admin,dc=corp, dc=example, dc=com.
+--
+-- 'roleBase', 'ldapServerMetadataOutput_roleBase' - The distinguished name of the node in the directory information tree
+-- (DIT) to search for roles or groups. For example, ou=group, ou=corp,
+-- dc=corp, dc=example, dc=com.
+newLdapServerMetadataOutput ::
+  -- | 'userSearchMatching'
+  Prelude.Text ->
+  -- | 'userBase'
+  Prelude.Text ->
+  -- | 'roleSearchMatching'
+  Prelude.Text ->
+  -- | 'serviceAccountUsername'
+  Prelude.Text ->
+  -- | 'roleBase'
+  Prelude.Text ->
+  LdapServerMetadataOutput
+newLdapServerMetadataOutput
+  pUserSearchMatching_
+  pUserBase_
+  pRoleSearchMatching_
+  pServiceAccountUsername_
+  pRoleBase_ =
+    LdapServerMetadataOutput'
+      { roleName =
+          Prelude.Nothing,
+        roleSearchSubtree = Prelude.Nothing,
+        userRoleName = Prelude.Nothing,
+        userSearchSubtree = Prelude.Nothing,
+        hosts = Prelude.mempty,
+        userSearchMatching = pUserSearchMatching_,
+        userBase = pUserBase_,
+        roleSearchMatching = pRoleSearchMatching_,
+        serviceAccountUsername = pServiceAccountUsername_,
+        roleBase = pRoleBase_
+      }
+
+-- | Specifies the LDAP attribute that identifies the group name attribute in
+-- the object returned from the group membership query.
+ldapServerMetadataOutput_roleName :: Lens.Lens' LdapServerMetadataOutput (Prelude.Maybe Prelude.Text)
+ldapServerMetadataOutput_roleName = Lens.lens (\LdapServerMetadataOutput' {roleName} -> roleName) (\s@LdapServerMetadataOutput' {} a -> s {roleName = a} :: LdapServerMetadataOutput)
+
+-- | The directory search scope for the role. If set to true, scope is to
+-- search the entire subtree.
+ldapServerMetadataOutput_roleSearchSubtree :: Lens.Lens' LdapServerMetadataOutput (Prelude.Maybe Prelude.Bool)
+ldapServerMetadataOutput_roleSearchSubtree = Lens.lens (\LdapServerMetadataOutput' {roleSearchSubtree} -> roleSearchSubtree) (\s@LdapServerMetadataOutput' {} a -> s {roleSearchSubtree = a} :: LdapServerMetadataOutput)
+
+-- | Specifies the name of the LDAP attribute for the user group membership.
+ldapServerMetadataOutput_userRoleName :: Lens.Lens' LdapServerMetadataOutput (Prelude.Maybe Prelude.Text)
+ldapServerMetadataOutput_userRoleName = Lens.lens (\LdapServerMetadataOutput' {userRoleName} -> userRoleName) (\s@LdapServerMetadataOutput' {} a -> s {userRoleName = a} :: LdapServerMetadataOutput)
+
+-- | The directory search scope for the user. If set to true, scope is to
+-- search the entire subtree.
+ldapServerMetadataOutput_userSearchSubtree :: Lens.Lens' LdapServerMetadataOutput (Prelude.Maybe Prelude.Bool)
+ldapServerMetadataOutput_userSearchSubtree = Lens.lens (\LdapServerMetadataOutput' {userSearchSubtree} -> userSearchSubtree) (\s@LdapServerMetadataOutput' {} a -> s {userSearchSubtree = a} :: LdapServerMetadataOutput)
+
+-- | Specifies the location of the LDAP server such as AWS Directory Service
+-- for Microsoft Active Directory . Optional failover server.
+ldapServerMetadataOutput_hosts :: Lens.Lens' LdapServerMetadataOutput [Prelude.Text]
+ldapServerMetadataOutput_hosts = Lens.lens (\LdapServerMetadataOutput' {hosts} -> hosts) (\s@LdapServerMetadataOutput' {} a -> s {hosts = a} :: LdapServerMetadataOutput) Prelude.. Lens.coerced
+
+-- | The LDAP search filter used to find users within the userBase. The
+-- client\'s username is substituted into the {0} placeholder in the search
+-- filter. For example, if this option is set to (uid={0}) and the received
+-- username is janedoe, the search filter becomes (uid=janedoe) after
+-- string substitution. It will result in matching an entry like
+-- uid=janedoe, ou=Users,ou=corp, dc=corp, dc=example, dc=com.
+ldapServerMetadataOutput_userSearchMatching :: Lens.Lens' LdapServerMetadataOutput Prelude.Text
+ldapServerMetadataOutput_userSearchMatching = Lens.lens (\LdapServerMetadataOutput' {userSearchMatching} -> userSearchMatching) (\s@LdapServerMetadataOutput' {} a -> s {userSearchMatching = a} :: LdapServerMetadataOutput)
+
+-- | Select a particular subtree of the directory information tree (DIT) to
+-- search for user entries. The subtree is specified by a DN, which
+-- specifies the base node of the subtree. For example, by setting this
+-- option to ou=Users,ou=corp, dc=corp, dc=example, dc=com, the search for
+-- user entries is restricted to the subtree beneath ou=Users, ou=corp,
+-- dc=corp, dc=example, dc=com.
+ldapServerMetadataOutput_userBase :: Lens.Lens' LdapServerMetadataOutput Prelude.Text
+ldapServerMetadataOutput_userBase = Lens.lens (\LdapServerMetadataOutput' {userBase} -> userBase) (\s@LdapServerMetadataOutput' {} a -> s {userBase = a} :: LdapServerMetadataOutput)
+
+-- | The LDAP search filter used to find roles within the roleBase. The
+-- distinguished name of the user matched by userSearchMatching is
+-- substituted into the {0} placeholder in the search filter. The client\'s
+-- username is substituted into the {1} placeholder. For example, if you
+-- set this option to (member=uid={1})for the user janedoe, the search
+-- filter becomes (member=uid=janedoe) after string substitution. It
+-- matches all role entries that have a member attribute equal to
+-- uid=janedoe under the subtree selected by the roleBase.
+ldapServerMetadataOutput_roleSearchMatching :: Lens.Lens' LdapServerMetadataOutput Prelude.Text
+ldapServerMetadataOutput_roleSearchMatching = Lens.lens (\LdapServerMetadataOutput' {roleSearchMatching} -> roleSearchMatching) (\s@LdapServerMetadataOutput' {} a -> s {roleSearchMatching = a} :: LdapServerMetadataOutput)
+
+-- | Service account username. A service account is an account in your LDAP
+-- server that has access to initiate a connection. For example,
+-- cn=admin,dc=corp, dc=example, dc=com.
+ldapServerMetadataOutput_serviceAccountUsername :: Lens.Lens' LdapServerMetadataOutput Prelude.Text
+ldapServerMetadataOutput_serviceAccountUsername = Lens.lens (\LdapServerMetadataOutput' {serviceAccountUsername} -> serviceAccountUsername) (\s@LdapServerMetadataOutput' {} a -> s {serviceAccountUsername = a} :: LdapServerMetadataOutput)
+
+-- | The distinguished name of the node in the directory information tree
+-- (DIT) to search for roles or groups. For example, ou=group, ou=corp,
+-- dc=corp, dc=example, dc=com.
+ldapServerMetadataOutput_roleBase :: Lens.Lens' LdapServerMetadataOutput Prelude.Text
+ldapServerMetadataOutput_roleBase = Lens.lens (\LdapServerMetadataOutput' {roleBase} -> roleBase) (\s@LdapServerMetadataOutput' {} a -> s {roleBase = a} :: LdapServerMetadataOutput)
+
+instance Data.FromJSON LdapServerMetadataOutput where
+  parseJSON =
+    Data.withObject
+      "LdapServerMetadataOutput"
+      ( \x ->
+          LdapServerMetadataOutput'
+            Prelude.<$> (x Data..:? "roleName")
+            Prelude.<*> (x Data..:? "roleSearchSubtree")
+            Prelude.<*> (x Data..:? "userRoleName")
+            Prelude.<*> (x Data..:? "userSearchSubtree")
+            Prelude.<*> (x Data..:? "hosts" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..: "userSearchMatching")
+            Prelude.<*> (x Data..: "userBase")
+            Prelude.<*> (x Data..: "roleSearchMatching")
+            Prelude.<*> (x Data..: "serviceAccountUsername")
+            Prelude.<*> (x Data..: "roleBase")
+      )
+
+instance Prelude.Hashable LdapServerMetadataOutput where
+  hashWithSalt _salt LdapServerMetadataOutput' {..} =
+    _salt
+      `Prelude.hashWithSalt` roleName
+      `Prelude.hashWithSalt` roleSearchSubtree
+      `Prelude.hashWithSalt` userRoleName
+      `Prelude.hashWithSalt` userSearchSubtree
+      `Prelude.hashWithSalt` hosts
+      `Prelude.hashWithSalt` userSearchMatching
+      `Prelude.hashWithSalt` userBase
+      `Prelude.hashWithSalt` roleSearchMatching
+      `Prelude.hashWithSalt` serviceAccountUsername
+      `Prelude.hashWithSalt` roleBase
+
+instance Prelude.NFData LdapServerMetadataOutput where
+  rnf LdapServerMetadataOutput' {..} =
+    Prelude.rnf roleName
+      `Prelude.seq` Prelude.rnf roleSearchSubtree
+      `Prelude.seq` Prelude.rnf userRoleName
+      `Prelude.seq` Prelude.rnf userSearchSubtree
+      `Prelude.seq` Prelude.rnf hosts
+      `Prelude.seq` Prelude.rnf userSearchMatching
+      `Prelude.seq` Prelude.rnf userBase
+      `Prelude.seq` Prelude.rnf roleSearchMatching
+      `Prelude.seq` Prelude.rnf serviceAccountUsername
+      `Prelude.seq` Prelude.rnf roleBase
diff --git a/gen/Amazonka/MQ/Types/Logs.hs b/gen/Amazonka/MQ/Types/Logs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/Logs.hs
@@ -0,0 +1,96 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.Logs
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.Logs where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The list of information about logs to be enabled for the specified
+-- broker.
+--
+-- /See:/ 'newLogs' smart constructor.
+data Logs = Logs'
+  { -- | Enables audit logging. Every user management action made using JMX or
+    -- the ActiveMQ Web Console is logged. Does not apply to RabbitMQ brokers.
+    audit :: Prelude.Maybe Prelude.Bool,
+    -- | Enables general logging.
+    general :: Prelude.Maybe Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'Logs' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'audit', 'logs_audit' - Enables audit logging. Every user management action made using JMX or
+-- the ActiveMQ Web Console is logged. Does not apply to RabbitMQ brokers.
+--
+-- 'general', 'logs_general' - Enables general logging.
+newLogs ::
+  Logs
+newLogs =
+  Logs'
+    { audit = Prelude.Nothing,
+      general = Prelude.Nothing
+    }
+
+-- | Enables audit logging. Every user management action made using JMX or
+-- the ActiveMQ Web Console is logged. Does not apply to RabbitMQ brokers.
+logs_audit :: Lens.Lens' Logs (Prelude.Maybe Prelude.Bool)
+logs_audit = Lens.lens (\Logs' {audit} -> audit) (\s@Logs' {} a -> s {audit = a} :: Logs)
+
+-- | Enables general logging.
+logs_general :: Lens.Lens' Logs (Prelude.Maybe Prelude.Bool)
+logs_general = Lens.lens (\Logs' {general} -> general) (\s@Logs' {} a -> s {general = a} :: Logs)
+
+instance Data.FromJSON Logs where
+  parseJSON =
+    Data.withObject
+      "Logs"
+      ( \x ->
+          Logs'
+            Prelude.<$> (x Data..:? "audit")
+            Prelude.<*> (x Data..:? "general")
+      )
+
+instance Prelude.Hashable Logs where
+  hashWithSalt _salt Logs' {..} =
+    _salt
+      `Prelude.hashWithSalt` audit
+      `Prelude.hashWithSalt` general
+
+instance Prelude.NFData Logs where
+  rnf Logs' {..} =
+    Prelude.rnf audit `Prelude.seq` Prelude.rnf general
+
+instance Data.ToJSON Logs where
+  toJSON Logs' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("audit" Data..=) Prelude.<$> audit,
+            ("general" Data..=) Prelude.<$> general
+          ]
+      )
diff --git a/gen/Amazonka/MQ/Types/LogsSummary.hs b/gen/Amazonka/MQ/Types/LogsSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/LogsSummary.hs
@@ -0,0 +1,135 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.LogsSummary
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.LogsSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.PendingLogs
+import qualified Amazonka.Prelude as Prelude
+
+-- | The list of information about logs currently enabled and pending to be
+-- deployed for the specified broker.
+--
+-- /See:/ 'newLogsSummary' smart constructor.
+data LogsSummary = LogsSummary'
+  { -- | Enables audit logging. Every user management action made using JMX or
+    -- the ActiveMQ Web Console is logged.
+    audit :: Prelude.Maybe Prelude.Bool,
+    -- | The location of the CloudWatch Logs log group where audit logs are sent.
+    auditLogGroup :: Prelude.Maybe Prelude.Text,
+    -- | The list of information about logs pending to be deployed for the
+    -- specified broker.
+    pending :: Prelude.Maybe PendingLogs,
+    -- | The location of the CloudWatch Logs log group where general logs are
+    -- sent.
+    generalLogGroup :: Prelude.Text,
+    -- | Enables general logging.
+    general :: Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'LogsSummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'audit', 'logsSummary_audit' - Enables audit logging. Every user management action made using JMX or
+-- the ActiveMQ Web Console is logged.
+--
+-- 'auditLogGroup', 'logsSummary_auditLogGroup' - The location of the CloudWatch Logs log group where audit logs are sent.
+--
+-- 'pending', 'logsSummary_pending' - The list of information about logs pending to be deployed for the
+-- specified broker.
+--
+-- 'generalLogGroup', 'logsSummary_generalLogGroup' - The location of the CloudWatch Logs log group where general logs are
+-- sent.
+--
+-- 'general', 'logsSummary_general' - Enables general logging.
+newLogsSummary ::
+  -- | 'generalLogGroup'
+  Prelude.Text ->
+  -- | 'general'
+  Prelude.Bool ->
+  LogsSummary
+newLogsSummary pGeneralLogGroup_ pGeneral_ =
+  LogsSummary'
+    { audit = Prelude.Nothing,
+      auditLogGroup = Prelude.Nothing,
+      pending = Prelude.Nothing,
+      generalLogGroup = pGeneralLogGroup_,
+      general = pGeneral_
+    }
+
+-- | Enables audit logging. Every user management action made using JMX or
+-- the ActiveMQ Web Console is logged.
+logsSummary_audit :: Lens.Lens' LogsSummary (Prelude.Maybe Prelude.Bool)
+logsSummary_audit = Lens.lens (\LogsSummary' {audit} -> audit) (\s@LogsSummary' {} a -> s {audit = a} :: LogsSummary)
+
+-- | The location of the CloudWatch Logs log group where audit logs are sent.
+logsSummary_auditLogGroup :: Lens.Lens' LogsSummary (Prelude.Maybe Prelude.Text)
+logsSummary_auditLogGroup = Lens.lens (\LogsSummary' {auditLogGroup} -> auditLogGroup) (\s@LogsSummary' {} a -> s {auditLogGroup = a} :: LogsSummary)
+
+-- | The list of information about logs pending to be deployed for the
+-- specified broker.
+logsSummary_pending :: Lens.Lens' LogsSummary (Prelude.Maybe PendingLogs)
+logsSummary_pending = Lens.lens (\LogsSummary' {pending} -> pending) (\s@LogsSummary' {} a -> s {pending = a} :: LogsSummary)
+
+-- | The location of the CloudWatch Logs log group where general logs are
+-- sent.
+logsSummary_generalLogGroup :: Lens.Lens' LogsSummary Prelude.Text
+logsSummary_generalLogGroup = Lens.lens (\LogsSummary' {generalLogGroup} -> generalLogGroup) (\s@LogsSummary' {} a -> s {generalLogGroup = a} :: LogsSummary)
+
+-- | Enables general logging.
+logsSummary_general :: Lens.Lens' LogsSummary Prelude.Bool
+logsSummary_general = Lens.lens (\LogsSummary' {general} -> general) (\s@LogsSummary' {} a -> s {general = a} :: LogsSummary)
+
+instance Data.FromJSON LogsSummary where
+  parseJSON =
+    Data.withObject
+      "LogsSummary"
+      ( \x ->
+          LogsSummary'
+            Prelude.<$> (x Data..:? "audit")
+            Prelude.<*> (x Data..:? "auditLogGroup")
+            Prelude.<*> (x Data..:? "pending")
+            Prelude.<*> (x Data..: "generalLogGroup")
+            Prelude.<*> (x Data..: "general")
+      )
+
+instance Prelude.Hashable LogsSummary where
+  hashWithSalt _salt LogsSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` audit
+      `Prelude.hashWithSalt` auditLogGroup
+      `Prelude.hashWithSalt` pending
+      `Prelude.hashWithSalt` generalLogGroup
+      `Prelude.hashWithSalt` general
+
+instance Prelude.NFData LogsSummary where
+  rnf LogsSummary' {..} =
+    Prelude.rnf audit
+      `Prelude.seq` Prelude.rnf auditLogGroup
+      `Prelude.seq` Prelude.rnf pending
+      `Prelude.seq` Prelude.rnf generalLogGroup
+      `Prelude.seq` Prelude.rnf general
diff --git a/gen/Amazonka/MQ/Types/PendingLogs.hs b/gen/Amazonka/MQ/Types/PendingLogs.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/PendingLogs.hs
@@ -0,0 +1,87 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.PendingLogs
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.PendingLogs where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The list of information about logs to be enabled for the specified
+-- broker.
+--
+-- /See:/ 'newPendingLogs' smart constructor.
+data PendingLogs = PendingLogs'
+  { -- | Enables audit logging. Every user management action made using JMX or
+    -- the ActiveMQ Web Console is logged.
+    audit :: Prelude.Maybe Prelude.Bool,
+    -- | Enables general logging.
+    general :: Prelude.Maybe Prelude.Bool
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'PendingLogs' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'audit', 'pendingLogs_audit' - Enables audit logging. Every user management action made using JMX or
+-- the ActiveMQ Web Console is logged.
+--
+-- 'general', 'pendingLogs_general' - Enables general logging.
+newPendingLogs ::
+  PendingLogs
+newPendingLogs =
+  PendingLogs'
+    { audit = Prelude.Nothing,
+      general = Prelude.Nothing
+    }
+
+-- | Enables audit logging. Every user management action made using JMX or
+-- the ActiveMQ Web Console is logged.
+pendingLogs_audit :: Lens.Lens' PendingLogs (Prelude.Maybe Prelude.Bool)
+pendingLogs_audit = Lens.lens (\PendingLogs' {audit} -> audit) (\s@PendingLogs' {} a -> s {audit = a} :: PendingLogs)
+
+-- | Enables general logging.
+pendingLogs_general :: Lens.Lens' PendingLogs (Prelude.Maybe Prelude.Bool)
+pendingLogs_general = Lens.lens (\PendingLogs' {general} -> general) (\s@PendingLogs' {} a -> s {general = a} :: PendingLogs)
+
+instance Data.FromJSON PendingLogs where
+  parseJSON =
+    Data.withObject
+      "PendingLogs"
+      ( \x ->
+          PendingLogs'
+            Prelude.<$> (x Data..:? "audit")
+            Prelude.<*> (x Data..:? "general")
+      )
+
+instance Prelude.Hashable PendingLogs where
+  hashWithSalt _salt PendingLogs' {..} =
+    _salt
+      `Prelude.hashWithSalt` audit
+      `Prelude.hashWithSalt` general
+
+instance Prelude.NFData PendingLogs where
+  rnf PendingLogs' {..} =
+    Prelude.rnf audit `Prelude.seq` Prelude.rnf general
diff --git a/gen/Amazonka/MQ/Types/SanitizationWarning.hs b/gen/Amazonka/MQ/Types/SanitizationWarning.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/SanitizationWarning.hs
@@ -0,0 +1,104 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.SanitizationWarning
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.SanitizationWarning where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.SanitizationWarningReason
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the XML element or attribute that was
+-- sanitized in the configuration.
+--
+-- /See:/ 'newSanitizationWarning' smart constructor.
+data SanitizationWarning = SanitizationWarning'
+  { -- | The name of the XML attribute that has been sanitized.
+    attributeName :: Prelude.Maybe Prelude.Text,
+    -- | The name of the XML element that has been sanitized.
+    elementName :: Prelude.Maybe Prelude.Text,
+    -- | Required. The reason for which the XML elements or attributes were
+    -- sanitized.
+    reason :: SanitizationWarningReason
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'SanitizationWarning' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'attributeName', 'sanitizationWarning_attributeName' - The name of the XML attribute that has been sanitized.
+--
+-- 'elementName', 'sanitizationWarning_elementName' - The name of the XML element that has been sanitized.
+--
+-- 'reason', 'sanitizationWarning_reason' - Required. The reason for which the XML elements or attributes were
+-- sanitized.
+newSanitizationWarning ::
+  -- | 'reason'
+  SanitizationWarningReason ->
+  SanitizationWarning
+newSanitizationWarning pReason_ =
+  SanitizationWarning'
+    { attributeName =
+        Prelude.Nothing,
+      elementName = Prelude.Nothing,
+      reason = pReason_
+    }
+
+-- | The name of the XML attribute that has been sanitized.
+sanitizationWarning_attributeName :: Lens.Lens' SanitizationWarning (Prelude.Maybe Prelude.Text)
+sanitizationWarning_attributeName = Lens.lens (\SanitizationWarning' {attributeName} -> attributeName) (\s@SanitizationWarning' {} a -> s {attributeName = a} :: SanitizationWarning)
+
+-- | The name of the XML element that has been sanitized.
+sanitizationWarning_elementName :: Lens.Lens' SanitizationWarning (Prelude.Maybe Prelude.Text)
+sanitizationWarning_elementName = Lens.lens (\SanitizationWarning' {elementName} -> elementName) (\s@SanitizationWarning' {} a -> s {elementName = a} :: SanitizationWarning)
+
+-- | Required. The reason for which the XML elements or attributes were
+-- sanitized.
+sanitizationWarning_reason :: Lens.Lens' SanitizationWarning SanitizationWarningReason
+sanitizationWarning_reason = Lens.lens (\SanitizationWarning' {reason} -> reason) (\s@SanitizationWarning' {} a -> s {reason = a} :: SanitizationWarning)
+
+instance Data.FromJSON SanitizationWarning where
+  parseJSON =
+    Data.withObject
+      "SanitizationWarning"
+      ( \x ->
+          SanitizationWarning'
+            Prelude.<$> (x Data..:? "attributeName")
+            Prelude.<*> (x Data..:? "elementName")
+            Prelude.<*> (x Data..: "reason")
+      )
+
+instance Prelude.Hashable SanitizationWarning where
+  hashWithSalt _salt SanitizationWarning' {..} =
+    _salt
+      `Prelude.hashWithSalt` attributeName
+      `Prelude.hashWithSalt` elementName
+      `Prelude.hashWithSalt` reason
+
+instance Prelude.NFData SanitizationWarning where
+  rnf SanitizationWarning' {..} =
+    Prelude.rnf attributeName
+      `Prelude.seq` Prelude.rnf elementName
+      `Prelude.seq` Prelude.rnf reason
diff --git a/gen/Amazonka/MQ/Types/SanitizationWarningReason.hs b/gen/Amazonka/MQ/Types/SanitizationWarningReason.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/SanitizationWarningReason.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DerivingStrategies #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE LambdaCase #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.SanitizationWarningReason
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.SanitizationWarningReason
+  ( SanitizationWarningReason
+      ( ..,
+        SanitizationWarningReason_DISALLOWED_ATTRIBUTE_REMOVED,
+        SanitizationWarningReason_DISALLOWED_ELEMENT_REMOVED,
+        SanitizationWarningReason_INVALID_ATTRIBUTE_VALUE_REMOVED
+      ),
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | The reason for which the XML elements or attributes were sanitized.
+newtype SanitizationWarningReason = SanitizationWarningReason'
+  { fromSanitizationWarningReason ::
+      Data.Text
+  }
+  deriving stock
+    ( Prelude.Show,
+      Prelude.Read,
+      Prelude.Eq,
+      Prelude.Ord,
+      Prelude.Generic
+    )
+  deriving newtype
+    ( Prelude.Hashable,
+      Prelude.NFData,
+      Data.FromText,
+      Data.ToText,
+      Data.ToByteString,
+      Data.ToLog,
+      Data.ToHeader,
+      Data.ToQuery,
+      Data.FromJSON,
+      Data.FromJSONKey,
+      Data.ToJSON,
+      Data.ToJSONKey,
+      Data.FromXML,
+      Data.ToXML
+    )
+
+pattern SanitizationWarningReason_DISALLOWED_ATTRIBUTE_REMOVED :: SanitizationWarningReason
+pattern SanitizationWarningReason_DISALLOWED_ATTRIBUTE_REMOVED = SanitizationWarningReason' "DISALLOWED_ATTRIBUTE_REMOVED"
+
+pattern SanitizationWarningReason_DISALLOWED_ELEMENT_REMOVED :: SanitizationWarningReason
+pattern SanitizationWarningReason_DISALLOWED_ELEMENT_REMOVED = SanitizationWarningReason' "DISALLOWED_ELEMENT_REMOVED"
+
+pattern SanitizationWarningReason_INVALID_ATTRIBUTE_VALUE_REMOVED :: SanitizationWarningReason
+pattern SanitizationWarningReason_INVALID_ATTRIBUTE_VALUE_REMOVED = SanitizationWarningReason' "INVALID_ATTRIBUTE_VALUE_REMOVED"
+
+{-# COMPLETE
+  SanitizationWarningReason_DISALLOWED_ATTRIBUTE_REMOVED,
+  SanitizationWarningReason_DISALLOWED_ELEMENT_REMOVED,
+  SanitizationWarningReason_INVALID_ATTRIBUTE_VALUE_REMOVED,
+  SanitizationWarningReason'
+  #-}
diff --git a/gen/Amazonka/MQ/Types/User.hs b/gen/Amazonka/MQ/Types/User.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/User.hs
@@ -0,0 +1,177 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.User
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.User where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import qualified Amazonka.Prelude as Prelude
+
+-- | A user associated with the broker. For RabbitMQ brokers, one and only
+-- one administrative user is accepted and created when a broker is first
+-- provisioned. All subsequent broker users are created by making RabbitMQ
+-- API calls directly to brokers or via the RabbitMQ web console.
+--
+-- /See:/ 'newUser' smart constructor.
+data User = User'
+  { -- | Enables access to the ActiveMQ Web Console for the ActiveMQ user. Does
+    -- not apply to RabbitMQ brokers.
+    consoleAccess :: Prelude.Maybe Prelude.Bool,
+    -- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+    -- value can contain only alphanumeric characters, dashes, periods,
+    -- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+    -- long. Does not apply to RabbitMQ brokers.
+    groups :: Prelude.Maybe [Prelude.Text],
+    -- | important>
+    --
+    -- Amazon MQ for ActiveMQ
+    --
+    -- For ActiveMQ brokers, this value can contain only alphanumeric
+    -- characters, dashes, periods, underscores, and tildes (- . _ ~). This
+    -- value must be 2-100 characters long.
+    --
+    -- \/important>
+    --
+    -- Amazon MQ for RabbitMQ
+    --
+    -- For RabbitMQ brokers, this value can contain only alphanumeric
+    -- characters, dashes, periods, underscores (- . _). This value must not
+    -- contain a tilde (~) character. Amazon MQ prohibts using guest as a valid
+    -- usename. This value must be 2-100 characters long.
+    username :: Prelude.Text,
+    -- | Required. The password of the user. This value must be at least 12
+    -- characters long, must contain at least 4 unique characters, and must not
+    -- contain commas, colons, or equal signs (,:=).
+    password :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'User' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'consoleAccess', 'user_consoleAccess' - Enables access to the ActiveMQ Web Console for the ActiveMQ user. Does
+-- not apply to RabbitMQ brokers.
+--
+-- 'groups', 'user_groups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long. Does not apply to RabbitMQ brokers.
+--
+-- 'username', 'user_username' - important>
+--
+-- Amazon MQ for ActiveMQ
+--
+-- For ActiveMQ brokers, this value can contain only alphanumeric
+-- characters, dashes, periods, underscores, and tildes (- . _ ~). This
+-- value must be 2-100 characters long.
+--
+-- \/important>
+--
+-- Amazon MQ for RabbitMQ
+--
+-- For RabbitMQ brokers, this value can contain only alphanumeric
+-- characters, dashes, periods, underscores (- . _). This value must not
+-- contain a tilde (~) character. Amazon MQ prohibts using guest as a valid
+-- usename. This value must be 2-100 characters long.
+--
+-- 'password', 'user_password' - Required. The password of the user. This value must be at least 12
+-- characters long, must contain at least 4 unique characters, and must not
+-- contain commas, colons, or equal signs (,:=).
+newUser ::
+  -- | 'username'
+  Prelude.Text ->
+  -- | 'password'
+  Prelude.Text ->
+  User
+newUser pUsername_ pPassword_ =
+  User'
+    { consoleAccess = Prelude.Nothing,
+      groups = Prelude.Nothing,
+      username = pUsername_,
+      password = pPassword_
+    }
+
+-- | Enables access to the ActiveMQ Web Console for the ActiveMQ user. Does
+-- not apply to RabbitMQ brokers.
+user_consoleAccess :: Lens.Lens' User (Prelude.Maybe Prelude.Bool)
+user_consoleAccess = Lens.lens (\User' {consoleAccess} -> consoleAccess) (\s@User' {} a -> s {consoleAccess = a} :: User)
+
+-- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long. Does not apply to RabbitMQ brokers.
+user_groups :: Lens.Lens' User (Prelude.Maybe [Prelude.Text])
+user_groups = Lens.lens (\User' {groups} -> groups) (\s@User' {} a -> s {groups = a} :: User) Prelude.. Lens.mapping Lens.coerced
+
+-- | important>
+--
+-- Amazon MQ for ActiveMQ
+--
+-- For ActiveMQ brokers, this value can contain only alphanumeric
+-- characters, dashes, periods, underscores, and tildes (- . _ ~). This
+-- value must be 2-100 characters long.
+--
+-- \/important>
+--
+-- Amazon MQ for RabbitMQ
+--
+-- For RabbitMQ brokers, this value can contain only alphanumeric
+-- characters, dashes, periods, underscores (- . _). This value must not
+-- contain a tilde (~) character. Amazon MQ prohibts using guest as a valid
+-- usename. This value must be 2-100 characters long.
+user_username :: Lens.Lens' User Prelude.Text
+user_username = Lens.lens (\User' {username} -> username) (\s@User' {} a -> s {username = a} :: User)
+
+-- | Required. The password of the user. This value must be at least 12
+-- characters long, must contain at least 4 unique characters, and must not
+-- contain commas, colons, or equal signs (,:=).
+user_password :: Lens.Lens' User Prelude.Text
+user_password = Lens.lens (\User' {password} -> password) (\s@User' {} a -> s {password = a} :: User)
+
+instance Prelude.Hashable User where
+  hashWithSalt _salt User' {..} =
+    _salt
+      `Prelude.hashWithSalt` consoleAccess
+      `Prelude.hashWithSalt` groups
+      `Prelude.hashWithSalt` username
+      `Prelude.hashWithSalt` password
+
+instance Prelude.NFData User where
+  rnf User' {..} =
+    Prelude.rnf consoleAccess
+      `Prelude.seq` Prelude.rnf groups
+      `Prelude.seq` Prelude.rnf username
+      `Prelude.seq` Prelude.rnf password
+
+instance Data.ToJSON User where
+  toJSON User' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("consoleAccess" Data..=) Prelude.<$> consoleAccess,
+            ("groups" Data..=) Prelude.<$> groups,
+            Prelude.Just ("username" Data..= username),
+            Prelude.Just ("password" Data..= password)
+          ]
+      )
diff --git a/gen/Amazonka/MQ/Types/UserPendingChanges.hs b/gen/Amazonka/MQ/Types/UserPendingChanges.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/UserPendingChanges.hs
@@ -0,0 +1,110 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.UserPendingChanges
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.UserPendingChanges where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.ChangeType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns information about the status of the changes pending for the
+-- ActiveMQ user.
+--
+-- /See:/ 'newUserPendingChanges' smart constructor.
+data UserPendingChanges = UserPendingChanges'
+  { -- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+    consoleAccess :: Prelude.Maybe Prelude.Bool,
+    -- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+    -- value can contain only alphanumeric characters, dashes, periods,
+    -- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+    -- long.
+    groups :: Prelude.Maybe [Prelude.Text],
+    -- | Required. The type of change pending for the ActiveMQ user.
+    pendingChange :: ChangeType
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UserPendingChanges' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'consoleAccess', 'userPendingChanges_consoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+--
+-- 'groups', 'userPendingChanges_groups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+--
+-- 'pendingChange', 'userPendingChanges_pendingChange' - Required. The type of change pending for the ActiveMQ user.
+newUserPendingChanges ::
+  -- | 'pendingChange'
+  ChangeType ->
+  UserPendingChanges
+newUserPendingChanges pPendingChange_ =
+  UserPendingChanges'
+    { consoleAccess =
+        Prelude.Nothing,
+      groups = Prelude.Nothing,
+      pendingChange = pPendingChange_
+    }
+
+-- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+userPendingChanges_consoleAccess :: Lens.Lens' UserPendingChanges (Prelude.Maybe Prelude.Bool)
+userPendingChanges_consoleAccess = Lens.lens (\UserPendingChanges' {consoleAccess} -> consoleAccess) (\s@UserPendingChanges' {} a -> s {consoleAccess = a} :: UserPendingChanges)
+
+-- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+userPendingChanges_groups :: Lens.Lens' UserPendingChanges (Prelude.Maybe [Prelude.Text])
+userPendingChanges_groups = Lens.lens (\UserPendingChanges' {groups} -> groups) (\s@UserPendingChanges' {} a -> s {groups = a} :: UserPendingChanges) Prelude.. Lens.mapping Lens.coerced
+
+-- | Required. The type of change pending for the ActiveMQ user.
+userPendingChanges_pendingChange :: Lens.Lens' UserPendingChanges ChangeType
+userPendingChanges_pendingChange = Lens.lens (\UserPendingChanges' {pendingChange} -> pendingChange) (\s@UserPendingChanges' {} a -> s {pendingChange = a} :: UserPendingChanges)
+
+instance Data.FromJSON UserPendingChanges where
+  parseJSON =
+    Data.withObject
+      "UserPendingChanges"
+      ( \x ->
+          UserPendingChanges'
+            Prelude.<$> (x Data..:? "consoleAccess")
+            Prelude.<*> (x Data..:? "groups" Data..!= Prelude.mempty)
+            Prelude.<*> (x Data..: "pendingChange")
+      )
+
+instance Prelude.Hashable UserPendingChanges where
+  hashWithSalt _salt UserPendingChanges' {..} =
+    _salt
+      `Prelude.hashWithSalt` consoleAccess
+      `Prelude.hashWithSalt` groups
+      `Prelude.hashWithSalt` pendingChange
+
+instance Prelude.NFData UserPendingChanges where
+  rnf UserPendingChanges' {..} =
+    Prelude.rnf consoleAccess
+      `Prelude.seq` Prelude.rnf groups
+      `Prelude.seq` Prelude.rnf pendingChange
diff --git a/gen/Amazonka/MQ/Types/UserSummary.hs b/gen/Amazonka/MQ/Types/UserSummary.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/UserSummary.hs
@@ -0,0 +1,93 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.UserSummary
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.UserSummary where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.ChangeType
+import qualified Amazonka.Prelude as Prelude
+
+-- | Returns a list of all broker users. Does not apply to RabbitMQ brokers.
+--
+-- /See:/ 'newUserSummary' smart constructor.
+data UserSummary = UserSummary'
+  { -- | The type of change pending for the broker user.
+    pendingChange :: Prelude.Maybe ChangeType,
+    -- | Required. The username of the broker user. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 2-100 characters long.
+    username :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UserSummary' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'pendingChange', 'userSummary_pendingChange' - The type of change pending for the broker user.
+--
+-- 'username', 'userSummary_username' - Required. The username of the broker user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+newUserSummary ::
+  -- | 'username'
+  Prelude.Text ->
+  UserSummary
+newUserSummary pUsername_ =
+  UserSummary'
+    { pendingChange = Prelude.Nothing,
+      username = pUsername_
+    }
+
+-- | The type of change pending for the broker user.
+userSummary_pendingChange :: Lens.Lens' UserSummary (Prelude.Maybe ChangeType)
+userSummary_pendingChange = Lens.lens (\UserSummary' {pendingChange} -> pendingChange) (\s@UserSummary' {} a -> s {pendingChange = a} :: UserSummary)
+
+-- | Required. The username of the broker user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+userSummary_username :: Lens.Lens' UserSummary Prelude.Text
+userSummary_username = Lens.lens (\UserSummary' {username} -> username) (\s@UserSummary' {} a -> s {username = a} :: UserSummary)
+
+instance Data.FromJSON UserSummary where
+  parseJSON =
+    Data.withObject
+      "UserSummary"
+      ( \x ->
+          UserSummary'
+            Prelude.<$> (x Data..:? "pendingChange")
+            Prelude.<*> (x Data..: "username")
+      )
+
+instance Prelude.Hashable UserSummary where
+  hashWithSalt _salt UserSummary' {..} =
+    _salt
+      `Prelude.hashWithSalt` pendingChange
+      `Prelude.hashWithSalt` username
+
+instance Prelude.NFData UserSummary where
+  rnf UserSummary' {..} =
+    Prelude.rnf pendingChange
+      `Prelude.seq` Prelude.rnf username
diff --git a/gen/Amazonka/MQ/Types/WeeklyStartTime.hs b/gen/Amazonka/MQ/Types/WeeklyStartTime.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Types/WeeklyStartTime.hs
@@ -0,0 +1,115 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Types.WeeklyStartTime
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Types.WeeklyStartTime where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types.DayOfWeek
+import qualified Amazonka.Prelude as Prelude
+
+-- | The scheduled time period relative to UTC during which Amazon MQ begins
+-- to apply pending updates or patches to the broker.
+--
+-- /See:/ 'newWeeklyStartTime' smart constructor.
+data WeeklyStartTime = WeeklyStartTime'
+  { -- | The time zone, UTC by default, in either the Country\/City format, or
+    -- the UTC offset format.
+    timeZone :: Prelude.Maybe Prelude.Text,
+    -- | Required. The time, in 24-hour format.
+    timeOfDay :: Prelude.Text,
+    -- | Required. The day of the week.
+    dayOfWeek :: DayOfWeek
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'WeeklyStartTime' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'timeZone', 'weeklyStartTime_timeZone' - The time zone, UTC by default, in either the Country\/City format, or
+-- the UTC offset format.
+--
+-- 'timeOfDay', 'weeklyStartTime_timeOfDay' - Required. The time, in 24-hour format.
+--
+-- 'dayOfWeek', 'weeklyStartTime_dayOfWeek' - Required. The day of the week.
+newWeeklyStartTime ::
+  -- | 'timeOfDay'
+  Prelude.Text ->
+  -- | 'dayOfWeek'
+  DayOfWeek ->
+  WeeklyStartTime
+newWeeklyStartTime pTimeOfDay_ pDayOfWeek_ =
+  WeeklyStartTime'
+    { timeZone = Prelude.Nothing,
+      timeOfDay = pTimeOfDay_,
+      dayOfWeek = pDayOfWeek_
+    }
+
+-- | The time zone, UTC by default, in either the Country\/City format, or
+-- the UTC offset format.
+weeklyStartTime_timeZone :: Lens.Lens' WeeklyStartTime (Prelude.Maybe Prelude.Text)
+weeklyStartTime_timeZone = Lens.lens (\WeeklyStartTime' {timeZone} -> timeZone) (\s@WeeklyStartTime' {} a -> s {timeZone = a} :: WeeklyStartTime)
+
+-- | Required. The time, in 24-hour format.
+weeklyStartTime_timeOfDay :: Lens.Lens' WeeklyStartTime Prelude.Text
+weeklyStartTime_timeOfDay = Lens.lens (\WeeklyStartTime' {timeOfDay} -> timeOfDay) (\s@WeeklyStartTime' {} a -> s {timeOfDay = a} :: WeeklyStartTime)
+
+-- | Required. The day of the week.
+weeklyStartTime_dayOfWeek :: Lens.Lens' WeeklyStartTime DayOfWeek
+weeklyStartTime_dayOfWeek = Lens.lens (\WeeklyStartTime' {dayOfWeek} -> dayOfWeek) (\s@WeeklyStartTime' {} a -> s {dayOfWeek = a} :: WeeklyStartTime)
+
+instance Data.FromJSON WeeklyStartTime where
+  parseJSON =
+    Data.withObject
+      "WeeklyStartTime"
+      ( \x ->
+          WeeklyStartTime'
+            Prelude.<$> (x Data..:? "timeZone")
+            Prelude.<*> (x Data..: "timeOfDay")
+            Prelude.<*> (x Data..: "dayOfWeek")
+      )
+
+instance Prelude.Hashable WeeklyStartTime where
+  hashWithSalt _salt WeeklyStartTime' {..} =
+    _salt
+      `Prelude.hashWithSalt` timeZone
+      `Prelude.hashWithSalt` timeOfDay
+      `Prelude.hashWithSalt` dayOfWeek
+
+instance Prelude.NFData WeeklyStartTime where
+  rnf WeeklyStartTime' {..} =
+    Prelude.rnf timeZone
+      `Prelude.seq` Prelude.rnf timeOfDay
+      `Prelude.seq` Prelude.rnf dayOfWeek
+
+instance Data.ToJSON WeeklyStartTime where
+  toJSON WeeklyStartTime' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("timeZone" Data..=) Prelude.<$> timeZone,
+            Prelude.Just ("timeOfDay" Data..= timeOfDay),
+            Prelude.Just ("dayOfWeek" Data..= dayOfWeek)
+          ]
+      )
diff --git a/gen/Amazonka/MQ/UpdateBroker.hs b/gen/Amazonka/MQ/UpdateBroker.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/UpdateBroker.hs
@@ -0,0 +1,459 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.UpdateBroker
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Adds a pending configuration change to a broker.
+module Amazonka.MQ.UpdateBroker
+  ( -- * Creating a Request
+    UpdateBroker (..),
+    newUpdateBroker,
+
+    -- * Request Lenses
+    updateBroker_authenticationStrategy,
+    updateBroker_autoMinorVersionUpgrade,
+    updateBroker_configuration,
+    updateBroker_engineVersion,
+    updateBroker_hostInstanceType,
+    updateBroker_ldapServerMetadata,
+    updateBroker_logs,
+    updateBroker_maintenanceWindowStartTime,
+    updateBroker_securityGroups,
+    updateBroker_brokerId,
+
+    -- * Destructuring the Response
+    UpdateBrokerResponse (..),
+    newUpdateBrokerResponse,
+
+    -- * Response Lenses
+    updateBrokerResponse_authenticationStrategy,
+    updateBrokerResponse_autoMinorVersionUpgrade,
+    updateBrokerResponse_brokerId,
+    updateBrokerResponse_configuration,
+    updateBrokerResponse_engineVersion,
+    updateBrokerResponse_hostInstanceType,
+    updateBrokerResponse_ldapServerMetadata,
+    updateBrokerResponse_logs,
+    updateBrokerResponse_maintenanceWindowStartTime,
+    updateBrokerResponse_securityGroups,
+    updateBrokerResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | Updates the broker using the specified properties.
+--
+-- /See:/ 'newUpdateBroker' smart constructor.
+data UpdateBroker = UpdateBroker'
+  { -- | Optional. The authentication strategy used to secure the broker. The
+    -- default is SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | Enables automatic upgrades to new minor versions for brokers, as new
+    -- versions are released and supported by Amazon MQ. Automatic upgrades
+    -- occur during the scheduled maintenance window of the broker or after a
+    -- manual broker reboot.
+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | A list of information about the configuration.
+    configuration :: Prelude.Maybe ConfigurationId,
+    -- | The broker engine version. For a list of supported engine versions, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s host instance type to upgrade to. For a list of supported
+    -- instance types, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+    hostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The metadata of the LDAP server used to authenticate and
+    -- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+    ldapServerMetadata :: Prelude.Maybe LdapServerMetadataInput,
+    -- | Enables Amazon CloudWatch logging for brokers.
+    logs :: Prelude.Maybe Logs,
+    -- | The parameters that determine the WeeklyStartTime.
+    maintenanceWindowStartTime :: Prelude.Maybe WeeklyStartTime,
+    -- | The list of security groups (1 minimum, 5 maximum) that authorizes
+    -- connections to brokers.
+    securityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateBroker' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authenticationStrategy', 'updateBroker_authenticationStrategy' - Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+--
+-- 'autoMinorVersionUpgrade', 'updateBroker_autoMinorVersionUpgrade' - Enables automatic upgrades to new minor versions for brokers, as new
+-- versions are released and supported by Amazon MQ. Automatic upgrades
+-- occur during the scheduled maintenance window of the broker or after a
+-- manual broker reboot.
+--
+-- 'configuration', 'updateBroker_configuration' - A list of information about the configuration.
+--
+-- 'engineVersion', 'updateBroker_engineVersion' - The broker engine version. For a list of supported engine versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'hostInstanceType', 'updateBroker_hostInstanceType' - The broker\'s host instance type to upgrade to. For a list of supported
+-- instance types, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+--
+-- 'ldapServerMetadata', 'updateBroker_ldapServerMetadata' - Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+--
+-- 'logs', 'updateBroker_logs' - Enables Amazon CloudWatch logging for brokers.
+--
+-- 'maintenanceWindowStartTime', 'updateBroker_maintenanceWindowStartTime' - The parameters that determine the WeeklyStartTime.
+--
+-- 'securityGroups', 'updateBroker_securityGroups' - The list of security groups (1 minimum, 5 maximum) that authorizes
+-- connections to brokers.
+--
+-- 'brokerId', 'updateBroker_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newUpdateBroker ::
+  -- | 'brokerId'
+  Prelude.Text ->
+  UpdateBroker
+newUpdateBroker pBrokerId_ =
+  UpdateBroker'
+    { authenticationStrategy =
+        Prelude.Nothing,
+      autoMinorVersionUpgrade = Prelude.Nothing,
+      configuration = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      hostInstanceType = Prelude.Nothing,
+      ldapServerMetadata = Prelude.Nothing,
+      logs = Prelude.Nothing,
+      maintenanceWindowStartTime = Prelude.Nothing,
+      securityGroups = Prelude.Nothing,
+      brokerId = pBrokerId_
+    }
+
+-- | Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+updateBroker_authenticationStrategy :: Lens.Lens' UpdateBroker (Prelude.Maybe AuthenticationStrategy)
+updateBroker_authenticationStrategy = Lens.lens (\UpdateBroker' {authenticationStrategy} -> authenticationStrategy) (\s@UpdateBroker' {} a -> s {authenticationStrategy = a} :: UpdateBroker)
+
+-- | Enables automatic upgrades to new minor versions for brokers, as new
+-- versions are released and supported by Amazon MQ. Automatic upgrades
+-- occur during the scheduled maintenance window of the broker or after a
+-- manual broker reboot.
+updateBroker_autoMinorVersionUpgrade :: Lens.Lens' UpdateBroker (Prelude.Maybe Prelude.Bool)
+updateBroker_autoMinorVersionUpgrade = Lens.lens (\UpdateBroker' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@UpdateBroker' {} a -> s {autoMinorVersionUpgrade = a} :: UpdateBroker)
+
+-- | A list of information about the configuration.
+updateBroker_configuration :: Lens.Lens' UpdateBroker (Prelude.Maybe ConfigurationId)
+updateBroker_configuration = Lens.lens (\UpdateBroker' {configuration} -> configuration) (\s@UpdateBroker' {} a -> s {configuration = a} :: UpdateBroker)
+
+-- | The broker engine version. For a list of supported engine versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+updateBroker_engineVersion :: Lens.Lens' UpdateBroker (Prelude.Maybe Prelude.Text)
+updateBroker_engineVersion = Lens.lens (\UpdateBroker' {engineVersion} -> engineVersion) (\s@UpdateBroker' {} a -> s {engineVersion = a} :: UpdateBroker)
+
+-- | The broker\'s host instance type to upgrade to. For a list of supported
+-- instance types, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+updateBroker_hostInstanceType :: Lens.Lens' UpdateBroker (Prelude.Maybe Prelude.Text)
+updateBroker_hostInstanceType = Lens.lens (\UpdateBroker' {hostInstanceType} -> hostInstanceType) (\s@UpdateBroker' {} a -> s {hostInstanceType = a} :: UpdateBroker)
+
+-- | Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+updateBroker_ldapServerMetadata :: Lens.Lens' UpdateBroker (Prelude.Maybe LdapServerMetadataInput)
+updateBroker_ldapServerMetadata = Lens.lens (\UpdateBroker' {ldapServerMetadata} -> ldapServerMetadata) (\s@UpdateBroker' {} a -> s {ldapServerMetadata = a} :: UpdateBroker)
+
+-- | Enables Amazon CloudWatch logging for brokers.
+updateBroker_logs :: Lens.Lens' UpdateBroker (Prelude.Maybe Logs)
+updateBroker_logs = Lens.lens (\UpdateBroker' {logs} -> logs) (\s@UpdateBroker' {} a -> s {logs = a} :: UpdateBroker)
+
+-- | The parameters that determine the WeeklyStartTime.
+updateBroker_maintenanceWindowStartTime :: Lens.Lens' UpdateBroker (Prelude.Maybe WeeklyStartTime)
+updateBroker_maintenanceWindowStartTime = Lens.lens (\UpdateBroker' {maintenanceWindowStartTime} -> maintenanceWindowStartTime) (\s@UpdateBroker' {} a -> s {maintenanceWindowStartTime = a} :: UpdateBroker)
+
+-- | The list of security groups (1 minimum, 5 maximum) that authorizes
+-- connections to brokers.
+updateBroker_securityGroups :: Lens.Lens' UpdateBroker (Prelude.Maybe [Prelude.Text])
+updateBroker_securityGroups = Lens.lens (\UpdateBroker' {securityGroups} -> securityGroups) (\s@UpdateBroker' {} a -> s {securityGroups = a} :: UpdateBroker) Prelude.. Lens.mapping Lens.coerced
+
+-- | The unique ID that Amazon MQ generates for the broker.
+updateBroker_brokerId :: Lens.Lens' UpdateBroker Prelude.Text
+updateBroker_brokerId = Lens.lens (\UpdateBroker' {brokerId} -> brokerId) (\s@UpdateBroker' {} a -> s {brokerId = a} :: UpdateBroker)
+
+instance Core.AWSRequest UpdateBroker where
+  type AWSResponse UpdateBroker = UpdateBrokerResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateBrokerResponse'
+            Prelude.<$> (x Data..?> "authenticationStrategy")
+            Prelude.<*> (x Data..?> "autoMinorVersionUpgrade")
+            Prelude.<*> (x Data..?> "brokerId")
+            Prelude.<*> (x Data..?> "configuration")
+            Prelude.<*> (x Data..?> "engineVersion")
+            Prelude.<*> (x Data..?> "hostInstanceType")
+            Prelude.<*> (x Data..?> "ldapServerMetadata")
+            Prelude.<*> (x Data..?> "logs")
+            Prelude.<*> (x Data..?> "maintenanceWindowStartTime")
+            Prelude.<*> (x Data..?> "securityGroups" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateBroker where
+  hashWithSalt _salt UpdateBroker' {..} =
+    _salt
+      `Prelude.hashWithSalt` authenticationStrategy
+      `Prelude.hashWithSalt` autoMinorVersionUpgrade
+      `Prelude.hashWithSalt` configuration
+      `Prelude.hashWithSalt` engineVersion
+      `Prelude.hashWithSalt` hostInstanceType
+      `Prelude.hashWithSalt` ldapServerMetadata
+      `Prelude.hashWithSalt` logs
+      `Prelude.hashWithSalt` maintenanceWindowStartTime
+      `Prelude.hashWithSalt` securityGroups
+      `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData UpdateBroker where
+  rnf UpdateBroker' {..} =
+    Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf configuration
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf ldapServerMetadata
+      `Prelude.seq` Prelude.rnf logs
+      `Prelude.seq` Prelude.rnf maintenanceWindowStartTime
+      `Prelude.seq` Prelude.rnf securityGroups
+      `Prelude.seq` Prelude.rnf brokerId
+
+instance Data.ToHeaders UpdateBroker where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateBroker where
+  toJSON UpdateBroker' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("authenticationStrategy" Data..=)
+              Prelude.<$> authenticationStrategy,
+            ("autoMinorVersionUpgrade" Data..=)
+              Prelude.<$> autoMinorVersionUpgrade,
+            ("configuration" Data..=) Prelude.<$> configuration,
+            ("engineVersion" Data..=) Prelude.<$> engineVersion,
+            ("hostInstanceType" Data..=)
+              Prelude.<$> hostInstanceType,
+            ("ldapServerMetadata" Data..=)
+              Prelude.<$> ldapServerMetadata,
+            ("logs" Data..=) Prelude.<$> logs,
+            ("maintenanceWindowStartTime" Data..=)
+              Prelude.<$> maintenanceWindowStartTime,
+            ("securityGroups" Data..=)
+              Prelude.<$> securityGroups
+          ]
+      )
+
+instance Data.ToPath UpdateBroker where
+  toPath UpdateBroker' {..} =
+    Prelude.mconcat
+      ["/v1/brokers/", Data.toBS brokerId]
+
+instance Data.ToQuery UpdateBroker where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateBrokerResponse' smart constructor.
+data UpdateBrokerResponse = UpdateBrokerResponse'
+  { -- | Optional. The authentication strategy used to secure the broker. The
+    -- default is SIMPLE.
+    authenticationStrategy :: Prelude.Maybe AuthenticationStrategy,
+    -- | The new boolean value that specifies whether broker engines
+    -- automatically upgrade to new minor versions as new versions are released
+    -- and supported by Amazon MQ.
+    autoMinorVersionUpgrade :: Prelude.Maybe Prelude.Bool,
+    -- | Required. The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Maybe Prelude.Text,
+    -- | The ID of the updated configuration.
+    configuration :: Prelude.Maybe ConfigurationId,
+    -- | The broker engine version to upgrade to. For a list of supported engine
+    -- versions, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+    engineVersion :: Prelude.Maybe Prelude.Text,
+    -- | The broker\'s host instance type to upgrade to. For a list of supported
+    -- instance types, see
+    -- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+    hostInstanceType :: Prelude.Maybe Prelude.Text,
+    -- | Optional. The metadata of the LDAP server used to authenticate and
+    -- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+    ldapServerMetadata :: Prelude.Maybe LdapServerMetadataOutput,
+    -- | The list of information about logs to be enabled for the specified
+    -- broker.
+    logs :: Prelude.Maybe Logs,
+    -- | The parameters that determine the WeeklyStartTime.
+    maintenanceWindowStartTime :: Prelude.Maybe WeeklyStartTime,
+    -- | The list of security groups (1 minimum, 5 maximum) that authorizes
+    -- connections to brokers.
+    securityGroups :: Prelude.Maybe [Prelude.Text],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateBrokerResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'authenticationStrategy', 'updateBrokerResponse_authenticationStrategy' - Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+--
+-- 'autoMinorVersionUpgrade', 'updateBrokerResponse_autoMinorVersionUpgrade' - The new boolean value that specifies whether broker engines
+-- automatically upgrade to new minor versions as new versions are released
+-- and supported by Amazon MQ.
+--
+-- 'brokerId', 'updateBrokerResponse_brokerId' - Required. The unique ID that Amazon MQ generates for the broker.
+--
+-- 'configuration', 'updateBrokerResponse_configuration' - The ID of the updated configuration.
+--
+-- 'engineVersion', 'updateBrokerResponse_engineVersion' - The broker engine version to upgrade to. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+--
+-- 'hostInstanceType', 'updateBrokerResponse_hostInstanceType' - The broker\'s host instance type to upgrade to. For a list of supported
+-- instance types, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+--
+-- 'ldapServerMetadata', 'updateBrokerResponse_ldapServerMetadata' - Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+--
+-- 'logs', 'updateBrokerResponse_logs' - The list of information about logs to be enabled for the specified
+-- broker.
+--
+-- 'maintenanceWindowStartTime', 'updateBrokerResponse_maintenanceWindowStartTime' - The parameters that determine the WeeklyStartTime.
+--
+-- 'securityGroups', 'updateBrokerResponse_securityGroups' - The list of security groups (1 minimum, 5 maximum) that authorizes
+-- connections to brokers.
+--
+-- 'httpStatus', 'updateBrokerResponse_httpStatus' - The response's http status code.
+newUpdateBrokerResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateBrokerResponse
+newUpdateBrokerResponse pHttpStatus_ =
+  UpdateBrokerResponse'
+    { authenticationStrategy =
+        Prelude.Nothing,
+      autoMinorVersionUpgrade = Prelude.Nothing,
+      brokerId = Prelude.Nothing,
+      configuration = Prelude.Nothing,
+      engineVersion = Prelude.Nothing,
+      hostInstanceType = Prelude.Nothing,
+      ldapServerMetadata = Prelude.Nothing,
+      logs = Prelude.Nothing,
+      maintenanceWindowStartTime = Prelude.Nothing,
+      securityGroups = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Optional. The authentication strategy used to secure the broker. The
+-- default is SIMPLE.
+updateBrokerResponse_authenticationStrategy :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe AuthenticationStrategy)
+updateBrokerResponse_authenticationStrategy = Lens.lens (\UpdateBrokerResponse' {authenticationStrategy} -> authenticationStrategy) (\s@UpdateBrokerResponse' {} a -> s {authenticationStrategy = a} :: UpdateBrokerResponse)
+
+-- | The new boolean value that specifies whether broker engines
+-- automatically upgrade to new minor versions as new versions are released
+-- and supported by Amazon MQ.
+updateBrokerResponse_autoMinorVersionUpgrade :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe Prelude.Bool)
+updateBrokerResponse_autoMinorVersionUpgrade = Lens.lens (\UpdateBrokerResponse' {autoMinorVersionUpgrade} -> autoMinorVersionUpgrade) (\s@UpdateBrokerResponse' {} a -> s {autoMinorVersionUpgrade = a} :: UpdateBrokerResponse)
+
+-- | Required. The unique ID that Amazon MQ generates for the broker.
+updateBrokerResponse_brokerId :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe Prelude.Text)
+updateBrokerResponse_brokerId = Lens.lens (\UpdateBrokerResponse' {brokerId} -> brokerId) (\s@UpdateBrokerResponse' {} a -> s {brokerId = a} :: UpdateBrokerResponse)
+
+-- | The ID of the updated configuration.
+updateBrokerResponse_configuration :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe ConfigurationId)
+updateBrokerResponse_configuration = Lens.lens (\UpdateBrokerResponse' {configuration} -> configuration) (\s@UpdateBrokerResponse' {} a -> s {configuration = a} :: UpdateBrokerResponse)
+
+-- | The broker engine version to upgrade to. For a list of supported engine
+-- versions, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker-engine.html Supported engines>.
+updateBrokerResponse_engineVersion :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe Prelude.Text)
+updateBrokerResponse_engineVersion = Lens.lens (\UpdateBrokerResponse' {engineVersion} -> engineVersion) (\s@UpdateBrokerResponse' {} a -> s {engineVersion = a} :: UpdateBrokerResponse)
+
+-- | The broker\'s host instance type to upgrade to. For a list of supported
+-- instance types, see
+-- <https://docs.aws.amazon.com//amazon-mq/latest/developer-guide/broker.html#broker-instance-types Broker instance types>.
+updateBrokerResponse_hostInstanceType :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe Prelude.Text)
+updateBrokerResponse_hostInstanceType = Lens.lens (\UpdateBrokerResponse' {hostInstanceType} -> hostInstanceType) (\s@UpdateBrokerResponse' {} a -> s {hostInstanceType = a} :: UpdateBrokerResponse)
+
+-- | Optional. The metadata of the LDAP server used to authenticate and
+-- authorize connections to the broker. Does not apply to RabbitMQ brokers.
+updateBrokerResponse_ldapServerMetadata :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe LdapServerMetadataOutput)
+updateBrokerResponse_ldapServerMetadata = Lens.lens (\UpdateBrokerResponse' {ldapServerMetadata} -> ldapServerMetadata) (\s@UpdateBrokerResponse' {} a -> s {ldapServerMetadata = a} :: UpdateBrokerResponse)
+
+-- | The list of information about logs to be enabled for the specified
+-- broker.
+updateBrokerResponse_logs :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe Logs)
+updateBrokerResponse_logs = Lens.lens (\UpdateBrokerResponse' {logs} -> logs) (\s@UpdateBrokerResponse' {} a -> s {logs = a} :: UpdateBrokerResponse)
+
+-- | The parameters that determine the WeeklyStartTime.
+updateBrokerResponse_maintenanceWindowStartTime :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe WeeklyStartTime)
+updateBrokerResponse_maintenanceWindowStartTime = Lens.lens (\UpdateBrokerResponse' {maintenanceWindowStartTime} -> maintenanceWindowStartTime) (\s@UpdateBrokerResponse' {} a -> s {maintenanceWindowStartTime = a} :: UpdateBrokerResponse)
+
+-- | The list of security groups (1 minimum, 5 maximum) that authorizes
+-- connections to brokers.
+updateBrokerResponse_securityGroups :: Lens.Lens' UpdateBrokerResponse (Prelude.Maybe [Prelude.Text])
+updateBrokerResponse_securityGroups = Lens.lens (\UpdateBrokerResponse' {securityGroups} -> securityGroups) (\s@UpdateBrokerResponse' {} a -> s {securityGroups = a} :: UpdateBrokerResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+updateBrokerResponse_httpStatus :: Lens.Lens' UpdateBrokerResponse Prelude.Int
+updateBrokerResponse_httpStatus = Lens.lens (\UpdateBrokerResponse' {httpStatus} -> httpStatus) (\s@UpdateBrokerResponse' {} a -> s {httpStatus = a} :: UpdateBrokerResponse)
+
+instance Prelude.NFData UpdateBrokerResponse where
+  rnf UpdateBrokerResponse' {..} =
+    Prelude.rnf authenticationStrategy
+      `Prelude.seq` Prelude.rnf autoMinorVersionUpgrade
+      `Prelude.seq` Prelude.rnf brokerId
+      `Prelude.seq` Prelude.rnf configuration
+      `Prelude.seq` Prelude.rnf engineVersion
+      `Prelude.seq` Prelude.rnf hostInstanceType
+      `Prelude.seq` Prelude.rnf ldapServerMetadata
+      `Prelude.seq` Prelude.rnf logs
+      `Prelude.seq` Prelude.rnf maintenanceWindowStartTime
+      `Prelude.seq` Prelude.rnf securityGroups
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/UpdateConfiguration.hs b/gen/Amazonka/MQ/UpdateConfiguration.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/UpdateConfiguration.hs
@@ -0,0 +1,268 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.UpdateConfiguration
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the specified configuration.
+module Amazonka.MQ.UpdateConfiguration
+  ( -- * Creating a Request
+    UpdateConfiguration (..),
+    newUpdateConfiguration,
+
+    -- * Request Lenses
+    updateConfiguration_description,
+    updateConfiguration_configurationId,
+    updateConfiguration_data,
+
+    -- * Destructuring the Response
+    UpdateConfigurationResponse (..),
+    newUpdateConfigurationResponse,
+
+    -- * Response Lenses
+    updateConfigurationResponse_arn,
+    updateConfigurationResponse_created,
+    updateConfigurationResponse_id,
+    updateConfigurationResponse_latestRevision,
+    updateConfigurationResponse_name,
+    updateConfigurationResponse_warnings,
+    updateConfigurationResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | Updates the specified configuration.
+--
+-- /See:/ 'newUpdateConfiguration' smart constructor.
+data UpdateConfiguration = UpdateConfiguration'
+  { -- | The description of the configuration.
+    description :: Prelude.Maybe Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the configuration.
+    configurationId :: Prelude.Text,
+    -- | Required. The base64-encoded XML configuration.
+    data' :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateConfiguration' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'description', 'updateConfiguration_description' - The description of the configuration.
+--
+-- 'configurationId', 'updateConfiguration_configurationId' - The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'data'', 'updateConfiguration_data' - Required. The base64-encoded XML configuration.
+newUpdateConfiguration ::
+  -- | 'configurationId'
+  Prelude.Text ->
+  -- | 'data''
+  Prelude.Text ->
+  UpdateConfiguration
+newUpdateConfiguration pConfigurationId_ pData_ =
+  UpdateConfiguration'
+    { description = Prelude.Nothing,
+      configurationId = pConfigurationId_,
+      data' = pData_
+    }
+
+-- | The description of the configuration.
+updateConfiguration_description :: Lens.Lens' UpdateConfiguration (Prelude.Maybe Prelude.Text)
+updateConfiguration_description = Lens.lens (\UpdateConfiguration' {description} -> description) (\s@UpdateConfiguration' {} a -> s {description = a} :: UpdateConfiguration)
+
+-- | The unique ID that Amazon MQ generates for the configuration.
+updateConfiguration_configurationId :: Lens.Lens' UpdateConfiguration Prelude.Text
+updateConfiguration_configurationId = Lens.lens (\UpdateConfiguration' {configurationId} -> configurationId) (\s@UpdateConfiguration' {} a -> s {configurationId = a} :: UpdateConfiguration)
+
+-- | Required. The base64-encoded XML configuration.
+updateConfiguration_data :: Lens.Lens' UpdateConfiguration Prelude.Text
+updateConfiguration_data = Lens.lens (\UpdateConfiguration' {data'} -> data') (\s@UpdateConfiguration' {} a -> s {data' = a} :: UpdateConfiguration)
+
+instance Core.AWSRequest UpdateConfiguration where
+  type
+    AWSResponse UpdateConfiguration =
+      UpdateConfigurationResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveJSON
+      ( \s h x ->
+          UpdateConfigurationResponse'
+            Prelude.<$> (x Data..?> "arn")
+            Prelude.<*> (x Data..?> "created")
+            Prelude.<*> (x Data..?> "id")
+            Prelude.<*> (x Data..?> "latestRevision")
+            Prelude.<*> (x Data..?> "name")
+            Prelude.<*> (x Data..?> "warnings" Core..!@ Prelude.mempty)
+            Prelude.<*> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateConfiguration where
+  hashWithSalt _salt UpdateConfiguration' {..} =
+    _salt
+      `Prelude.hashWithSalt` description
+      `Prelude.hashWithSalt` configurationId
+      `Prelude.hashWithSalt` data'
+
+instance Prelude.NFData UpdateConfiguration where
+  rnf UpdateConfiguration' {..} =
+    Prelude.rnf description
+      `Prelude.seq` Prelude.rnf configurationId
+      `Prelude.seq` Prelude.rnf data'
+
+instance Data.ToHeaders UpdateConfiguration where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateConfiguration where
+  toJSON UpdateConfiguration' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("description" Data..=) Prelude.<$> description,
+            Prelude.Just ("data" Data..= data')
+          ]
+      )
+
+instance Data.ToPath UpdateConfiguration where
+  toPath UpdateConfiguration' {..} =
+    Prelude.mconcat
+      ["/v1/configurations/", Data.toBS configurationId]
+
+instance Data.ToQuery UpdateConfiguration where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateConfigurationResponse' smart constructor.
+data UpdateConfigurationResponse = UpdateConfigurationResponse'
+  { -- | Required. The Amazon Resource Name (ARN) of the configuration.
+    arn :: Prelude.Maybe Prelude.Text,
+    -- | Required. The date and time of the configuration.
+    created :: Prelude.Maybe Data.ISO8601,
+    -- | Required. The unique ID that Amazon MQ generates for the configuration.
+    id :: Prelude.Maybe Prelude.Text,
+    -- | The latest revision of the configuration.
+    latestRevision :: Prelude.Maybe ConfigurationRevision,
+    -- | Required. The name of the configuration. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 1-150 characters long.
+    name :: Prelude.Maybe Prelude.Text,
+    -- | The list of the first 20 warnings about the configuration XML elements
+    -- or attributes that were sanitized.
+    warnings :: Prelude.Maybe [SanitizationWarning],
+    -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateConfigurationResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'arn', 'updateConfigurationResponse_arn' - Required. The Amazon Resource Name (ARN) of the configuration.
+--
+-- 'created', 'updateConfigurationResponse_created' - Required. The date and time of the configuration.
+--
+-- 'id', 'updateConfigurationResponse_id' - Required. The unique ID that Amazon MQ generates for the configuration.
+--
+-- 'latestRevision', 'updateConfigurationResponse_latestRevision' - The latest revision of the configuration.
+--
+-- 'name', 'updateConfigurationResponse_name' - Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+--
+-- 'warnings', 'updateConfigurationResponse_warnings' - The list of the first 20 warnings about the configuration XML elements
+-- or attributes that were sanitized.
+--
+-- 'httpStatus', 'updateConfigurationResponse_httpStatus' - The response's http status code.
+newUpdateConfigurationResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateConfigurationResponse
+newUpdateConfigurationResponse pHttpStatus_ =
+  UpdateConfigurationResponse'
+    { arn = Prelude.Nothing,
+      created = Prelude.Nothing,
+      id = Prelude.Nothing,
+      latestRevision = Prelude.Nothing,
+      name = Prelude.Nothing,
+      warnings = Prelude.Nothing,
+      httpStatus = pHttpStatus_
+    }
+
+-- | Required. The Amazon Resource Name (ARN) of the configuration.
+updateConfigurationResponse_arn :: Lens.Lens' UpdateConfigurationResponse (Prelude.Maybe Prelude.Text)
+updateConfigurationResponse_arn = Lens.lens (\UpdateConfigurationResponse' {arn} -> arn) (\s@UpdateConfigurationResponse' {} a -> s {arn = a} :: UpdateConfigurationResponse)
+
+-- | Required. The date and time of the configuration.
+updateConfigurationResponse_created :: Lens.Lens' UpdateConfigurationResponse (Prelude.Maybe Prelude.UTCTime)
+updateConfigurationResponse_created = Lens.lens (\UpdateConfigurationResponse' {created} -> created) (\s@UpdateConfigurationResponse' {} a -> s {created = a} :: UpdateConfigurationResponse) Prelude.. Lens.mapping Data._Time
+
+-- | Required. The unique ID that Amazon MQ generates for the configuration.
+updateConfigurationResponse_id :: Lens.Lens' UpdateConfigurationResponse (Prelude.Maybe Prelude.Text)
+updateConfigurationResponse_id = Lens.lens (\UpdateConfigurationResponse' {id} -> id) (\s@UpdateConfigurationResponse' {} a -> s {id = a} :: UpdateConfigurationResponse)
+
+-- | The latest revision of the configuration.
+updateConfigurationResponse_latestRevision :: Lens.Lens' UpdateConfigurationResponse (Prelude.Maybe ConfigurationRevision)
+updateConfigurationResponse_latestRevision = Lens.lens (\UpdateConfigurationResponse' {latestRevision} -> latestRevision) (\s@UpdateConfigurationResponse' {} a -> s {latestRevision = a} :: UpdateConfigurationResponse)
+
+-- | Required. The name of the configuration. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 1-150 characters long.
+updateConfigurationResponse_name :: Lens.Lens' UpdateConfigurationResponse (Prelude.Maybe Prelude.Text)
+updateConfigurationResponse_name = Lens.lens (\UpdateConfigurationResponse' {name} -> name) (\s@UpdateConfigurationResponse' {} a -> s {name = a} :: UpdateConfigurationResponse)
+
+-- | The list of the first 20 warnings about the configuration XML elements
+-- or attributes that were sanitized.
+updateConfigurationResponse_warnings :: Lens.Lens' UpdateConfigurationResponse (Prelude.Maybe [SanitizationWarning])
+updateConfigurationResponse_warnings = Lens.lens (\UpdateConfigurationResponse' {warnings} -> warnings) (\s@UpdateConfigurationResponse' {} a -> s {warnings = a} :: UpdateConfigurationResponse) Prelude.. Lens.mapping Lens.coerced
+
+-- | The response's http status code.
+updateConfigurationResponse_httpStatus :: Lens.Lens' UpdateConfigurationResponse Prelude.Int
+updateConfigurationResponse_httpStatus = Lens.lens (\UpdateConfigurationResponse' {httpStatus} -> httpStatus) (\s@UpdateConfigurationResponse' {} a -> s {httpStatus = a} :: UpdateConfigurationResponse)
+
+instance Prelude.NFData UpdateConfigurationResponse where
+  rnf UpdateConfigurationResponse' {..} =
+    Prelude.rnf arn
+      `Prelude.seq` Prelude.rnf created
+      `Prelude.seq` Prelude.rnf id
+      `Prelude.seq` Prelude.rnf latestRevision
+      `Prelude.seq` Prelude.rnf name
+      `Prelude.seq` Prelude.rnf warnings
+      `Prelude.seq` Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/UpdateUser.hs b/gen/Amazonka/MQ/UpdateUser.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/UpdateUser.hs
@@ -0,0 +1,232 @@
+{-# LANGUAGE DeriveGeneric #-}
+{-# LANGUAGE DuplicateRecordFields #-}
+{-# LANGUAGE NamedFieldPuns #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-binds #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+{-# OPTIONS_GHC -fno-warn-unused-matches #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.UpdateUser
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+--
+-- Updates the information for an ActiveMQ user.
+module Amazonka.MQ.UpdateUser
+  ( -- * Creating a Request
+    UpdateUser (..),
+    newUpdateUser,
+
+    -- * Request Lenses
+    updateUser_consoleAccess,
+    updateUser_groups,
+    updateUser_password,
+    updateUser_username,
+    updateUser_brokerId,
+
+    -- * Destructuring the Response
+    UpdateUserResponse (..),
+    newUpdateUserResponse,
+
+    -- * Response Lenses
+    updateUserResponse_httpStatus,
+  )
+where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
+import qualified Amazonka.Request as Request
+import qualified Amazonka.Response as Response
+
+-- | Updates the information for an ActiveMQ user.
+--
+-- /See:/ 'newUpdateUser' smart constructor.
+data UpdateUser = UpdateUser'
+  { -- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+    consoleAccess :: Prelude.Maybe Prelude.Bool,
+    -- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+    -- value can contain only alphanumeric characters, dashes, periods,
+    -- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+    -- long.
+    groups :: Prelude.Maybe [Prelude.Text],
+    -- | The password of the user. This value must be at least 12 characters
+    -- long, must contain at least 4 unique characters, and must not contain
+    -- commas, colons, or equal signs (,:=).
+    password :: Prelude.Maybe Prelude.Text,
+    -- | The username of the ActiveMQ user. This value can contain only
+    -- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+    -- ~). This value must be 2-100 characters long.
+    username :: Prelude.Text,
+    -- | The unique ID that Amazon MQ generates for the broker.
+    brokerId :: Prelude.Text
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateUser' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'consoleAccess', 'updateUser_consoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+--
+-- 'groups', 'updateUser_groups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+--
+-- 'password', 'updateUser_password' - The password of the user. This value must be at least 12 characters
+-- long, must contain at least 4 unique characters, and must not contain
+-- commas, colons, or equal signs (,:=).
+--
+-- 'username', 'updateUser_username' - The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+--
+-- 'brokerId', 'updateUser_brokerId' - The unique ID that Amazon MQ generates for the broker.
+newUpdateUser ::
+  -- | 'username'
+  Prelude.Text ->
+  -- | 'brokerId'
+  Prelude.Text ->
+  UpdateUser
+newUpdateUser pUsername_ pBrokerId_ =
+  UpdateUser'
+    { consoleAccess = Prelude.Nothing,
+      groups = Prelude.Nothing,
+      password = Prelude.Nothing,
+      username = pUsername_,
+      brokerId = pBrokerId_
+    }
+
+-- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
+updateUser_consoleAccess :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Bool)
+updateUser_consoleAccess = Lens.lens (\UpdateUser' {consoleAccess} -> consoleAccess) (\s@UpdateUser' {} a -> s {consoleAccess = a} :: UpdateUser)
+
+-- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This
+-- value can contain only alphanumeric characters, dashes, periods,
+-- underscores, and tildes (- . _ ~). This value must be 2-100 characters
+-- long.
+updateUser_groups :: Lens.Lens' UpdateUser (Prelude.Maybe [Prelude.Text])
+updateUser_groups = Lens.lens (\UpdateUser' {groups} -> groups) (\s@UpdateUser' {} a -> s {groups = a} :: UpdateUser) Prelude.. Lens.mapping Lens.coerced
+
+-- | The password of the user. This value must be at least 12 characters
+-- long, must contain at least 4 unique characters, and must not contain
+-- commas, colons, or equal signs (,:=).
+updateUser_password :: Lens.Lens' UpdateUser (Prelude.Maybe Prelude.Text)
+updateUser_password = Lens.lens (\UpdateUser' {password} -> password) (\s@UpdateUser' {} a -> s {password = a} :: UpdateUser)
+
+-- | The username of the ActiveMQ user. This value can contain only
+-- alphanumeric characters, dashes, periods, underscores, and tildes (- . _
+-- ~). This value must be 2-100 characters long.
+updateUser_username :: Lens.Lens' UpdateUser Prelude.Text
+updateUser_username = Lens.lens (\UpdateUser' {username} -> username) (\s@UpdateUser' {} a -> s {username = a} :: UpdateUser)
+
+-- | The unique ID that Amazon MQ generates for the broker.
+updateUser_brokerId :: Lens.Lens' UpdateUser Prelude.Text
+updateUser_brokerId = Lens.lens (\UpdateUser' {brokerId} -> brokerId) (\s@UpdateUser' {} a -> s {brokerId = a} :: UpdateUser)
+
+instance Core.AWSRequest UpdateUser where
+  type AWSResponse UpdateUser = UpdateUserResponse
+  request overrides =
+    Request.putJSON (overrides defaultService)
+  response =
+    Response.receiveEmpty
+      ( \s h x ->
+          UpdateUserResponse'
+            Prelude.<$> (Prelude.pure (Prelude.fromEnum s))
+      )
+
+instance Prelude.Hashable UpdateUser where
+  hashWithSalt _salt UpdateUser' {..} =
+    _salt
+      `Prelude.hashWithSalt` consoleAccess
+      `Prelude.hashWithSalt` groups
+      `Prelude.hashWithSalt` password
+      `Prelude.hashWithSalt` username
+      `Prelude.hashWithSalt` brokerId
+
+instance Prelude.NFData UpdateUser where
+  rnf UpdateUser' {..} =
+    Prelude.rnf consoleAccess
+      `Prelude.seq` Prelude.rnf groups
+      `Prelude.seq` Prelude.rnf password
+      `Prelude.seq` Prelude.rnf username
+      `Prelude.seq` Prelude.rnf brokerId
+
+instance Data.ToHeaders UpdateUser where
+  toHeaders =
+    Prelude.const
+      ( Prelude.mconcat
+          [ "Content-Type"
+              Data.=# ( "application/x-amz-json-1.1" ::
+                          Prelude.ByteString
+                      )
+          ]
+      )
+
+instance Data.ToJSON UpdateUser where
+  toJSON UpdateUser' {..} =
+    Data.object
+      ( Prelude.catMaybes
+          [ ("consoleAccess" Data..=) Prelude.<$> consoleAccess,
+            ("groups" Data..=) Prelude.<$> groups,
+            ("password" Data..=) Prelude.<$> password
+          ]
+      )
+
+instance Data.ToPath UpdateUser where
+  toPath UpdateUser' {..} =
+    Prelude.mconcat
+      [ "/v1/brokers/",
+        Data.toBS brokerId,
+        "/users/",
+        Data.toBS username
+      ]
+
+instance Data.ToQuery UpdateUser where
+  toQuery = Prelude.const Prelude.mempty
+
+-- | /See:/ 'newUpdateUserResponse' smart constructor.
+data UpdateUserResponse = UpdateUserResponse'
+  { -- | The response's http status code.
+    httpStatus :: Prelude.Int
+  }
+  deriving (Prelude.Eq, Prelude.Read, Prelude.Show, Prelude.Generic)
+
+-- |
+-- Create a value of 'UpdateUserResponse' with all optional fields omitted.
+--
+-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
+--
+-- The following record fields are available, with the corresponding lenses provided
+-- for backwards compatibility:
+--
+-- 'httpStatus', 'updateUserResponse_httpStatus' - The response's http status code.
+newUpdateUserResponse ::
+  -- | 'httpStatus'
+  Prelude.Int ->
+  UpdateUserResponse
+newUpdateUserResponse pHttpStatus_ =
+  UpdateUserResponse' {httpStatus = pHttpStatus_}
+
+-- | The response's http status code.
+updateUserResponse_httpStatus :: Lens.Lens' UpdateUserResponse Prelude.Int
+updateUserResponse_httpStatus = Lens.lens (\UpdateUserResponse' {httpStatus} -> httpStatus) (\s@UpdateUserResponse' {} a -> s {httpStatus = a} :: UpdateUserResponse)
+
+instance Prelude.NFData UpdateUserResponse where
+  rnf UpdateUserResponse' {..} = Prelude.rnf httpStatus
diff --git a/gen/Amazonka/MQ/Waiters.hs b/gen/Amazonka/MQ/Waiters.hs
new file mode 100644
--- /dev/null
+++ b/gen/Amazonka/MQ/Waiters.hs
@@ -0,0 +1,24 @@
+{-# LANGUAGE DisambiguateRecordFields #-}
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE StrictData #-}
+{-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Amazonka.MQ.Waiters
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Amazonka.MQ.Waiters where
+
+import qualified Amazonka.Core as Core
+import qualified Amazonka.Core.Lens.Internal as Lens
+import qualified Amazonka.Data as Data
+import Amazonka.MQ.Lens
+import Amazonka.MQ.Types
+import qualified Amazonka.Prelude as Prelude
diff --git a/gen/Network/AWS/MQ.hs b/gen/Network/AWS/MQ.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ.hs
+++ /dev/null
@@ -1,248 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports    #-}
-{-# OPTIONS_GHC -fno-warn-duplicate-exports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Amazon MQ is a managed message broker service for Apache ActiveMQ that makes it easy to set up and operate message brokers in the cloud. A message broker allows software applications and components to communicate using various programming languages, operating systems, and formal messaging protocols.
-module Network.AWS.MQ
-    (
-    -- * Service Configuration
-      mq
-
-    -- * Errors
-    -- $errors
-
-    -- ** ConflictException
-    , _ConflictException
-
-    -- ** ForbiddenException
-    , _ForbiddenException
-
-    -- ** NotFoundException
-    , _NotFoundException
-
-    -- ** InternalServerErrorException
-    , _InternalServerErrorException
-
-    -- ** UnauthorizedException
-    , _UnauthorizedException
-
-    -- ** BadRequestException
-    , _BadRequestException
-
-    -- * Waiters
-    -- $waiters
-
-    -- * Operations
-    -- $operations
-
-    -- ** CreateConfiguration
-    , module Network.AWS.MQ.CreateConfiguration
-
-    -- ** CreateBroker
-    , module Network.AWS.MQ.CreateBroker
-
-    -- ** DeleteBroker
-    , module Network.AWS.MQ.DeleteBroker
-
-    -- ** UpdateBroker
-    , module Network.AWS.MQ.UpdateBroker
-
-    -- ** RebootBroker
-    , module Network.AWS.MQ.RebootBroker
-
-    -- ** ListConfigurationRevisions
-    , module Network.AWS.MQ.ListConfigurationRevisions
-
-    -- ** ListUsers
-    , module Network.AWS.MQ.ListUsers
-
-    -- ** ListConfigurations
-    , module Network.AWS.MQ.ListConfigurations
-
-    -- ** DescribeUser
-    , module Network.AWS.MQ.DescribeUser
-
-    -- ** ListBrokers
-    , module Network.AWS.MQ.ListBrokers
-
-    -- ** CreateUser
-    , module Network.AWS.MQ.CreateUser
-
-    -- ** DescribeConfiguration
-    , module Network.AWS.MQ.DescribeConfiguration
-
-    -- ** UpdateUser
-    , module Network.AWS.MQ.UpdateUser
-
-    -- ** DeleteUser
-    , module Network.AWS.MQ.DeleteUser
-
-    -- ** DescribeConfigurationRevision
-    , module Network.AWS.MQ.DescribeConfigurationRevision
-
-    -- ** DescribeBroker
-    , module Network.AWS.MQ.DescribeBroker
-
-    -- ** UpdateConfiguration
-    , module Network.AWS.MQ.UpdateConfiguration
-
-    -- * Types
-
-    -- ** BrokerState
-    , BrokerState (..)
-
-    -- ** ChangeType
-    , ChangeType (..)
-
-    -- ** DayOfWeek
-    , DayOfWeek (..)
-
-    -- ** DeploymentMode
-    , DeploymentMode (..)
-
-    -- ** EngineType
-    , EngineType (..)
-
-    -- ** SanitizationWarningReason
-    , SanitizationWarningReason (..)
-
-    -- ** BrokerInstance
-    , BrokerInstance
-    , brokerInstance
-    , biConsoleURL
-    , biEndpoints
-
-    -- ** BrokerSummary
-    , BrokerSummary
-    , brokerSummary
-    , bsBrokerName
-    , bsBrokerState
-    , bsDeploymentMode
-    , bsBrokerId
-    , bsBrokerARN
-    , bsHostInstanceType
-
-    -- ** Configuration
-    , Configuration
-    , configuration
-    , cEngineVersion
-    , cARN
-    , cLatestRevision
-    , cName
-    , cId
-    , cDescription
-    , cEngineType
-
-    -- ** ConfigurationId
-    , ConfigurationId
-    , configurationId
-    , ciId
-    , ciRevision
-
-    -- ** ConfigurationRevision
-    , ConfigurationRevision
-    , configurationRevision
-    , crRevision
-    , crDescription
-
-    -- ** Configurations
-    , Configurations
-    , configurations
-    , cPending
-    , cHistory
-    , cCurrent
-
-    -- ** SanitizationWarning
-    , SanitizationWarning
-    , sanitizationWarning
-    , swReason
-    , swAttributeName
-    , swElementName
-
-    -- ** User
-    , User
-    , user
-    , uGroups
-    , uConsoleAccess
-    , uUsername
-    , uPassword
-
-    -- ** UserPendingChanges
-    , UserPendingChanges
-    , userPendingChanges
-    , upcGroups
-    , upcConsoleAccess
-    , upcPendingChange
-
-    -- ** UserSummary
-    , UserSummary
-    , userSummary
-    , usUsername
-    , usPendingChange
-
-    -- ** WeeklyStartTime
-    , WeeklyStartTime
-    , weeklyStartTime
-    , wstTimeOfDay
-    , wstTimeZone
-    , wstDayOfWeek
-    ) where
-
-import Network.AWS.MQ.CreateBroker
-import Network.AWS.MQ.CreateConfiguration
-import Network.AWS.MQ.CreateUser
-import Network.AWS.MQ.DeleteBroker
-import Network.AWS.MQ.DeleteUser
-import Network.AWS.MQ.DescribeBroker
-import Network.AWS.MQ.DescribeConfiguration
-import Network.AWS.MQ.DescribeConfigurationRevision
-import Network.AWS.MQ.DescribeUser
-import Network.AWS.MQ.ListBrokers
-import Network.AWS.MQ.ListConfigurationRevisions
-import Network.AWS.MQ.ListConfigurations
-import Network.AWS.MQ.ListUsers
-import Network.AWS.MQ.RebootBroker
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.UpdateBroker
-import Network.AWS.MQ.UpdateConfiguration
-import Network.AWS.MQ.UpdateUser
-import Network.AWS.MQ.Waiters
-
-{- $errors
-Error matchers are designed for use with the functions provided by
-<http://hackage.haskell.org/package/lens/docs/Control-Exception-Lens.html Control.Exception.Lens>.
-This allows catching (and rethrowing) service specific errors returned
-by 'MQ'.
--}
-
-{- $operations
-Some AWS operations return results that are incomplete and require subsequent
-requests in order to obtain the entire result set. The process of sending
-subsequent requests to continue where a previous request left off is called
-pagination. For example, the 'ListObjects' operation of Amazon S3 returns up to
-1000 objects at a time, and you must send subsequent requests with the
-appropriate Marker in order to retrieve the next page of results.
-
-Operations that have an 'AWSPager' instance can transparently perform subsequent
-requests, correctly setting Markers and other request facets to iterate through
-the entire result set of a truncated API operation. Operations which support
-this have an additional note in the documentation.
-
-Many operations have the ability to filter results on the server side. See the
-individual operation parameters for details.
--}
-
-{- $waiters
-Waiters poll by repeatedly sending a request until some remote success condition
-configured by the 'Wait' specification is fulfilled. The 'Wait' specification
-determines how many attempts should be made, in addition to delay and retry strategies.
--}
diff --git a/gen/Network/AWS/MQ/CreateBroker.hs b/gen/Network/AWS/MQ/CreateBroker.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/CreateBroker.hs
+++ /dev/null
@@ -1,266 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.CreateBroker
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates a broker. Note: This API is asynchronous.
-module Network.AWS.MQ.CreateBroker
-    (
-    -- * Creating a Request
-      createBroker
-    , CreateBroker
-    -- * Request Lenses
-    , cbBrokerName
-    , cbEngineVersion
-    , cbPubliclyAccessible
-    , cbAutoMinorVersionUpgrade
-    , cbSecurityGroups
-    , cbUsers
-    , cbSubnetIds
-    , cbCreatorRequestId
-    , cbMaintenanceWindowStartTime
-    , cbDeploymentMode
-    , cbConfiguration
-    , cbEngineType
-    , cbHostInstanceType
-
-    -- * Destructuring the Response
-    , createBrokerResponse
-    , CreateBrokerResponse
-    -- * Response Lenses
-    , cbrsBrokerId
-    , cbrsBrokerARN
-    , cbrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Creates a broker using the specified properties.
---
--- /See:/ 'createBroker' smart constructor.
-data CreateBroker = CreateBroker'
-  { _cbBrokerName                 :: !(Maybe Text)
-  , _cbEngineVersion              :: !(Maybe Text)
-  , _cbPubliclyAccessible         :: !(Maybe Bool)
-  , _cbAutoMinorVersionUpgrade    :: !(Maybe Bool)
-  , _cbSecurityGroups             :: !(Maybe [Text])
-  , _cbUsers                      :: !(Maybe [User])
-  , _cbSubnetIds                  :: !(Maybe [Text])
-  , _cbCreatorRequestId           :: !(Maybe Text)
-  , _cbMaintenanceWindowStartTime :: !(Maybe WeeklyStartTime)
-  , _cbDeploymentMode             :: !(Maybe DeploymentMode)
-  , _cbConfiguration              :: !(Maybe ConfigurationId)
-  , _cbEngineType                 :: !(Maybe EngineType)
-  , _cbHostInstanceType           :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateBroker' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cbBrokerName' - Required. The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
---
--- * 'cbEngineVersion' - Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.
---
--- * 'cbPubliclyAccessible' - Required. Enables connections from applications outside of the VPC that hosts the broker's subnets.
---
--- * 'cbAutoMinorVersionUpgrade' - Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot.
---
--- * 'cbSecurityGroups' - Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.
---
--- * 'cbUsers' - Required. The list of ActiveMQ users (persons or applications) who can access queues and topics. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'cbSubnetIds' - Required. The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets.
---
--- * 'cbCreatorRequestId' - The unique ID that the requester receives for the created broker. Amazon MQ passes your ID with the API action. Note: We recommend using a Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the creatorRequestId if your application doesn't require idempotency.
---
--- * 'cbMaintenanceWindowStartTime' - The parameters that determine the WeeklyStartTime.
---
--- * 'cbDeploymentMode' - Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
---
--- * 'cbConfiguration' - A list of information about the configuration.
---
--- * 'cbEngineType' - Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
---
--- * 'cbHostInstanceType' - Required. The broker's instance type. Possible values: mq.t2.micro, mq.m4.large
-createBroker
-    :: CreateBroker
-createBroker =
-  CreateBroker'
-    { _cbBrokerName = Nothing
-    , _cbEngineVersion = Nothing
-    , _cbPubliclyAccessible = Nothing
-    , _cbAutoMinorVersionUpgrade = Nothing
-    , _cbSecurityGroups = Nothing
-    , _cbUsers = Nothing
-    , _cbSubnetIds = Nothing
-    , _cbCreatorRequestId = Nothing
-    , _cbMaintenanceWindowStartTime = Nothing
-    , _cbDeploymentMode = Nothing
-    , _cbConfiguration = Nothing
-    , _cbEngineType = Nothing
-    , _cbHostInstanceType = Nothing
-    }
-
-
--- | Required. The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-cbBrokerName :: Lens' CreateBroker (Maybe Text)
-cbBrokerName = lens _cbBrokerName (\ s a -> s{_cbBrokerName = a})
-
--- | Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.
-cbEngineVersion :: Lens' CreateBroker (Maybe Text)
-cbEngineVersion = lens _cbEngineVersion (\ s a -> s{_cbEngineVersion = a})
-
--- | Required. Enables connections from applications outside of the VPC that hosts the broker's subnets.
-cbPubliclyAccessible :: Lens' CreateBroker (Maybe Bool)
-cbPubliclyAccessible = lens _cbPubliclyAccessible (\ s a -> s{_cbPubliclyAccessible = a})
-
--- | Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot.
-cbAutoMinorVersionUpgrade :: Lens' CreateBroker (Maybe Bool)
-cbAutoMinorVersionUpgrade = lens _cbAutoMinorVersionUpgrade (\ s a -> s{_cbAutoMinorVersionUpgrade = a})
-
--- | Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.
-cbSecurityGroups :: Lens' CreateBroker [Text]
-cbSecurityGroups = lens _cbSecurityGroups (\ s a -> s{_cbSecurityGroups = a}) . _Default . _Coerce
-
--- | Required. The list of ActiveMQ users (persons or applications) who can access queues and topics. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-cbUsers :: Lens' CreateBroker [User]
-cbUsers = lens _cbUsers (\ s a -> s{_cbUsers = a}) . _Default . _Coerce
-
--- | Required. The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets.
-cbSubnetIds :: Lens' CreateBroker [Text]
-cbSubnetIds = lens _cbSubnetIds (\ s a -> s{_cbSubnetIds = a}) . _Default . _Coerce
-
--- | The unique ID that the requester receives for the created broker. Amazon MQ passes your ID with the API action. Note: We recommend using a Universally Unique Identifier (UUID) for the creatorRequestId. You may omit the creatorRequestId if your application doesn't require idempotency.
-cbCreatorRequestId :: Lens' CreateBroker (Maybe Text)
-cbCreatorRequestId = lens _cbCreatorRequestId (\ s a -> s{_cbCreatorRequestId = a})
-
--- | The parameters that determine the WeeklyStartTime.
-cbMaintenanceWindowStartTime :: Lens' CreateBroker (Maybe WeeklyStartTime)
-cbMaintenanceWindowStartTime = lens _cbMaintenanceWindowStartTime (\ s a -> s{_cbMaintenanceWindowStartTime = a})
-
--- | Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
-cbDeploymentMode :: Lens' CreateBroker (Maybe DeploymentMode)
-cbDeploymentMode = lens _cbDeploymentMode (\ s a -> s{_cbDeploymentMode = a})
-
--- | A list of information about the configuration.
-cbConfiguration :: Lens' CreateBroker (Maybe ConfigurationId)
-cbConfiguration = lens _cbConfiguration (\ s a -> s{_cbConfiguration = a})
-
--- | Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-cbEngineType :: Lens' CreateBroker (Maybe EngineType)
-cbEngineType = lens _cbEngineType (\ s a -> s{_cbEngineType = a})
-
--- | Required. The broker's instance type. Possible values: mq.t2.micro, mq.m4.large
-cbHostInstanceType :: Lens' CreateBroker (Maybe Text)
-cbHostInstanceType = lens _cbHostInstanceType (\ s a -> s{_cbHostInstanceType = a})
-
-instance AWSRequest CreateBroker where
-        type Rs CreateBroker = CreateBrokerResponse
-        request = postJSON mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateBrokerResponse' <$>
-                   (x .?> "brokerId") <*> (x .?> "brokerArn") <*>
-                     (pure (fromEnum s)))
-
-instance Hashable CreateBroker where
-
-instance NFData CreateBroker where
-
-instance ToHeaders CreateBroker where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateBroker where
-        toJSON CreateBroker'{..}
-          = object
-              (catMaybes
-                 [("brokerName" .=) <$> _cbBrokerName,
-                  ("engineVersion" .=) <$> _cbEngineVersion,
-                  ("publiclyAccessible" .=) <$> _cbPubliclyAccessible,
-                  ("autoMinorVersionUpgrade" .=) <$>
-                    _cbAutoMinorVersionUpgrade,
-                  ("securityGroups" .=) <$> _cbSecurityGroups,
-                  ("users" .=) <$> _cbUsers,
-                  ("subnetIds" .=) <$> _cbSubnetIds,
-                  ("creatorRequestId" .=) <$> _cbCreatorRequestId,
-                  ("maintenanceWindowStartTime" .=) <$>
-                    _cbMaintenanceWindowStartTime,
-                  ("deploymentMode" .=) <$> _cbDeploymentMode,
-                  ("configuration" .=) <$> _cbConfiguration,
-                  ("engineType" .=) <$> _cbEngineType,
-                  ("hostInstanceType" .=) <$> _cbHostInstanceType])
-
-instance ToPath CreateBroker where
-        toPath = const "/v1/brokers"
-
-instance ToQuery CreateBroker where
-        toQuery = const mempty
-
--- | /See:/ 'createBrokerResponse' smart constructor.
-data CreateBrokerResponse = CreateBrokerResponse'
-  { _cbrsBrokerId       :: !(Maybe Text)
-  , _cbrsBrokerARN      :: !(Maybe Text)
-  , _cbrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateBrokerResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cbrsBrokerId' - The unique ID that Amazon MQ generates for the broker.
---
--- * 'cbrsBrokerARN' - The Amazon Resource Name (ARN) of the broker.
---
--- * 'cbrsResponseStatus' - -- | The response status code.
-createBrokerResponse
-    :: Int -- ^ 'cbrsResponseStatus'
-    -> CreateBrokerResponse
-createBrokerResponse pResponseStatus_ =
-  CreateBrokerResponse'
-    { _cbrsBrokerId = Nothing
-    , _cbrsBrokerARN = Nothing
-    , _cbrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The unique ID that Amazon MQ generates for the broker.
-cbrsBrokerId :: Lens' CreateBrokerResponse (Maybe Text)
-cbrsBrokerId = lens _cbrsBrokerId (\ s a -> s{_cbrsBrokerId = a})
-
--- | The Amazon Resource Name (ARN) of the broker.
-cbrsBrokerARN :: Lens' CreateBrokerResponse (Maybe Text)
-cbrsBrokerARN = lens _cbrsBrokerARN (\ s a -> s{_cbrsBrokerARN = a})
-
--- | -- | The response status code.
-cbrsResponseStatus :: Lens' CreateBrokerResponse Int
-cbrsResponseStatus = lens _cbrsResponseStatus (\ s a -> s{_cbrsResponseStatus = a})
-
-instance NFData CreateBrokerResponse where
diff --git a/gen/Network/AWS/MQ/CreateConfiguration.hs b/gen/Network/AWS/MQ/CreateConfiguration.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/CreateConfiguration.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.CreateConfiguration
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and version). Note: If the configuration name already exists, Amazon MQ doesn't create a configuration.
-module Network.AWS.MQ.CreateConfiguration
-    (
-    -- * Creating a Request
-      createConfiguration
-    , CreateConfiguration
-    -- * Request Lenses
-    , ccEngineVersion
-    , ccName
-    , ccEngineType
-
-    -- * Destructuring the Response
-    , createConfigurationResponse
-    , CreateConfigurationResponse
-    -- * Response Lenses
-    , ccrsARN
-    , ccrsLatestRevision
-    , ccrsName
-    , ccrsId
-    , ccrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Creates a new configuration for the specified configuration name. Amazon MQ uses the default configuration (the engine type and version). Note: If the configuration name already exists, Amazon MQ doesn't create a configuration.
---
--- /See:/ 'createConfiguration' smart constructor.
-data CreateConfiguration = CreateConfiguration'
-  { _ccEngineVersion :: !(Maybe Text)
-  , _ccName          :: !(Maybe Text)
-  , _ccEngineType    :: !(Maybe EngineType)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccEngineVersion' - Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.
---
--- * 'ccName' - Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
---
--- * 'ccEngineType' - Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-createConfiguration
-    :: CreateConfiguration
-createConfiguration =
-  CreateConfiguration'
-    {_ccEngineVersion = Nothing, _ccName = Nothing, _ccEngineType = Nothing}
-
-
--- | Required. The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.
-ccEngineVersion :: Lens' CreateConfiguration (Maybe Text)
-ccEngineVersion = lens _ccEngineVersion (\ s a -> s{_ccEngineVersion = a})
-
--- | Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
-ccName :: Lens' CreateConfiguration (Maybe Text)
-ccName = lens _ccName (\ s a -> s{_ccName = a})
-
--- | Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-ccEngineType :: Lens' CreateConfiguration (Maybe EngineType)
-ccEngineType = lens _ccEngineType (\ s a -> s{_ccEngineType = a})
-
-instance AWSRequest CreateConfiguration where
-        type Rs CreateConfiguration =
-             CreateConfigurationResponse
-        request = postJSON mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 CreateConfigurationResponse' <$>
-                   (x .?> "arn") <*> (x .?> "latestRevision") <*>
-                     (x .?> "name")
-                     <*> (x .?> "id")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable CreateConfiguration where
-
-instance NFData CreateConfiguration where
-
-instance ToHeaders CreateConfiguration where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateConfiguration where
-        toJSON CreateConfiguration'{..}
-          = object
-              (catMaybes
-                 [("engineVersion" .=) <$> _ccEngineVersion,
-                  ("name" .=) <$> _ccName,
-                  ("engineType" .=) <$> _ccEngineType])
-
-instance ToPath CreateConfiguration where
-        toPath = const "/v1/configurations"
-
-instance ToQuery CreateConfiguration where
-        toQuery = const mempty
-
--- | /See:/ 'createConfigurationResponse' smart constructor.
-data CreateConfigurationResponse = CreateConfigurationResponse'
-  { _ccrsARN            :: !(Maybe Text)
-  , _ccrsLatestRevision :: !(Maybe ConfigurationRevision)
-  , _ccrsName           :: !(Maybe Text)
-  , _ccrsId             :: !(Maybe Text)
-  , _ccrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateConfigurationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ccrsARN' - Required. The Amazon Resource Name (ARN) of the configuration.
---
--- * 'ccrsLatestRevision' - The latest revision of the configuration.
---
--- * 'ccrsName' - Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
---
--- * 'ccrsId' - Required. The unique ID that Amazon MQ generates for the configuration.
---
--- * 'ccrsResponseStatus' - -- | The response status code.
-createConfigurationResponse
-    :: Int -- ^ 'ccrsResponseStatus'
-    -> CreateConfigurationResponse
-createConfigurationResponse pResponseStatus_ =
-  CreateConfigurationResponse'
-    { _ccrsARN = Nothing
-    , _ccrsLatestRevision = Nothing
-    , _ccrsName = Nothing
-    , _ccrsId = Nothing
-    , _ccrsResponseStatus = pResponseStatus_
-    }
-
-
--- | Required. The Amazon Resource Name (ARN) of the configuration.
-ccrsARN :: Lens' CreateConfigurationResponse (Maybe Text)
-ccrsARN = lens _ccrsARN (\ s a -> s{_ccrsARN = a})
-
--- | The latest revision of the configuration.
-ccrsLatestRevision :: Lens' CreateConfigurationResponse (Maybe ConfigurationRevision)
-ccrsLatestRevision = lens _ccrsLatestRevision (\ s a -> s{_ccrsLatestRevision = a})
-
--- | Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
-ccrsName :: Lens' CreateConfigurationResponse (Maybe Text)
-ccrsName = lens _ccrsName (\ s a -> s{_ccrsName = a})
-
--- | Required. The unique ID that Amazon MQ generates for the configuration.
-ccrsId :: Lens' CreateConfigurationResponse (Maybe Text)
-ccrsId = lens _ccrsId (\ s a -> s{_ccrsId = a})
-
--- | -- | The response status code.
-ccrsResponseStatus :: Lens' CreateConfigurationResponse Int
-ccrsResponseStatus = lens _ccrsResponseStatus (\ s a -> s{_ccrsResponseStatus = a})
-
-instance NFData CreateConfigurationResponse where
diff --git a/gen/Network/AWS/MQ/CreateUser.hs b/gen/Network/AWS/MQ/CreateUser.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/CreateUser.hs
+++ /dev/null
@@ -1,165 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.CreateUser
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Creates an ActiveMQ user.
-module Network.AWS.MQ.CreateUser
-    (
-    -- * Creating a Request
-      createUser
-    , CreateUser
-    -- * Request Lenses
-    , cuGroups
-    , cuConsoleAccess
-    , cuPassword
-    , cuUsername
-    , cuBrokerId
-
-    -- * Destructuring the Response
-    , createUserResponse
-    , CreateUserResponse
-    -- * Response Lenses
-    , cursResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Creates a new ActiveMQ user.
---
--- /See:/ 'createUser' smart constructor.
-data CreateUser = CreateUser'
-  { _cuGroups        :: !(Maybe [Text])
-  , _cuConsoleAccess :: !(Maybe Bool)
-  , _cuPassword      :: !(Maybe Text)
-  , _cuUsername      :: !Text
-  , _cuBrokerId      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateUser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cuGroups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'cuConsoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
---
--- * 'cuPassword' - Required. The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.
---
--- * 'cuUsername' - The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'cuBrokerId' - The unique ID that Amazon MQ generates for the broker.
-createUser
-    :: Text -- ^ 'cuUsername'
-    -> Text -- ^ 'cuBrokerId'
-    -> CreateUser
-createUser pUsername_ pBrokerId_ =
-  CreateUser'
-    { _cuGroups = Nothing
-    , _cuConsoleAccess = Nothing
-    , _cuPassword = Nothing
-    , _cuUsername = pUsername_
-    , _cuBrokerId = pBrokerId_
-    }
-
-
--- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-cuGroups :: Lens' CreateUser [Text]
-cuGroups = lens _cuGroups (\ s a -> s{_cuGroups = a}) . _Default . _Coerce
-
--- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
-cuConsoleAccess :: Lens' CreateUser (Maybe Bool)
-cuConsoleAccess = lens _cuConsoleAccess (\ s a -> s{_cuConsoleAccess = a})
-
--- | Required. The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.
-cuPassword :: Lens' CreateUser (Maybe Text)
-cuPassword = lens _cuPassword (\ s a -> s{_cuPassword = a})
-
--- | The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-cuUsername :: Lens' CreateUser Text
-cuUsername = lens _cuUsername (\ s a -> s{_cuUsername = a})
-
--- | The unique ID that Amazon MQ generates for the broker.
-cuBrokerId :: Lens' CreateUser Text
-cuBrokerId = lens _cuBrokerId (\ s a -> s{_cuBrokerId = a})
-
-instance AWSRequest CreateUser where
-        type Rs CreateUser = CreateUserResponse
-        request = postJSON mq
-        response
-          = receiveEmpty
-              (\ s h x ->
-                 CreateUserResponse' <$> (pure (fromEnum s)))
-
-instance Hashable CreateUser where
-
-instance NFData CreateUser where
-
-instance ToHeaders CreateUser where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON CreateUser where
-        toJSON CreateUser'{..}
-          = object
-              (catMaybes
-                 [("groups" .=) <$> _cuGroups,
-                  ("consoleAccess" .=) <$> _cuConsoleAccess,
-                  ("password" .=) <$> _cuPassword])
-
-instance ToPath CreateUser where
-        toPath CreateUser'{..}
-          = mconcat
-              ["/v1/brokers/", toBS _cuBrokerId, "/users/",
-               toBS _cuUsername]
-
-instance ToQuery CreateUser where
-        toQuery = const mempty
-
--- | /See:/ 'createUserResponse' smart constructor.
-newtype CreateUserResponse = CreateUserResponse'
-  { _cursResponseStatus :: Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'CreateUserResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cursResponseStatus' - -- | The response status code.
-createUserResponse
-    :: Int -- ^ 'cursResponseStatus'
-    -> CreateUserResponse
-createUserResponse pResponseStatus_ =
-  CreateUserResponse' {_cursResponseStatus = pResponseStatus_}
-
-
--- | -- | The response status code.
-cursResponseStatus :: Lens' CreateUserResponse Int
-cursResponseStatus = lens _cursResponseStatus (\ s a -> s{_cursResponseStatus = a})
-
-instance NFData CreateUserResponse where
diff --git a/gen/Network/AWS/MQ/DeleteBroker.hs b/gen/Network/AWS/MQ/DeleteBroker.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/DeleteBroker.hs
+++ /dev/null
@@ -1,123 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.DeleteBroker
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes a broker. Note: This API is asynchronous.
-module Network.AWS.MQ.DeleteBroker
-    (
-    -- * Creating a Request
-      deleteBroker
-    , DeleteBroker
-    -- * Request Lenses
-    , dbBrokerId
-
-    -- * Destructuring the Response
-    , deleteBrokerResponse
-    , DeleteBrokerResponse
-    -- * Response Lenses
-    , drsBrokerId
-    , drsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'deleteBroker' smart constructor.
-newtype DeleteBroker = DeleteBroker'
-  { _dbBrokerId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteBroker' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dbBrokerId' - The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-deleteBroker
-    :: Text -- ^ 'dbBrokerId'
-    -> DeleteBroker
-deleteBroker pBrokerId_ = DeleteBroker' {_dbBrokerId = pBrokerId_}
-
-
--- | The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-dbBrokerId :: Lens' DeleteBroker Text
-dbBrokerId = lens _dbBrokerId (\ s a -> s{_dbBrokerId = a})
-
-instance AWSRequest DeleteBroker where
-        type Rs DeleteBroker = DeleteBrokerResponse
-        request = delete mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DeleteBrokerResponse' <$>
-                   (x .?> "brokerId") <*> (pure (fromEnum s)))
-
-instance Hashable DeleteBroker where
-
-instance NFData DeleteBroker where
-
-instance ToHeaders DeleteBroker where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DeleteBroker where
-        toPath DeleteBroker'{..}
-          = mconcat ["/v1/brokers/", toBS _dbBrokerId]
-
-instance ToQuery DeleteBroker where
-        toQuery = const mempty
-
--- | /See:/ 'deleteBrokerResponse' smart constructor.
-data DeleteBrokerResponse = DeleteBrokerResponse'
-  { _drsBrokerId       :: !(Maybe Text)
-  , _drsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteBrokerResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'drsBrokerId' - The unique ID that Amazon MQ generates for the broker.
---
--- * 'drsResponseStatus' - -- | The response status code.
-deleteBrokerResponse
-    :: Int -- ^ 'drsResponseStatus'
-    -> DeleteBrokerResponse
-deleteBrokerResponse pResponseStatus_ =
-  DeleteBrokerResponse'
-    {_drsBrokerId = Nothing, _drsResponseStatus = pResponseStatus_}
-
-
--- | The unique ID that Amazon MQ generates for the broker.
-drsBrokerId :: Lens' DeleteBrokerResponse (Maybe Text)
-drsBrokerId = lens _drsBrokerId (\ s a -> s{_drsBrokerId = a})
-
--- | -- | The response status code.
-drsResponseStatus :: Lens' DeleteBrokerResponse Int
-drsResponseStatus = lens _drsResponseStatus (\ s a -> s{_drsResponseStatus = a})
-
-instance NFData DeleteBrokerResponse where
diff --git a/gen/Network/AWS/MQ/DeleteUser.hs b/gen/Network/AWS/MQ/DeleteUser.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/DeleteUser.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.DeleteUser
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Deletes an ActiveMQ user.
-module Network.AWS.MQ.DeleteUser
-    (
-    -- * Creating a Request
-      deleteUser
-    , DeleteUser
-    -- * Request Lenses
-    , dUsername
-    , dBrokerId
-
-    -- * Destructuring the Response
-    , deleteUserResponse
-    , DeleteUserResponse
-    -- * Response Lenses
-    , delrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'deleteUser' smart constructor.
-data DeleteUser = DeleteUser'
-  { _dUsername :: !Text
-  , _dBrokerId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteUser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dUsername' - The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'dBrokerId' - The unique ID that Amazon MQ generates for the broker.
-deleteUser
-    :: Text -- ^ 'dUsername'
-    -> Text -- ^ 'dBrokerId'
-    -> DeleteUser
-deleteUser pUsername_ pBrokerId_ =
-  DeleteUser' {_dUsername = pUsername_, _dBrokerId = pBrokerId_}
-
-
--- | The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-dUsername :: Lens' DeleteUser Text
-dUsername = lens _dUsername (\ s a -> s{_dUsername = a})
-
--- | The unique ID that Amazon MQ generates for the broker.
-dBrokerId :: Lens' DeleteUser Text
-dBrokerId = lens _dBrokerId (\ s a -> s{_dBrokerId = a})
-
-instance AWSRequest DeleteUser where
-        type Rs DeleteUser = DeleteUserResponse
-        request = delete mq
-        response
-          = receiveEmpty
-              (\ s h x ->
-                 DeleteUserResponse' <$> (pure (fromEnum s)))
-
-instance Hashable DeleteUser where
-
-instance NFData DeleteUser where
-
-instance ToHeaders DeleteUser where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DeleteUser where
-        toPath DeleteUser'{..}
-          = mconcat
-              ["/v1/brokers/", toBS _dBrokerId, "/users/",
-               toBS _dUsername]
-
-instance ToQuery DeleteUser where
-        toQuery = const mempty
-
--- | /See:/ 'deleteUserResponse' smart constructor.
-newtype DeleteUserResponse = DeleteUserResponse'
-  { _delrsResponseStatus :: Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DeleteUserResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'delrsResponseStatus' - -- | The response status code.
-deleteUserResponse
-    :: Int -- ^ 'delrsResponseStatus'
-    -> DeleteUserResponse
-deleteUserResponse pResponseStatus_ =
-  DeleteUserResponse' {_delrsResponseStatus = pResponseStatus_}
-
-
--- | -- | The response status code.
-delrsResponseStatus :: Lens' DeleteUserResponse Int
-delrsResponseStatus = lens _delrsResponseStatus (\ s a -> s{_delrsResponseStatus = a})
-
-instance NFData DeleteUserResponse where
diff --git a/gen/Network/AWS/MQ/DescribeBroker.hs b/gen/Network/AWS/MQ/DescribeBroker.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/DescribeBroker.hs
+++ /dev/null
@@ -1,275 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.DescribeBroker
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns information about the specified broker.
-module Network.AWS.MQ.DescribeBroker
-    (
-    -- * Creating a Request
-      describeBroker
-    , DescribeBroker
-    -- * Request Lenses
-    , desBrokerId
-
-    -- * Destructuring the Response
-    , describeBrokerResponse
-    , DescribeBrokerResponse
-    -- * Response Lenses
-    , dbrsBrokerName
-    , dbrsEngineVersion
-    , dbrsBrokerState
-    , dbrsPubliclyAccessible
-    , dbrsAutoMinorVersionUpgrade
-    , dbrsSecurityGroups
-    , dbrsUsers
-    , dbrsSubnetIds
-    , dbrsConfigurations
-    , dbrsMaintenanceWindowStartTime
-    , dbrsDeploymentMode
-    , dbrsBrokerId
-    , dbrsEngineType
-    , dbrsBrokerARN
-    , dbrsBrokerInstances
-    , dbrsHostInstanceType
-    , dbrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'describeBroker' smart constructor.
-newtype DescribeBroker = DescribeBroker'
-  { _desBrokerId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeBroker' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'desBrokerId' - The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-describeBroker
-    :: Text -- ^ 'desBrokerId'
-    -> DescribeBroker
-describeBroker pBrokerId_ = DescribeBroker' {_desBrokerId = pBrokerId_}
-
-
--- | The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-desBrokerId :: Lens' DescribeBroker Text
-desBrokerId = lens _desBrokerId (\ s a -> s{_desBrokerId = a})
-
-instance AWSRequest DescribeBroker where
-        type Rs DescribeBroker = DescribeBrokerResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeBrokerResponse' <$>
-                   (x .?> "brokerName") <*> (x .?> "engineVersion") <*>
-                     (x .?> "brokerState")
-                     <*> (x .?> "publiclyAccessible")
-                     <*> (x .?> "autoMinorVersionUpgrade")
-                     <*> (x .?> "securityGroups" .!@ mempty)
-                     <*> (x .?> "users" .!@ mempty)
-                     <*> (x .?> "subnetIds" .!@ mempty)
-                     <*> (x .?> "configurations")
-                     <*> (x .?> "maintenanceWindowStartTime")
-                     <*> (x .?> "deploymentMode")
-                     <*> (x .?> "brokerId")
-                     <*> (x .?> "engineType")
-                     <*> (x .?> "brokerArn")
-                     <*> (x .?> "brokerInstances" .!@ mempty)
-                     <*> (x .?> "hostInstanceType")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable DescribeBroker where
-
-instance NFData DescribeBroker where
-
-instance ToHeaders DescribeBroker where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DescribeBroker where
-        toPath DescribeBroker'{..}
-          = mconcat ["/v1/brokers/", toBS _desBrokerId]
-
-instance ToQuery DescribeBroker where
-        toQuery = const mempty
-
--- | /See:/ 'describeBrokerResponse' smart constructor.
-data DescribeBrokerResponse = DescribeBrokerResponse'
-  { _dbrsBrokerName                 :: !(Maybe Text)
-  , _dbrsEngineVersion              :: !(Maybe Text)
-  , _dbrsBrokerState                :: !(Maybe BrokerState)
-  , _dbrsPubliclyAccessible         :: !(Maybe Bool)
-  , _dbrsAutoMinorVersionUpgrade    :: !(Maybe Bool)
-  , _dbrsSecurityGroups             :: !(Maybe [Text])
-  , _dbrsUsers                      :: !(Maybe [UserSummary])
-  , _dbrsSubnetIds                  :: !(Maybe [Text])
-  , _dbrsConfigurations             :: !(Maybe Configurations)
-  , _dbrsMaintenanceWindowStartTime :: !(Maybe WeeklyStartTime)
-  , _dbrsDeploymentMode             :: !(Maybe DeploymentMode)
-  , _dbrsBrokerId                   :: !(Maybe Text)
-  , _dbrsEngineType                 :: !(Maybe EngineType)
-  , _dbrsBrokerARN                  :: !(Maybe Text)
-  , _dbrsBrokerInstances            :: !(Maybe [BrokerInstance])
-  , _dbrsHostInstanceType           :: !(Maybe Text)
-  , _dbrsResponseStatus             :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeBrokerResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dbrsBrokerName' - The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
---
--- * 'dbrsEngineVersion' - The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.
---
--- * 'dbrsBrokerState' - The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS
---
--- * 'dbrsPubliclyAccessible' - Required. Enables connections from applications outside of the VPC that hosts the broker's subnets.
---
--- * 'dbrsAutoMinorVersionUpgrade' - Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot.
---
--- * 'dbrsSecurityGroups' - Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.
---
--- * 'dbrsUsers' - The list of all ActiveMQ usernames for the specified broker.
---
--- * 'dbrsSubnetIds' - The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets.
---
--- * 'dbrsConfigurations' - The list of all revisions for the specified configuration.
---
--- * 'dbrsMaintenanceWindowStartTime' - The parameters that determine the WeeklyStartTime.
---
--- * 'dbrsDeploymentMode' - Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
---
--- * 'dbrsBrokerId' - The unique ID that Amazon MQ generates for the broker.
---
--- * 'dbrsEngineType' - Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
---
--- * 'dbrsBrokerARN' - The Amazon Resource Name (ARN) of the broker.
---
--- * 'dbrsBrokerInstances' - A list of information about allocated brokers.
---
--- * 'dbrsHostInstanceType' - The broker's instance type. Possible values: mq.t2.micro, mq.m4.large
---
--- * 'dbrsResponseStatus' - -- | The response status code.
-describeBrokerResponse
-    :: Int -- ^ 'dbrsResponseStatus'
-    -> DescribeBrokerResponse
-describeBrokerResponse pResponseStatus_ =
-  DescribeBrokerResponse'
-    { _dbrsBrokerName = Nothing
-    , _dbrsEngineVersion = Nothing
-    , _dbrsBrokerState = Nothing
-    , _dbrsPubliclyAccessible = Nothing
-    , _dbrsAutoMinorVersionUpgrade = Nothing
-    , _dbrsSecurityGroups = Nothing
-    , _dbrsUsers = Nothing
-    , _dbrsSubnetIds = Nothing
-    , _dbrsConfigurations = Nothing
-    , _dbrsMaintenanceWindowStartTime = Nothing
-    , _dbrsDeploymentMode = Nothing
-    , _dbrsBrokerId = Nothing
-    , _dbrsEngineType = Nothing
-    , _dbrsBrokerARN = Nothing
-    , _dbrsBrokerInstances = Nothing
-    , _dbrsHostInstanceType = Nothing
-    , _dbrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-dbrsBrokerName :: Lens' DescribeBrokerResponse (Maybe Text)
-dbrsBrokerName = lens _dbrsBrokerName (\ s a -> s{_dbrsBrokerName = a})
-
--- | The version of the broker engine. Note: Currently, Amazon MQ supports only 5.15.0.
-dbrsEngineVersion :: Lens' DescribeBrokerResponse (Maybe Text)
-dbrsEngineVersion = lens _dbrsEngineVersion (\ s a -> s{_dbrsEngineVersion = a})
-
--- | The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS
-dbrsBrokerState :: Lens' DescribeBrokerResponse (Maybe BrokerState)
-dbrsBrokerState = lens _dbrsBrokerState (\ s a -> s{_dbrsBrokerState = a})
-
--- | Required. Enables connections from applications outside of the VPC that hosts the broker's subnets.
-dbrsPubliclyAccessible :: Lens' DescribeBrokerResponse (Maybe Bool)
-dbrsPubliclyAccessible = lens _dbrsPubliclyAccessible (\ s a -> s{_dbrsPubliclyAccessible = a})
-
--- | Required. Enables automatic upgrades to new minor versions for brokers, as Apache releases the versions. The automatic upgrades occur during the maintenance window of the broker or after a manual broker reboot.
-dbrsAutoMinorVersionUpgrade :: Lens' DescribeBrokerResponse (Maybe Bool)
-dbrsAutoMinorVersionUpgrade = lens _dbrsAutoMinorVersionUpgrade (\ s a -> s{_dbrsAutoMinorVersionUpgrade = a})
-
--- | Required. The list of rules (1 minimum, 125 maximum) that authorize connections to brokers.
-dbrsSecurityGroups :: Lens' DescribeBrokerResponse [Text]
-dbrsSecurityGroups = lens _dbrsSecurityGroups (\ s a -> s{_dbrsSecurityGroups = a}) . _Default . _Coerce
-
--- | The list of all ActiveMQ usernames for the specified broker.
-dbrsUsers :: Lens' DescribeBrokerResponse [UserSummary]
-dbrsUsers = lens _dbrsUsers (\ s a -> s{_dbrsUsers = a}) . _Default . _Coerce
-
--- | The list of groups (2 maximum) that define which subnets and IP ranges the broker can use from different Availability Zones. A SINGLE_INSTANCE deployment requires one subnet (for example, the default subnet). An ACTIVE_STANDBY_MULTI_AZ deployment requires two subnets.
-dbrsSubnetIds :: Lens' DescribeBrokerResponse [Text]
-dbrsSubnetIds = lens _dbrsSubnetIds (\ s a -> s{_dbrsSubnetIds = a}) . _Default . _Coerce
-
--- | The list of all revisions for the specified configuration.
-dbrsConfigurations :: Lens' DescribeBrokerResponse (Maybe Configurations)
-dbrsConfigurations = lens _dbrsConfigurations (\ s a -> s{_dbrsConfigurations = a})
-
--- | The parameters that determine the WeeklyStartTime.
-dbrsMaintenanceWindowStartTime :: Lens' DescribeBrokerResponse (Maybe WeeklyStartTime)
-dbrsMaintenanceWindowStartTime = lens _dbrsMaintenanceWindowStartTime (\ s a -> s{_dbrsMaintenanceWindowStartTime = a})
-
--- | Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
-dbrsDeploymentMode :: Lens' DescribeBrokerResponse (Maybe DeploymentMode)
-dbrsDeploymentMode = lens _dbrsDeploymentMode (\ s a -> s{_dbrsDeploymentMode = a})
-
--- | The unique ID that Amazon MQ generates for the broker.
-dbrsBrokerId :: Lens' DescribeBrokerResponse (Maybe Text)
-dbrsBrokerId = lens _dbrsBrokerId (\ s a -> s{_dbrsBrokerId = a})
-
--- | Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-dbrsEngineType :: Lens' DescribeBrokerResponse (Maybe EngineType)
-dbrsEngineType = lens _dbrsEngineType (\ s a -> s{_dbrsEngineType = a})
-
--- | The Amazon Resource Name (ARN) of the broker.
-dbrsBrokerARN :: Lens' DescribeBrokerResponse (Maybe Text)
-dbrsBrokerARN = lens _dbrsBrokerARN (\ s a -> s{_dbrsBrokerARN = a})
-
--- | A list of information about allocated brokers.
-dbrsBrokerInstances :: Lens' DescribeBrokerResponse [BrokerInstance]
-dbrsBrokerInstances = lens _dbrsBrokerInstances (\ s a -> s{_dbrsBrokerInstances = a}) . _Default . _Coerce
-
--- | The broker's instance type. Possible values: mq.t2.micro, mq.m4.large
-dbrsHostInstanceType :: Lens' DescribeBrokerResponse (Maybe Text)
-dbrsHostInstanceType = lens _dbrsHostInstanceType (\ s a -> s{_dbrsHostInstanceType = a})
-
--- | -- | The response status code.
-dbrsResponseStatus :: Lens' DescribeBrokerResponse Int
-dbrsResponseStatus = lens _dbrsResponseStatus (\ s a -> s{_dbrsResponseStatus = a})
-
-instance NFData DescribeBrokerResponse where
diff --git a/gen/Network/AWS/MQ/DescribeConfiguration.hs b/gen/Network/AWS/MQ/DescribeConfiguration.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/DescribeConfiguration.hs
+++ /dev/null
@@ -1,188 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.DescribeConfiguration
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns information about the specified configuration.
-module Network.AWS.MQ.DescribeConfiguration
-    (
-    -- * Creating a Request
-      describeConfiguration
-    , DescribeConfiguration
-    -- * Request Lenses
-    , dcConfigurationId
-
-    -- * Destructuring the Response
-    , describeConfigurationResponse
-    , DescribeConfigurationResponse
-    -- * Response Lenses
-    , dcrsEngineVersion
-    , dcrsARN
-    , dcrsLatestRevision
-    , dcrsName
-    , dcrsId
-    , dcrsDescription
-    , dcrsEngineType
-    , dcrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'describeConfiguration' smart constructor.
-newtype DescribeConfiguration = DescribeConfiguration'
-  { _dcConfigurationId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dcConfigurationId' - The unique ID that Amazon MQ generates for the configuration.
-describeConfiguration
-    :: Text -- ^ 'dcConfigurationId'
-    -> DescribeConfiguration
-describeConfiguration pConfigurationId_ =
-  DescribeConfiguration' {_dcConfigurationId = pConfigurationId_}
-
-
--- | The unique ID that Amazon MQ generates for the configuration.
-dcConfigurationId :: Lens' DescribeConfiguration Text
-dcConfigurationId = lens _dcConfigurationId (\ s a -> s{_dcConfigurationId = a})
-
-instance AWSRequest DescribeConfiguration where
-        type Rs DescribeConfiguration =
-             DescribeConfigurationResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeConfigurationResponse' <$>
-                   (x .?> "engineVersion") <*> (x .?> "arn") <*>
-                     (x .?> "latestRevision")
-                     <*> (x .?> "name")
-                     <*> (x .?> "id")
-                     <*> (x .?> "description")
-                     <*> (x .?> "engineType")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable DescribeConfiguration where
-
-instance NFData DescribeConfiguration where
-
-instance ToHeaders DescribeConfiguration where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DescribeConfiguration where
-        toPath DescribeConfiguration'{..}
-          = mconcat
-              ["/v1/configurations/", toBS _dcConfigurationId]
-
-instance ToQuery DescribeConfiguration where
-        toQuery = const mempty
-
--- | /See:/ 'describeConfigurationResponse' smart constructor.
-data DescribeConfigurationResponse = DescribeConfigurationResponse'
-  { _dcrsEngineVersion  :: !(Maybe Text)
-  , _dcrsARN            :: !(Maybe Text)
-  , _dcrsLatestRevision :: !(Maybe ConfigurationRevision)
-  , _dcrsName           :: !(Maybe Text)
-  , _dcrsId             :: !(Maybe Text)
-  , _dcrsDescription    :: !(Maybe Text)
-  , _dcrsEngineType     :: !(Maybe EngineType)
-  , _dcrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeConfigurationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dcrsEngineVersion' - Required. The version of the broker engine.
---
--- * 'dcrsARN' - Required. The ARN of the configuration.
---
--- * 'dcrsLatestRevision' - Required. The latest revision of the configuration.
---
--- * 'dcrsName' - Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
---
--- * 'dcrsId' - Required. The unique ID that Amazon MQ generates for the configuration.
---
--- * 'dcrsDescription' - Required. The description of the configuration.
---
--- * 'dcrsEngineType' - Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
---
--- * 'dcrsResponseStatus' - -- | The response status code.
-describeConfigurationResponse
-    :: Int -- ^ 'dcrsResponseStatus'
-    -> DescribeConfigurationResponse
-describeConfigurationResponse pResponseStatus_ =
-  DescribeConfigurationResponse'
-    { _dcrsEngineVersion = Nothing
-    , _dcrsARN = Nothing
-    , _dcrsLatestRevision = Nothing
-    , _dcrsName = Nothing
-    , _dcrsId = Nothing
-    , _dcrsDescription = Nothing
-    , _dcrsEngineType = Nothing
-    , _dcrsResponseStatus = pResponseStatus_
-    }
-
-
--- | Required. The version of the broker engine.
-dcrsEngineVersion :: Lens' DescribeConfigurationResponse (Maybe Text)
-dcrsEngineVersion = lens _dcrsEngineVersion (\ s a -> s{_dcrsEngineVersion = a})
-
--- | Required. The ARN of the configuration.
-dcrsARN :: Lens' DescribeConfigurationResponse (Maybe Text)
-dcrsARN = lens _dcrsARN (\ s a -> s{_dcrsARN = a})
-
--- | Required. The latest revision of the configuration.
-dcrsLatestRevision :: Lens' DescribeConfigurationResponse (Maybe ConfigurationRevision)
-dcrsLatestRevision = lens _dcrsLatestRevision (\ s a -> s{_dcrsLatestRevision = a})
-
--- | Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
-dcrsName :: Lens' DescribeConfigurationResponse (Maybe Text)
-dcrsName = lens _dcrsName (\ s a -> s{_dcrsName = a})
-
--- | Required. The unique ID that Amazon MQ generates for the configuration.
-dcrsId :: Lens' DescribeConfigurationResponse (Maybe Text)
-dcrsId = lens _dcrsId (\ s a -> s{_dcrsId = a})
-
--- | Required. The description of the configuration.
-dcrsDescription :: Lens' DescribeConfigurationResponse (Maybe Text)
-dcrsDescription = lens _dcrsDescription (\ s a -> s{_dcrsDescription = a})
-
--- | Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-dcrsEngineType :: Lens' DescribeConfigurationResponse (Maybe EngineType)
-dcrsEngineType = lens _dcrsEngineType (\ s a -> s{_dcrsEngineType = a})
-
--- | -- | The response status code.
-dcrsResponseStatus :: Lens' DescribeConfigurationResponse Int
-dcrsResponseStatus = lens _dcrsResponseStatus (\ s a -> s{_dcrsResponseStatus = a})
-
-instance NFData DescribeConfigurationResponse where
diff --git a/gen/Network/AWS/MQ/DescribeConfigurationRevision.hs b/gen/Network/AWS/MQ/DescribeConfigurationRevision.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/DescribeConfigurationRevision.hs
+++ /dev/null
@@ -1,164 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.DescribeConfigurationRevision
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns the specified configuration revision for the specified configuration.
-module Network.AWS.MQ.DescribeConfigurationRevision
-    (
-    -- * Creating a Request
-      describeConfigurationRevision
-    , DescribeConfigurationRevision
-    -- * Request Lenses
-    , dcrConfigurationRevision
-    , dcrConfigurationId
-
-    -- * Destructuring the Response
-    , describeConfigurationRevisionResponse
-    , DescribeConfigurationRevisionResponse
-    -- * Response Lenses
-    , dcrrsConfigurationId
-    , dcrrsData
-    , dcrrsDescription
-    , dcrrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'describeConfigurationRevision' smart constructor.
-data DescribeConfigurationRevision = DescribeConfigurationRevision'
-  { _dcrConfigurationRevision :: !Text
-  , _dcrConfigurationId       :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeConfigurationRevision' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dcrConfigurationRevision' - The revision of the configuration.
---
--- * 'dcrConfigurationId' - The unique ID that Amazon MQ generates for the configuration.
-describeConfigurationRevision
-    :: Text -- ^ 'dcrConfigurationRevision'
-    -> Text -- ^ 'dcrConfigurationId'
-    -> DescribeConfigurationRevision
-describeConfigurationRevision pConfigurationRevision_ pConfigurationId_ =
-  DescribeConfigurationRevision'
-    { _dcrConfigurationRevision = pConfigurationRevision_
-    , _dcrConfigurationId = pConfigurationId_
-    }
-
-
--- | The revision of the configuration.
-dcrConfigurationRevision :: Lens' DescribeConfigurationRevision Text
-dcrConfigurationRevision = lens _dcrConfigurationRevision (\ s a -> s{_dcrConfigurationRevision = a})
-
--- | The unique ID that Amazon MQ generates for the configuration.
-dcrConfigurationId :: Lens' DescribeConfigurationRevision Text
-dcrConfigurationId = lens _dcrConfigurationId (\ s a -> s{_dcrConfigurationId = a})
-
-instance AWSRequest DescribeConfigurationRevision
-         where
-        type Rs DescribeConfigurationRevision =
-             DescribeConfigurationRevisionResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeConfigurationRevisionResponse' <$>
-                   (x .?> "configurationId") <*> (x .?> "data") <*>
-                     (x .?> "description")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable DescribeConfigurationRevision where
-
-instance NFData DescribeConfigurationRevision where
-
-instance ToHeaders DescribeConfigurationRevision
-         where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DescribeConfigurationRevision where
-        toPath DescribeConfigurationRevision'{..}
-          = mconcat
-              ["/v1/configurations/", toBS _dcrConfigurationId,
-               "/revisions/", toBS _dcrConfigurationRevision]
-
-instance ToQuery DescribeConfigurationRevision where
-        toQuery = const mempty
-
--- | /See:/ 'describeConfigurationRevisionResponse' smart constructor.
-data DescribeConfigurationRevisionResponse = DescribeConfigurationRevisionResponse'
-  { _dcrrsConfigurationId :: !(Maybe Text)
-  , _dcrrsData            :: !(Maybe Text)
-  , _dcrrsDescription     :: !(Maybe Text)
-  , _dcrrsResponseStatus  :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeConfigurationRevisionResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dcrrsConfigurationId' - Required. The unique ID that Amazon MQ generates for the configuration.
---
--- * 'dcrrsData' - Required. The base64-encoded XML configuration.
---
--- * 'dcrrsDescription' - The description of the configuration.
---
--- * 'dcrrsResponseStatus' - -- | The response status code.
-describeConfigurationRevisionResponse
-    :: Int -- ^ 'dcrrsResponseStatus'
-    -> DescribeConfigurationRevisionResponse
-describeConfigurationRevisionResponse pResponseStatus_ =
-  DescribeConfigurationRevisionResponse'
-    { _dcrrsConfigurationId = Nothing
-    , _dcrrsData = Nothing
-    , _dcrrsDescription = Nothing
-    , _dcrrsResponseStatus = pResponseStatus_
-    }
-
-
--- | Required. The unique ID that Amazon MQ generates for the configuration.
-dcrrsConfigurationId :: Lens' DescribeConfigurationRevisionResponse (Maybe Text)
-dcrrsConfigurationId = lens _dcrrsConfigurationId (\ s a -> s{_dcrrsConfigurationId = a})
-
--- | Required. The base64-encoded XML configuration.
-dcrrsData :: Lens' DescribeConfigurationRevisionResponse (Maybe Text)
-dcrrsData = lens _dcrrsData (\ s a -> s{_dcrrsData = a})
-
--- | The description of the configuration.
-dcrrsDescription :: Lens' DescribeConfigurationRevisionResponse (Maybe Text)
-dcrrsDescription = lens _dcrrsDescription (\ s a -> s{_dcrrsDescription = a})
-
--- | -- | The response status code.
-dcrrsResponseStatus :: Lens' DescribeConfigurationRevisionResponse Int
-dcrrsResponseStatus = lens _dcrrsResponseStatus (\ s a -> s{_dcrrsResponseStatus = a})
-
-instance NFData DescribeConfigurationRevisionResponse
-         where
diff --git a/gen/Network/AWS/MQ/DescribeUser.hs b/gen/Network/AWS/MQ/DescribeUser.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/DescribeUser.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.DescribeUser
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns information about an ActiveMQ user.
-module Network.AWS.MQ.DescribeUser
-    (
-    -- * Creating a Request
-      describeUser
-    , DescribeUser
-    -- * Request Lenses
-    , duUsername
-    , duBrokerId
-
-    -- * Destructuring the Response
-    , describeUserResponse
-    , DescribeUserResponse
-    -- * Response Lenses
-    , dursGroups
-    , dursPending
-    , dursConsoleAccess
-    , dursUsername
-    , dursBrokerId
-    , dursResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'describeUser' smart constructor.
-data DescribeUser = DescribeUser'
-  { _duUsername :: !Text
-  , _duBrokerId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeUser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'duUsername' - The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'duBrokerId' - The unique ID that Amazon MQ generates for the broker.
-describeUser
-    :: Text -- ^ 'duUsername'
-    -> Text -- ^ 'duBrokerId'
-    -> DescribeUser
-describeUser pUsername_ pBrokerId_ =
-  DescribeUser' {_duUsername = pUsername_, _duBrokerId = pBrokerId_}
-
-
--- | The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-duUsername :: Lens' DescribeUser Text
-duUsername = lens _duUsername (\ s a -> s{_duUsername = a})
-
--- | The unique ID that Amazon MQ generates for the broker.
-duBrokerId :: Lens' DescribeUser Text
-duBrokerId = lens _duBrokerId (\ s a -> s{_duBrokerId = a})
-
-instance AWSRequest DescribeUser where
-        type Rs DescribeUser = DescribeUserResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 DescribeUserResponse' <$>
-                   (x .?> "groups" .!@ mempty) <*> (x .?> "pending") <*>
-                     (x .?> "consoleAccess")
-                     <*> (x .?> "username")
-                     <*> (x .?> "brokerId")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable DescribeUser where
-
-instance NFData DescribeUser where
-
-instance ToHeaders DescribeUser where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath DescribeUser where
-        toPath DescribeUser'{..}
-          = mconcat
-              ["/v1/brokers/", toBS _duBrokerId, "/users/",
-               toBS _duUsername]
-
-instance ToQuery DescribeUser where
-        toQuery = const mempty
-
--- | /See:/ 'describeUserResponse' smart constructor.
-data DescribeUserResponse = DescribeUserResponse'
-  { _dursGroups         :: !(Maybe [Text])
-  , _dursPending        :: !(Maybe UserPendingChanges)
-  , _dursConsoleAccess  :: !(Maybe Bool)
-  , _dursUsername       :: !(Maybe Text)
-  , _dursBrokerId       :: !(Maybe Text)
-  , _dursResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'DescribeUserResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'dursGroups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'dursPending' - The status of the changes pending for the ActiveMQ user.
---
--- * 'dursConsoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
---
--- * 'dursUsername' - Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'dursBrokerId' - Required. The unique ID that Amazon MQ generates for the broker.
---
--- * 'dursResponseStatus' - -- | The response status code.
-describeUserResponse
-    :: Int -- ^ 'dursResponseStatus'
-    -> DescribeUserResponse
-describeUserResponse pResponseStatus_ =
-  DescribeUserResponse'
-    { _dursGroups = Nothing
-    , _dursPending = Nothing
-    , _dursConsoleAccess = Nothing
-    , _dursUsername = Nothing
-    , _dursBrokerId = Nothing
-    , _dursResponseStatus = pResponseStatus_
-    }
-
-
--- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-dursGroups :: Lens' DescribeUserResponse [Text]
-dursGroups = lens _dursGroups (\ s a -> s{_dursGroups = a}) . _Default . _Coerce
-
--- | The status of the changes pending for the ActiveMQ user.
-dursPending :: Lens' DescribeUserResponse (Maybe UserPendingChanges)
-dursPending = lens _dursPending (\ s a -> s{_dursPending = a})
-
--- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
-dursConsoleAccess :: Lens' DescribeUserResponse (Maybe Bool)
-dursConsoleAccess = lens _dursConsoleAccess (\ s a -> s{_dursConsoleAccess = a})
-
--- | Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-dursUsername :: Lens' DescribeUserResponse (Maybe Text)
-dursUsername = lens _dursUsername (\ s a -> s{_dursUsername = a})
-
--- | Required. The unique ID that Amazon MQ generates for the broker.
-dursBrokerId :: Lens' DescribeUserResponse (Maybe Text)
-dursBrokerId = lens _dursBrokerId (\ s a -> s{_dursBrokerId = a})
-
--- | -- | The response status code.
-dursResponseStatus :: Lens' DescribeUserResponse Int
-dursResponseStatus = lens _dursResponseStatus (\ s a -> s{_dursResponseStatus = a})
-
-instance NFData DescribeUserResponse where
diff --git a/gen/Network/AWS/MQ/ListBrokers.hs b/gen/Network/AWS/MQ/ListBrokers.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/ListBrokers.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.ListBrokers
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns a list of all brokers.
-module Network.AWS.MQ.ListBrokers
-    (
-    -- * Creating a Request
-      listBrokers
-    , ListBrokers
-    -- * Request Lenses
-    , lbNextToken
-    , lbMaxResults
-
-    -- * Destructuring the Response
-    , listBrokersResponse
-    , ListBrokersResponse
-    -- * Response Lenses
-    , lbrsNextToken
-    , lbrsBrokerSummaries
-    , lbrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'listBrokers' smart constructor.
-data ListBrokers = ListBrokers'
-  { _lbNextToken  :: !(Maybe Text)
-  , _lbMaxResults :: !(Maybe Nat)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListBrokers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lbNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lbMaxResults' - The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
-listBrokers
-    :: ListBrokers
-listBrokers = ListBrokers' {_lbNextToken = Nothing, _lbMaxResults = Nothing}
-
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lbNextToken :: Lens' ListBrokers (Maybe Text)
-lbNextToken = lens _lbNextToken (\ s a -> s{_lbNextToken = a})
-
--- | The maximum number of brokers that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
-lbMaxResults :: Lens' ListBrokers (Maybe Natural)
-lbMaxResults = lens _lbMaxResults (\ s a -> s{_lbMaxResults = a}) . mapping _Nat
-
-instance AWSRequest ListBrokers where
-        type Rs ListBrokers = ListBrokersResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListBrokersResponse' <$>
-                   (x .?> "nextToken") <*>
-                     (x .?> "brokerSummaries" .!@ mempty)
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListBrokers where
-
-instance NFData ListBrokers where
-
-instance ToHeaders ListBrokers where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath ListBrokers where
-        toPath = const "/v1/brokers"
-
-instance ToQuery ListBrokers where
-        toQuery ListBrokers'{..}
-          = mconcat
-              ["nextToken" =: _lbNextToken,
-               "maxResults" =: _lbMaxResults]
-
--- | /See:/ 'listBrokersResponse' smart constructor.
-data ListBrokersResponse = ListBrokersResponse'
-  { _lbrsNextToken       :: !(Maybe Text)
-  , _lbrsBrokerSummaries :: !(Maybe [BrokerSummary])
-  , _lbrsResponseStatus  :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListBrokersResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lbrsNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lbrsBrokerSummaries' - A list of information about all brokers.
---
--- * 'lbrsResponseStatus' - -- | The response status code.
-listBrokersResponse
-    :: Int -- ^ 'lbrsResponseStatus'
-    -> ListBrokersResponse
-listBrokersResponse pResponseStatus_ =
-  ListBrokersResponse'
-    { _lbrsNextToken = Nothing
-    , _lbrsBrokerSummaries = Nothing
-    , _lbrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lbrsNextToken :: Lens' ListBrokersResponse (Maybe Text)
-lbrsNextToken = lens _lbrsNextToken (\ s a -> s{_lbrsNextToken = a})
-
--- | A list of information about all brokers.
-lbrsBrokerSummaries :: Lens' ListBrokersResponse [BrokerSummary]
-lbrsBrokerSummaries = lens _lbrsBrokerSummaries (\ s a -> s{_lbrsBrokerSummaries = a}) . _Default . _Coerce
-
--- | -- | The response status code.
-lbrsResponseStatus :: Lens' ListBrokersResponse Int
-lbrsResponseStatus = lens _lbrsResponseStatus (\ s a -> s{_lbrsResponseStatus = a})
-
-instance NFData ListBrokersResponse where
diff --git a/gen/Network/AWS/MQ/ListConfigurationRevisions.hs b/gen/Network/AWS/MQ/ListConfigurationRevisions.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/ListConfigurationRevisions.hs
+++ /dev/null
@@ -1,183 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.ListConfigurationRevisions
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns a list of all revisions for the specified configuration.
-module Network.AWS.MQ.ListConfigurationRevisions
-    (
-    -- * Creating a Request
-      listConfigurationRevisions
-    , ListConfigurationRevisions
-    -- * Request Lenses
-    , lcrNextToken
-    , lcrMaxResults
-    , lcrConfigurationId
-
-    -- * Destructuring the Response
-    , listConfigurationRevisionsResponse
-    , ListConfigurationRevisionsResponse
-    -- * Response Lenses
-    , lcrrsConfigurationId
-    , lcrrsNextToken
-    , lcrrsRevisions
-    , lcrrsMaxResults
-    , lcrrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'listConfigurationRevisions' smart constructor.
-data ListConfigurationRevisions = ListConfigurationRevisions'
-  { _lcrNextToken       :: !(Maybe Text)
-  , _lcrMaxResults      :: !(Maybe Nat)
-  , _lcrConfigurationId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListConfigurationRevisions' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcrNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lcrMaxResults' - The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
---
--- * 'lcrConfigurationId' - The unique ID that Amazon MQ generates for the configuration.
-listConfigurationRevisions
-    :: Text -- ^ 'lcrConfigurationId'
-    -> ListConfigurationRevisions
-listConfigurationRevisions pConfigurationId_ =
-  ListConfigurationRevisions'
-    { _lcrNextToken = Nothing
-    , _lcrMaxResults = Nothing
-    , _lcrConfigurationId = pConfigurationId_
-    }
-
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lcrNextToken :: Lens' ListConfigurationRevisions (Maybe Text)
-lcrNextToken = lens _lcrNextToken (\ s a -> s{_lcrNextToken = a})
-
--- | The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
-lcrMaxResults :: Lens' ListConfigurationRevisions (Maybe Natural)
-lcrMaxResults = lens _lcrMaxResults (\ s a -> s{_lcrMaxResults = a}) . mapping _Nat
-
--- | The unique ID that Amazon MQ generates for the configuration.
-lcrConfigurationId :: Lens' ListConfigurationRevisions Text
-lcrConfigurationId = lens _lcrConfigurationId (\ s a -> s{_lcrConfigurationId = a})
-
-instance AWSRequest ListConfigurationRevisions where
-        type Rs ListConfigurationRevisions =
-             ListConfigurationRevisionsResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListConfigurationRevisionsResponse' <$>
-                   (x .?> "configurationId") <*> (x .?> "nextToken") <*>
-                     (x .?> "revisions" .!@ mempty)
-                     <*> (x .?> "maxResults")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListConfigurationRevisions where
-
-instance NFData ListConfigurationRevisions where
-
-instance ToHeaders ListConfigurationRevisions where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath ListConfigurationRevisions where
-        toPath ListConfigurationRevisions'{..}
-          = mconcat
-              ["/v1/configurations/", toBS _lcrConfigurationId,
-               "/revisions"]
-
-instance ToQuery ListConfigurationRevisions where
-        toQuery ListConfigurationRevisions'{..}
-          = mconcat
-              ["nextToken" =: _lcrNextToken,
-               "maxResults" =: _lcrMaxResults]
-
--- | /See:/ 'listConfigurationRevisionsResponse' smart constructor.
-data ListConfigurationRevisionsResponse = ListConfigurationRevisionsResponse'
-  { _lcrrsConfigurationId :: !(Maybe Text)
-  , _lcrrsNextToken       :: !(Maybe Text)
-  , _lcrrsRevisions       :: !(Maybe [ConfigurationRevision])
-  , _lcrrsMaxResults      :: !(Maybe Int)
-  , _lcrrsResponseStatus  :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListConfigurationRevisionsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcrrsConfigurationId' - The unique ID that Amazon MQ generates for the configuration.
---
--- * 'lcrrsNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lcrrsRevisions' - The list of all revisions for the specified configuration.
---
--- * 'lcrrsMaxResults' - The maximum number of configuration revisions that can be returned per page (20 by default). This value must be an integer from 5 to 100.
---
--- * 'lcrrsResponseStatus' - -- | The response status code.
-listConfigurationRevisionsResponse
-    :: Int -- ^ 'lcrrsResponseStatus'
-    -> ListConfigurationRevisionsResponse
-listConfigurationRevisionsResponse pResponseStatus_ =
-  ListConfigurationRevisionsResponse'
-    { _lcrrsConfigurationId = Nothing
-    , _lcrrsNextToken = Nothing
-    , _lcrrsRevisions = Nothing
-    , _lcrrsMaxResults = Nothing
-    , _lcrrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The unique ID that Amazon MQ generates for the configuration.
-lcrrsConfigurationId :: Lens' ListConfigurationRevisionsResponse (Maybe Text)
-lcrrsConfigurationId = lens _lcrrsConfigurationId (\ s a -> s{_lcrrsConfigurationId = a})
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lcrrsNextToken :: Lens' ListConfigurationRevisionsResponse (Maybe Text)
-lcrrsNextToken = lens _lcrrsNextToken (\ s a -> s{_lcrrsNextToken = a})
-
--- | The list of all revisions for the specified configuration.
-lcrrsRevisions :: Lens' ListConfigurationRevisionsResponse [ConfigurationRevision]
-lcrrsRevisions = lens _lcrrsRevisions (\ s a -> s{_lcrrsRevisions = a}) . _Default . _Coerce
-
--- | The maximum number of configuration revisions that can be returned per page (20 by default). This value must be an integer from 5 to 100.
-lcrrsMaxResults :: Lens' ListConfigurationRevisionsResponse (Maybe Int)
-lcrrsMaxResults = lens _lcrrsMaxResults (\ s a -> s{_lcrrsMaxResults = a})
-
--- | -- | The response status code.
-lcrrsResponseStatus :: Lens' ListConfigurationRevisionsResponse Int
-lcrrsResponseStatus = lens _lcrrsResponseStatus (\ s a -> s{_lcrrsResponseStatus = a})
-
-instance NFData ListConfigurationRevisionsResponse
-         where
diff --git a/gen/Network/AWS/MQ/ListConfigurations.hs b/gen/Network/AWS/MQ/ListConfigurations.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/ListConfigurations.hs
+++ /dev/null
@@ -1,157 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.ListConfigurations
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns a list of all configurations.
-module Network.AWS.MQ.ListConfigurations
-    (
-    -- * Creating a Request
-      listConfigurations
-    , ListConfigurations
-    -- * Request Lenses
-    , lcNextToken
-    , lcMaxResults
-
-    -- * Destructuring the Response
-    , listConfigurationsResponse
-    , ListConfigurationsResponse
-    -- * Response Lenses
-    , lcrsConfigurations
-    , lcrsNextToken
-    , lcrsMaxResults
-    , lcrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'listConfigurations' smart constructor.
-data ListConfigurations = ListConfigurations'
-  { _lcNextToken  :: !(Maybe Text)
-  , _lcMaxResults :: !(Maybe Nat)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListConfigurations' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lcMaxResults' - The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
-listConfigurations
-    :: ListConfigurations
-listConfigurations =
-  ListConfigurations' {_lcNextToken = Nothing, _lcMaxResults = Nothing}
-
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lcNextToken :: Lens' ListConfigurations (Maybe Text)
-lcNextToken = lens _lcNextToken (\ s a -> s{_lcNextToken = a})
-
--- | The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
-lcMaxResults :: Lens' ListConfigurations (Maybe Natural)
-lcMaxResults = lens _lcMaxResults (\ s a -> s{_lcMaxResults = a}) . mapping _Nat
-
-instance AWSRequest ListConfigurations where
-        type Rs ListConfigurations =
-             ListConfigurationsResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListConfigurationsResponse' <$>
-                   (x .?> "configurations" .!@ mempty) <*>
-                     (x .?> "nextToken")
-                     <*> (x .?> "maxResults")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListConfigurations where
-
-instance NFData ListConfigurations where
-
-instance ToHeaders ListConfigurations where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath ListConfigurations where
-        toPath = const "/v1/configurations"
-
-instance ToQuery ListConfigurations where
-        toQuery ListConfigurations'{..}
-          = mconcat
-              ["nextToken" =: _lcNextToken,
-               "maxResults" =: _lcMaxResults]
-
--- | /See:/ 'listConfigurationsResponse' smart constructor.
-data ListConfigurationsResponse = ListConfigurationsResponse'
-  { _lcrsConfigurations :: !(Maybe [Configuration])
-  , _lcrsNextToken      :: !(Maybe Text)
-  , _lcrsMaxResults     :: !(Maybe Int)
-  , _lcrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListConfigurationsResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lcrsConfigurations' - The list of all revisions for the specified configuration.
---
--- * 'lcrsNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lcrsMaxResults' - The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
---
--- * 'lcrsResponseStatus' - -- | The response status code.
-listConfigurationsResponse
-    :: Int -- ^ 'lcrsResponseStatus'
-    -> ListConfigurationsResponse
-listConfigurationsResponse pResponseStatus_ =
-  ListConfigurationsResponse'
-    { _lcrsConfigurations = Nothing
-    , _lcrsNextToken = Nothing
-    , _lcrsMaxResults = Nothing
-    , _lcrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The list of all revisions for the specified configuration.
-lcrsConfigurations :: Lens' ListConfigurationsResponse [Configuration]
-lcrsConfigurations = lens _lcrsConfigurations (\ s a -> s{_lcrsConfigurations = a}) . _Default . _Coerce
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lcrsNextToken :: Lens' ListConfigurationsResponse (Maybe Text)
-lcrsNextToken = lens _lcrsNextToken (\ s a -> s{_lcrsNextToken = a})
-
--- | The maximum number of configurations that Amazon MQ can return per page (20 by default). This value must be an integer from 5 to 100.
-lcrsMaxResults :: Lens' ListConfigurationsResponse (Maybe Int)
-lcrsMaxResults = lens _lcrsMaxResults (\ s a -> s{_lcrsMaxResults = a})
-
--- | -- | The response status code.
-lcrsResponseStatus :: Lens' ListConfigurationsResponse Int
-lcrsResponseStatus = lens _lcrsResponseStatus (\ s a -> s{_lcrsResponseStatus = a})
-
-instance NFData ListConfigurationsResponse where
diff --git a/gen/Network/AWS/MQ/ListUsers.hs b/gen/Network/AWS/MQ/ListUsers.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/ListUsers.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.ListUsers
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Returns a list of all ActiveMQ users.
-module Network.AWS.MQ.ListUsers
-    (
-    -- * Creating a Request
-      listUsers
-    , ListUsers
-    -- * Request Lenses
-    , luNextToken
-    , luMaxResults
-    , luBrokerId
-
-    -- * Destructuring the Response
-    , listUsersResponse
-    , ListUsersResponse
-    -- * Response Lenses
-    , lursUsers
-    , lursNextToken
-    , lursBrokerId
-    , lursMaxResults
-    , lursResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'listUsers' smart constructor.
-data ListUsers = ListUsers'
-  { _luNextToken  :: !(Maybe Text)
-  , _luMaxResults :: !(Maybe Nat)
-  , _luBrokerId   :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListUsers' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'luNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'luMaxResults' - The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100.
---
--- * 'luBrokerId' - The unique ID that Amazon MQ generates for the broker.
-listUsers
-    :: Text -- ^ 'luBrokerId'
-    -> ListUsers
-listUsers pBrokerId_ =
-  ListUsers'
-    {_luNextToken = Nothing, _luMaxResults = Nothing, _luBrokerId = pBrokerId_}
-
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-luNextToken :: Lens' ListUsers (Maybe Text)
-luNextToken = lens _luNextToken (\ s a -> s{_luNextToken = a})
-
--- | The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100.
-luMaxResults :: Lens' ListUsers (Maybe Natural)
-luMaxResults = lens _luMaxResults (\ s a -> s{_luMaxResults = a}) . mapping _Nat
-
--- | The unique ID that Amazon MQ generates for the broker.
-luBrokerId :: Lens' ListUsers Text
-luBrokerId = lens _luBrokerId (\ s a -> s{_luBrokerId = a})
-
-instance AWSRequest ListUsers where
-        type Rs ListUsers = ListUsersResponse
-        request = get mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 ListUsersResponse' <$>
-                   (x .?> "users" .!@ mempty) <*> (x .?> "nextToken")
-                     <*> (x .?> "brokerId")
-                     <*> (x .?> "maxResults")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable ListUsers where
-
-instance NFData ListUsers where
-
-instance ToHeaders ListUsers where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToPath ListUsers where
-        toPath ListUsers'{..}
-          = mconcat
-              ["/v1/brokers/", toBS _luBrokerId, "/users"]
-
-instance ToQuery ListUsers where
-        toQuery ListUsers'{..}
-          = mconcat
-              ["nextToken" =: _luNextToken,
-               "maxResults" =: _luMaxResults]
-
--- | /See:/ 'listUsersResponse' smart constructor.
-data ListUsersResponse = ListUsersResponse'
-  { _lursUsers          :: !(Maybe [UserSummary])
-  , _lursNextToken      :: !(Maybe Text)
-  , _lursBrokerId       :: !(Maybe Text)
-  , _lursMaxResults     :: !(Maybe Int)
-  , _lursResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ListUsersResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'lursUsers' - Required. The list of all ActiveMQ usernames for the specified broker.
---
--- * 'lursNextToken' - The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
---
--- * 'lursBrokerId' - Required. The unique ID that Amazon MQ generates for the broker.
---
--- * 'lursMaxResults' - Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100.
---
--- * 'lursResponseStatus' - -- | The response status code.
-listUsersResponse
-    :: Int -- ^ 'lursResponseStatus'
-    -> ListUsersResponse
-listUsersResponse pResponseStatus_ =
-  ListUsersResponse'
-    { _lursUsers = Nothing
-    , _lursNextToken = Nothing
-    , _lursBrokerId = Nothing
-    , _lursMaxResults = Nothing
-    , _lursResponseStatus = pResponseStatus_
-    }
-
-
--- | Required. The list of all ActiveMQ usernames for the specified broker.
-lursUsers :: Lens' ListUsersResponse [UserSummary]
-lursUsers = lens _lursUsers (\ s a -> s{_lursUsers = a}) . _Default . _Coerce
-
--- | The token that specifies the next page of results Amazon MQ should return. To request the first page, leave nextToken empty.
-lursNextToken :: Lens' ListUsersResponse (Maybe Text)
-lursNextToken = lens _lursNextToken (\ s a -> s{_lursNextToken = a})
-
--- | Required. The unique ID that Amazon MQ generates for the broker.
-lursBrokerId :: Lens' ListUsersResponse (Maybe Text)
-lursBrokerId = lens _lursBrokerId (\ s a -> s{_lursBrokerId = a})
-
--- | Required. The maximum number of ActiveMQ users that can be returned per page (20 by default). This value must be an integer from 5 to 100.
-lursMaxResults :: Lens' ListUsersResponse (Maybe Int)
-lursMaxResults = lens _lursMaxResults (\ s a -> s{_lursMaxResults = a})
-
--- | -- | The response status code.
-lursResponseStatus :: Lens' ListUsersResponse Int
-lursResponseStatus = lens _lursResponseStatus (\ s a -> s{_lursResponseStatus = a})
-
-instance NFData ListUsersResponse where
diff --git a/gen/Network/AWS/MQ/RebootBroker.hs b/gen/Network/AWS/MQ/RebootBroker.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/RebootBroker.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.RebootBroker
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Reboots a broker. Note: This API is asynchronous.
-module Network.AWS.MQ.RebootBroker
-    (
-    -- * Creating a Request
-      rebootBroker
-    , RebootBroker
-    -- * Request Lenses
-    , rbBrokerId
-
-    -- * Destructuring the Response
-    , rebootBrokerResponse
-    , RebootBrokerResponse
-    -- * Response Lenses
-    , rbrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | /See:/ 'rebootBroker' smart constructor.
-newtype RebootBroker = RebootBroker'
-  { _rbBrokerId :: Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RebootBroker' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbBrokerId' - The unique ID that Amazon MQ generates for the broker.
-rebootBroker
-    :: Text -- ^ 'rbBrokerId'
-    -> RebootBroker
-rebootBroker pBrokerId_ = RebootBroker' {_rbBrokerId = pBrokerId_}
-
-
--- | The unique ID that Amazon MQ generates for the broker.
-rbBrokerId :: Lens' RebootBroker Text
-rbBrokerId = lens _rbBrokerId (\ s a -> s{_rbBrokerId = a})
-
-instance AWSRequest RebootBroker where
-        type Rs RebootBroker = RebootBrokerResponse
-        request = postJSON mq
-        response
-          = receiveEmpty
-              (\ s h x ->
-                 RebootBrokerResponse' <$> (pure (fromEnum s)))
-
-instance Hashable RebootBroker where
-
-instance NFData RebootBroker where
-
-instance ToHeaders RebootBroker where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON RebootBroker where
-        toJSON = const (Object mempty)
-
-instance ToPath RebootBroker where
-        toPath RebootBroker'{..}
-          = mconcat
-              ["/v1/brokers/", toBS _rbBrokerId, "/reboot"]
-
-instance ToQuery RebootBroker where
-        toQuery = const mempty
-
--- | /See:/ 'rebootBrokerResponse' smart constructor.
-newtype RebootBrokerResponse = RebootBrokerResponse'
-  { _rbrsResponseStatus :: Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'RebootBrokerResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'rbrsResponseStatus' - -- | The response status code.
-rebootBrokerResponse
-    :: Int -- ^ 'rbrsResponseStatus'
-    -> RebootBrokerResponse
-rebootBrokerResponse pResponseStatus_ =
-  RebootBrokerResponse' {_rbrsResponseStatus = pResponseStatus_}
-
-
--- | -- | The response status code.
-rbrsResponseStatus :: Lens' RebootBrokerResponse Int
-rbrsResponseStatus = lens _rbrsResponseStatus (\ s a -> s{_rbrsResponseStatus = a})
-
-instance NFData RebootBrokerResponse where
diff --git a/gen/Network/AWS/MQ/Types.hs b/gen/Network/AWS/MQ/Types.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/Types.hs
+++ /dev/null
@@ -1,202 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.Types
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.MQ.Types
-    (
-    -- * Service Configuration
-      mq
-
-    -- * Errors
-    , _ConflictException
-    , _ForbiddenException
-    , _NotFoundException
-    , _InternalServerErrorException
-    , _UnauthorizedException
-    , _BadRequestException
-
-    -- * BrokerState
-    , BrokerState (..)
-
-    -- * ChangeType
-    , ChangeType (..)
-
-    -- * DayOfWeek
-    , DayOfWeek (..)
-
-    -- * DeploymentMode
-    , DeploymentMode (..)
-
-    -- * EngineType
-    , EngineType (..)
-
-    -- * SanitizationWarningReason
-    , SanitizationWarningReason (..)
-
-    -- * BrokerInstance
-    , BrokerInstance
-    , brokerInstance
-    , biConsoleURL
-    , biEndpoints
-
-    -- * BrokerSummary
-    , BrokerSummary
-    , brokerSummary
-    , bsBrokerName
-    , bsBrokerState
-    , bsDeploymentMode
-    , bsBrokerId
-    , bsBrokerARN
-    , bsHostInstanceType
-
-    -- * Configuration
-    , Configuration
-    , configuration
-    , cEngineVersion
-    , cARN
-    , cLatestRevision
-    , cName
-    , cId
-    , cDescription
-    , cEngineType
-
-    -- * ConfigurationId
-    , ConfigurationId
-    , configurationId
-    , ciId
-    , ciRevision
-
-    -- * ConfigurationRevision
-    , ConfigurationRevision
-    , configurationRevision
-    , crRevision
-    , crDescription
-
-    -- * Configurations
-    , Configurations
-    , configurations
-    , cPending
-    , cHistory
-    , cCurrent
-
-    -- * SanitizationWarning
-    , SanitizationWarning
-    , sanitizationWarning
-    , swReason
-    , swAttributeName
-    , swElementName
-
-    -- * User
-    , User
-    , user
-    , uGroups
-    , uConsoleAccess
-    , uUsername
-    , uPassword
-
-    -- * UserPendingChanges
-    , UserPendingChanges
-    , userPendingChanges
-    , upcGroups
-    , upcConsoleAccess
-    , upcPendingChange
-
-    -- * UserSummary
-    , UserSummary
-    , userSummary
-    , usUsername
-    , usPendingChange
-
-    -- * WeeklyStartTime
-    , WeeklyStartTime
-    , weeklyStartTime
-    , wstTimeOfDay
-    , wstTimeZone
-    , wstDayOfWeek
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types.Product
-import Network.AWS.MQ.Types.Sum
-import Network.AWS.Prelude
-import Network.AWS.Sign.V4
-
--- | API version @2017-11-27@ of the Amazon MQ SDK configuration.
-mq :: Service
-mq =
-  Service
-    { _svcAbbrev = "MQ"
-    , _svcSigner = v4
-    , _svcPrefix = "mq"
-    , _svcVersion = "2017-11-27"
-    , _svcEndpoint = defaultEndpoint mq
-    , _svcTimeout = Just 70
-    , _svcCheck = statusSuccess
-    , _svcError = parseJSONError "MQ"
-    , _svcRetry = retry
-    }
-  where
-    retry =
-      Exponential
-        { _retryBase = 5.0e-2
-        , _retryGrowth = 2
-        , _retryAttempts = 5
-        , _retryCheck = check
-        }
-    check e
-      | has (hasCode "ThrottledException" . hasStatus 400) e =
-        Just "throttled_exception"
-      | has (hasStatus 429) e = Just "too_many_requests"
-      | has (hasCode "ThrottlingException" . hasStatus 400) e =
-        Just "throttling_exception"
-      | has (hasCode "Throttling" . hasStatus 400) e = Just "throttling"
-      | has (hasStatus 504) e = Just "gateway_timeout"
-      | has (hasCode "RequestThrottledException" . hasStatus 400) e =
-        Just "request_throttled_exception"
-      | has (hasStatus 502) e = Just "bad_gateway"
-      | has (hasStatus 503) e = Just "service_unavailable"
-      | has (hasStatus 500) e = Just "general_server_error"
-      | has (hasStatus 509) e = Just "limit_exceeded"
-      | otherwise = Nothing
-
-
--- | Returns information about an error.
-_ConflictException :: AsError a => Getting (First ServiceError) a ServiceError
-_ConflictException = _MatchServiceError mq "ConflictException" . hasStatus 409
-
-
--- | Returns information about an error.
-_ForbiddenException :: AsError a => Getting (First ServiceError) a ServiceError
-_ForbiddenException = _MatchServiceError mq "ForbiddenException" . hasStatus 403
-
-
--- | Returns information about an error.
-_NotFoundException :: AsError a => Getting (First ServiceError) a ServiceError
-_NotFoundException = _MatchServiceError mq "NotFoundException" . hasStatus 404
-
-
--- | Returns information about an error.
-_InternalServerErrorException :: AsError a => Getting (First ServiceError) a ServiceError
-_InternalServerErrorException =
-  _MatchServiceError mq "InternalServerErrorException" . hasStatus 500
-
-
--- | Returns information about an error.
-_UnauthorizedException :: AsError a => Getting (First ServiceError) a ServiceError
-_UnauthorizedException =
-  _MatchServiceError mq "UnauthorizedException" . hasStatus 401
-
-
--- | Returns information about an error.
-_BadRequestException :: AsError a => Getting (First ServiceError) a ServiceError
-_BadRequestException =
-  _MatchServiceError mq "BadRequestException" . hasStatus 400
-
diff --git a/gen/Network/AWS/MQ/Types/Product.hs b/gen/Network/AWS/MQ/Types/Product.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/Types/Product.hs
+++ /dev/null
@@ -1,635 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.Types.Product
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.MQ.Types.Product where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types.Sum
-import Network.AWS.Prelude
-
--- | Returns information about all brokers.
---
--- /See:/ 'brokerInstance' smart constructor.
-data BrokerInstance = BrokerInstance'
-  { _biConsoleURL :: !(Maybe Text)
-  , _biEndpoints  :: !(Maybe [Text])
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BrokerInstance' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'biConsoleURL' - The URL of the broker's ActiveMQ Web Console.
---
--- * 'biEndpoints' - The broker's wire-level protocol endpoints.
-brokerInstance
-    :: BrokerInstance
-brokerInstance =
-  BrokerInstance' {_biConsoleURL = Nothing, _biEndpoints = Nothing}
-
-
--- | The URL of the broker's ActiveMQ Web Console.
-biConsoleURL :: Lens' BrokerInstance (Maybe Text)
-biConsoleURL = lens _biConsoleURL (\ s a -> s{_biConsoleURL = a})
-
--- | The broker's wire-level protocol endpoints.
-biEndpoints :: Lens' BrokerInstance [Text]
-biEndpoints = lens _biEndpoints (\ s a -> s{_biEndpoints = a}) . _Default . _Coerce
-
-instance FromJSON BrokerInstance where
-        parseJSON
-          = withObject "BrokerInstance"
-              (\ x ->
-                 BrokerInstance' <$>
-                   (x .:? "consoleURL") <*>
-                     (x .:? "endpoints" .!= mempty))
-
-instance Hashable BrokerInstance where
-
-instance NFData BrokerInstance where
-
--- | The Amazon Resource Name (ARN) of the broker.
---
--- /See:/ 'brokerSummary' smart constructor.
-data BrokerSummary = BrokerSummary'
-  { _bsBrokerName       :: !(Maybe Text)
-  , _bsBrokerState      :: !(Maybe BrokerState)
-  , _bsDeploymentMode   :: !(Maybe DeploymentMode)
-  , _bsBrokerId         :: !(Maybe Text)
-  , _bsBrokerARN        :: !(Maybe Text)
-  , _bsHostInstanceType :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'BrokerSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'bsBrokerName' - The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
---
--- * 'bsBrokerState' - The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS
---
--- * 'bsDeploymentMode' - Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
---
--- * 'bsBrokerId' - The unique ID that Amazon MQ generates for the broker.
---
--- * 'bsBrokerARN' - The Amazon Resource Name (ARN) of the broker.
---
--- * 'bsHostInstanceType' - The broker's instance type. Possible values: mq.t2.micro, mq.m4.large
-brokerSummary
-    :: BrokerSummary
-brokerSummary =
-  BrokerSummary'
-    { _bsBrokerName = Nothing
-    , _bsBrokerState = Nothing
-    , _bsDeploymentMode = Nothing
-    , _bsBrokerId = Nothing
-    , _bsBrokerARN = Nothing
-    , _bsHostInstanceType = Nothing
-    }
-
-
--- | The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-bsBrokerName :: Lens' BrokerSummary (Maybe Text)
-bsBrokerName = lens _bsBrokerName (\ s a -> s{_bsBrokerName = a})
-
--- | The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS
-bsBrokerState :: Lens' BrokerSummary (Maybe BrokerState)
-bsBrokerState = lens _bsBrokerState (\ s a -> s{_bsBrokerState = a})
-
--- | Required. The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
-bsDeploymentMode :: Lens' BrokerSummary (Maybe DeploymentMode)
-bsDeploymentMode = lens _bsDeploymentMode (\ s a -> s{_bsDeploymentMode = a})
-
--- | The unique ID that Amazon MQ generates for the broker.
-bsBrokerId :: Lens' BrokerSummary (Maybe Text)
-bsBrokerId = lens _bsBrokerId (\ s a -> s{_bsBrokerId = a})
-
--- | The Amazon Resource Name (ARN) of the broker.
-bsBrokerARN :: Lens' BrokerSummary (Maybe Text)
-bsBrokerARN = lens _bsBrokerARN (\ s a -> s{_bsBrokerARN = a})
-
--- | The broker's instance type. Possible values: mq.t2.micro, mq.m4.large
-bsHostInstanceType :: Lens' BrokerSummary (Maybe Text)
-bsHostInstanceType = lens _bsHostInstanceType (\ s a -> s{_bsHostInstanceType = a})
-
-instance FromJSON BrokerSummary where
-        parseJSON
-          = withObject "BrokerSummary"
-              (\ x ->
-                 BrokerSummary' <$>
-                   (x .:? "brokerName") <*> (x .:? "brokerState") <*>
-                     (x .:? "deploymentMode")
-                     <*> (x .:? "brokerId")
-                     <*> (x .:? "brokerArn")
-                     <*> (x .:? "hostInstanceType"))
-
-instance Hashable BrokerSummary where
-
-instance NFData BrokerSummary where
-
--- | Returns information about all configurations.
---
--- /See:/ 'configuration' smart constructor.
-data Configuration = Configuration'
-  { _cEngineVersion  :: !(Maybe Text)
-  , _cARN            :: !(Maybe Text)
-  , _cLatestRevision :: !(Maybe ConfigurationRevision)
-  , _cName           :: !(Maybe Text)
-  , _cId             :: !(Maybe Text)
-  , _cDescription    :: !(Maybe Text)
-  , _cEngineType     :: !(Maybe EngineType)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Configuration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cEngineVersion' - Required. The version of the broker engine.
---
--- * 'cARN' - Required. The ARN of the configuration.
---
--- * 'cLatestRevision' - Required. The latest revision of the configuration.
---
--- * 'cName' - Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
---
--- * 'cId' - Required. The unique ID that Amazon MQ generates for the configuration.
---
--- * 'cDescription' - Required. The description of the configuration.
---
--- * 'cEngineType' - Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-configuration
-    :: Configuration
-configuration =
-  Configuration'
-    { _cEngineVersion = Nothing
-    , _cARN = Nothing
-    , _cLatestRevision = Nothing
-    , _cName = Nothing
-    , _cId = Nothing
-    , _cDescription = Nothing
-    , _cEngineType = Nothing
-    }
-
-
--- | Required. The version of the broker engine.
-cEngineVersion :: Lens' Configuration (Maybe Text)
-cEngineVersion = lens _cEngineVersion (\ s a -> s{_cEngineVersion = a})
-
--- | Required. The ARN of the configuration.
-cARN :: Lens' Configuration (Maybe Text)
-cARN = lens _cARN (\ s a -> s{_cARN = a})
-
--- | Required. The latest revision of the configuration.
-cLatestRevision :: Lens' Configuration (Maybe ConfigurationRevision)
-cLatestRevision = lens _cLatestRevision (\ s a -> s{_cLatestRevision = a})
-
--- | Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
-cName :: Lens' Configuration (Maybe Text)
-cName = lens _cName (\ s a -> s{_cName = a})
-
--- | Required. The unique ID that Amazon MQ generates for the configuration.
-cId :: Lens' Configuration (Maybe Text)
-cId = lens _cId (\ s a -> s{_cId = a})
-
--- | Required. The description of the configuration.
-cDescription :: Lens' Configuration (Maybe Text)
-cDescription = lens _cDescription (\ s a -> s{_cDescription = a})
-
--- | Required. The type of broker engine. Note: Currently, Amazon MQ supports only ACTIVEMQ.
-cEngineType :: Lens' Configuration (Maybe EngineType)
-cEngineType = lens _cEngineType (\ s a -> s{_cEngineType = a})
-
-instance FromJSON Configuration where
-        parseJSON
-          = withObject "Configuration"
-              (\ x ->
-                 Configuration' <$>
-                   (x .:? "engineVersion") <*> (x .:? "arn") <*>
-                     (x .:? "latestRevision")
-                     <*> (x .:? "name")
-                     <*> (x .:? "id")
-                     <*> (x .:? "description")
-                     <*> (x .:? "engineType"))
-
-instance Hashable Configuration where
-
-instance NFData Configuration where
-
--- | A list of information about the configuration.
---
--- /See:/ 'configurationId' smart constructor.
-data ConfigurationId = ConfigurationId'
-  { _ciId       :: !(Maybe Text)
-  , _ciRevision :: !(Maybe Int)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConfigurationId' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ciId' - Required. The unique ID that Amazon MQ generates for the configuration.
---
--- * 'ciRevision' - The Universally Unique Identifier (UUID) of the request.
-configurationId
-    :: ConfigurationId
-configurationId = ConfigurationId' {_ciId = Nothing, _ciRevision = Nothing}
-
-
--- | Required. The unique ID that Amazon MQ generates for the configuration.
-ciId :: Lens' ConfigurationId (Maybe Text)
-ciId = lens _ciId (\ s a -> s{_ciId = a})
-
--- | The Universally Unique Identifier (UUID) of the request.
-ciRevision :: Lens' ConfigurationId (Maybe Int)
-ciRevision = lens _ciRevision (\ s a -> s{_ciRevision = a})
-
-instance FromJSON ConfigurationId where
-        parseJSON
-          = withObject "ConfigurationId"
-              (\ x ->
-                 ConfigurationId' <$>
-                   (x .:? "id") <*> (x .:? "revision"))
-
-instance Hashable ConfigurationId where
-
-instance NFData ConfigurationId where
-
-instance ToJSON ConfigurationId where
-        toJSON ConfigurationId'{..}
-          = object
-              (catMaybes
-                 [("id" .=) <$> _ciId,
-                  ("revision" .=) <$> _ciRevision])
-
--- | Returns information about the specified configuration revision.
---
--- /See:/ 'configurationRevision' smart constructor.
-data ConfigurationRevision = ConfigurationRevision'
-  { _crRevision    :: !(Maybe Int)
-  , _crDescription :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'ConfigurationRevision' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'crRevision' - Required. The revision of the configuration.
---
--- * 'crDescription' - The description of the configuration revision.
-configurationRevision
-    :: ConfigurationRevision
-configurationRevision =
-  ConfigurationRevision' {_crRevision = Nothing, _crDescription = Nothing}
-
-
--- | Required. The revision of the configuration.
-crRevision :: Lens' ConfigurationRevision (Maybe Int)
-crRevision = lens _crRevision (\ s a -> s{_crRevision = a})
-
--- | The description of the configuration revision.
-crDescription :: Lens' ConfigurationRevision (Maybe Text)
-crDescription = lens _crDescription (\ s a -> s{_crDescription = a})
-
-instance FromJSON ConfigurationRevision where
-        parseJSON
-          = withObject "ConfigurationRevision"
-              (\ x ->
-                 ConfigurationRevision' <$>
-                   (x .:? "revision") <*> (x .:? "description"))
-
-instance Hashable ConfigurationRevision where
-
-instance NFData ConfigurationRevision where
-
--- | Broker configuration information
---
--- /See:/ 'configurations' smart constructor.
-data Configurations = Configurations'
-  { _cPending :: !(Maybe ConfigurationId)
-  , _cHistory :: !(Maybe [ConfigurationId])
-  , _cCurrent :: !(Maybe ConfigurationId)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'Configurations' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'cPending' - The pending configuration of the broker.
---
--- * 'cHistory' - The history of configurations applied to the broker.
---
--- * 'cCurrent' - The current configuration of the broker.
-configurations
-    :: Configurations
-configurations =
-  Configurations'
-    {_cPending = Nothing, _cHistory = Nothing, _cCurrent = Nothing}
-
-
--- | The pending configuration of the broker.
-cPending :: Lens' Configurations (Maybe ConfigurationId)
-cPending = lens _cPending (\ s a -> s{_cPending = a})
-
--- | The history of configurations applied to the broker.
-cHistory :: Lens' Configurations [ConfigurationId]
-cHistory = lens _cHistory (\ s a -> s{_cHistory = a}) . _Default . _Coerce
-
--- | The current configuration of the broker.
-cCurrent :: Lens' Configurations (Maybe ConfigurationId)
-cCurrent = lens _cCurrent (\ s a -> s{_cCurrent = a})
-
-instance FromJSON Configurations where
-        parseJSON
-          = withObject "Configurations"
-              (\ x ->
-                 Configurations' <$>
-                   (x .:? "pending") <*> (x .:? "history" .!= mempty)
-                     <*> (x .:? "current"))
-
-instance Hashable Configurations where
-
-instance NFData Configurations where
-
--- | Returns information about the XML element or attribute that was sanitized in the configuration.
---
--- /See:/ 'sanitizationWarning' smart constructor.
-data SanitizationWarning = SanitizationWarning'
-  { _swReason        :: !(Maybe SanitizationWarningReason)
-  , _swAttributeName :: !(Maybe Text)
-  , _swElementName   :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'SanitizationWarning' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'swReason' - Required. The reason for which the XML elements or attributes were sanitized. Possible values: DISALLOWED_ELEMENT_REMOVED, DISALLOWED_ATTRIBUTE_REMOVED, INVALID_ATTRIBUTE_VALUE_REMOVED DISALLOWED_ELEMENT_REMOVED shows that the provided element isn't allowed and has been removed. DISALLOWED_ATTRIBUTE_REMOVED shows that the provided attribute isn't allowed and has been removed. INVALID_ATTRIBUTE_VALUE_REMOVED shows that the provided value for the attribute isn't allowed and has been removed.
---
--- * 'swAttributeName' - The name of the XML attribute that has been sanitized.
---
--- * 'swElementName' - The name of the XML element that has been sanitized.
-sanitizationWarning
-    :: SanitizationWarning
-sanitizationWarning =
-  SanitizationWarning'
-    {_swReason = Nothing, _swAttributeName = Nothing, _swElementName = Nothing}
-
-
--- | Required. The reason for which the XML elements or attributes were sanitized. Possible values: DISALLOWED_ELEMENT_REMOVED, DISALLOWED_ATTRIBUTE_REMOVED, INVALID_ATTRIBUTE_VALUE_REMOVED DISALLOWED_ELEMENT_REMOVED shows that the provided element isn't allowed and has been removed. DISALLOWED_ATTRIBUTE_REMOVED shows that the provided attribute isn't allowed and has been removed. INVALID_ATTRIBUTE_VALUE_REMOVED shows that the provided value for the attribute isn't allowed and has been removed.
-swReason :: Lens' SanitizationWarning (Maybe SanitizationWarningReason)
-swReason = lens _swReason (\ s a -> s{_swReason = a})
-
--- | The name of the XML attribute that has been sanitized.
-swAttributeName :: Lens' SanitizationWarning (Maybe Text)
-swAttributeName = lens _swAttributeName (\ s a -> s{_swAttributeName = a})
-
--- | The name of the XML element that has been sanitized.
-swElementName :: Lens' SanitizationWarning (Maybe Text)
-swElementName = lens _swElementName (\ s a -> s{_swElementName = a})
-
-instance FromJSON SanitizationWarning where
-        parseJSON
-          = withObject "SanitizationWarning"
-              (\ x ->
-                 SanitizationWarning' <$>
-                   (x .:? "reason") <*> (x .:? "attributeName") <*>
-                     (x .:? "elementName"))
-
-instance Hashable SanitizationWarning where
-
-instance NFData SanitizationWarning where
-
--- | An ActiveMQ user associated with the broker.
---
--- /See:/ 'user' smart constructor.
-data User = User'
-  { _uGroups        :: !(Maybe [Text])
-  , _uConsoleAccess :: !(Maybe Bool)
-  , _uUsername      :: !(Maybe Text)
-  , _uPassword      :: !(Maybe Text)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'User' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uGroups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'uConsoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
---
--- * 'uUsername' - Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'uPassword' - Required. The password of the ActiveMQ user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.
-user
-    :: User
-user =
-  User'
-    { _uGroups = Nothing
-    , _uConsoleAccess = Nothing
-    , _uUsername = Nothing
-    , _uPassword = Nothing
-    }
-
-
--- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-uGroups :: Lens' User [Text]
-uGroups = lens _uGroups (\ s a -> s{_uGroups = a}) . _Default . _Coerce
-
--- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
-uConsoleAccess :: Lens' User (Maybe Bool)
-uConsoleAccess = lens _uConsoleAccess (\ s a -> s{_uConsoleAccess = a})
-
--- | Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-uUsername :: Lens' User (Maybe Text)
-uUsername = lens _uUsername (\ s a -> s{_uUsername = a})
-
--- | Required. The password of the ActiveMQ user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.
-uPassword :: Lens' User (Maybe Text)
-uPassword = lens _uPassword (\ s a -> s{_uPassword = a})
-
-instance Hashable User where
-
-instance NFData User where
-
-instance ToJSON User where
-        toJSON User'{..}
-          = object
-              (catMaybes
-                 [("groups" .=) <$> _uGroups,
-                  ("consoleAccess" .=) <$> _uConsoleAccess,
-                  ("username" .=) <$> _uUsername,
-                  ("password" .=) <$> _uPassword])
-
--- | Returns information about the status of the changes pending for the ActiveMQ user.
---
--- /See:/ 'userPendingChanges' smart constructor.
-data UserPendingChanges = UserPendingChanges'
-  { _upcGroups        :: !(Maybe [Text])
-  , _upcConsoleAccess :: !(Maybe Bool)
-  , _upcPendingChange :: !(Maybe ChangeType)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UserPendingChanges' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'upcGroups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'upcConsoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
---
--- * 'upcPendingChange' - Required. The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE
-userPendingChanges
-    :: UserPendingChanges
-userPendingChanges =
-  UserPendingChanges'
-    { _upcGroups = Nothing
-    , _upcConsoleAccess = Nothing
-    , _upcPendingChange = Nothing
-    }
-
-
--- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-upcGroups :: Lens' UserPendingChanges [Text]
-upcGroups = lens _upcGroups (\ s a -> s{_upcGroups = a}) . _Default . _Coerce
-
--- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
-upcConsoleAccess :: Lens' UserPendingChanges (Maybe Bool)
-upcConsoleAccess = lens _upcConsoleAccess (\ s a -> s{_upcConsoleAccess = a})
-
--- | Required. The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE
-upcPendingChange :: Lens' UserPendingChanges (Maybe ChangeType)
-upcPendingChange = lens _upcPendingChange (\ s a -> s{_upcPendingChange = a})
-
-instance FromJSON UserPendingChanges where
-        parseJSON
-          = withObject "UserPendingChanges"
-              (\ x ->
-                 UserPendingChanges' <$>
-                   (x .:? "groups" .!= mempty) <*>
-                     (x .:? "consoleAccess")
-                     <*> (x .:? "pendingChange"))
-
-instance Hashable UserPendingChanges where
-
-instance NFData UserPendingChanges where
-
--- | Returns a list of all ActiveMQ users.
---
--- /See:/ 'userSummary' smart constructor.
-data UserSummary = UserSummary'
-  { _usUsername      :: !(Maybe Text)
-  , _usPendingChange :: !(Maybe ChangeType)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UserSummary' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'usUsername' - Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'usPendingChange' - The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE
-userSummary
-    :: UserSummary
-userSummary = UserSummary' {_usUsername = Nothing, _usPendingChange = Nothing}
-
-
--- | Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-usUsername :: Lens' UserSummary (Maybe Text)
-usUsername = lens _usUsername (\ s a -> s{_usUsername = a})
-
--- | The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE
-usPendingChange :: Lens' UserSummary (Maybe ChangeType)
-usPendingChange = lens _usPendingChange (\ s a -> s{_usPendingChange = a})
-
-instance FromJSON UserSummary where
-        parseJSON
-          = withObject "UserSummary"
-              (\ x ->
-                 UserSummary' <$>
-                   (x .:? "username") <*> (x .:? "pendingChange"))
-
-instance Hashable UserSummary where
-
-instance NFData UserSummary where
-
--- | The scheduled time period relative to UTC during which Amazon MQ begins to apply pending updates or patches to the broker.
---
--- /See:/ 'weeklyStartTime' smart constructor.
-data WeeklyStartTime = WeeklyStartTime'
-  { _wstTimeOfDay :: !(Maybe Text)
-  , _wstTimeZone  :: !(Maybe Text)
-  , _wstDayOfWeek :: !(Maybe DayOfWeek)
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'WeeklyStartTime' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'wstTimeOfDay' - Required. The time, in 24-hour format.
---
--- * 'wstTimeZone' - The time zone, UTC by default, in either the Country/City format, or the UTC offset format.
---
--- * 'wstDayOfWeek' - Required. The day of the week. Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
-weeklyStartTime
-    :: WeeklyStartTime
-weeklyStartTime =
-  WeeklyStartTime'
-    {_wstTimeOfDay = Nothing, _wstTimeZone = Nothing, _wstDayOfWeek = Nothing}
-
-
--- | Required. The time, in 24-hour format.
-wstTimeOfDay :: Lens' WeeklyStartTime (Maybe Text)
-wstTimeOfDay = lens _wstTimeOfDay (\ s a -> s{_wstTimeOfDay = a})
-
--- | The time zone, UTC by default, in either the Country/City format, or the UTC offset format.
-wstTimeZone :: Lens' WeeklyStartTime (Maybe Text)
-wstTimeZone = lens _wstTimeZone (\ s a -> s{_wstTimeZone = a})
-
--- | Required. The day of the week. Possible values: MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
-wstDayOfWeek :: Lens' WeeklyStartTime (Maybe DayOfWeek)
-wstDayOfWeek = lens _wstDayOfWeek (\ s a -> s{_wstDayOfWeek = a})
-
-instance FromJSON WeeklyStartTime where
-        parseJSON
-          = withObject "WeeklyStartTime"
-              (\ x ->
-                 WeeklyStartTime' <$>
-                   (x .:? "timeOfDay") <*> (x .:? "timeZone") <*>
-                     (x .:? "dayOfWeek"))
-
-instance Hashable WeeklyStartTime where
-
-instance NFData WeeklyStartTime where
-
-instance ToJSON WeeklyStartTime where
-        toJSON WeeklyStartTime'{..}
-          = object
-              (catMaybes
-                 [("timeOfDay" .=) <$> _wstTimeOfDay,
-                  ("timeZone" .=) <$> _wstTimeZone,
-                  ("dayOfWeek" .=) <$> _wstDayOfWeek])
diff --git a/gen/Network/AWS/MQ/Types/Sum.hs b/gen/Network/AWS/MQ/Types/Sum.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/Types/Sum.hs
+++ /dev/null
@@ -1,223 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE LambdaCase         #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.Types.Sum
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.MQ.Types.Sum where
-
-import Network.AWS.Prelude
-
--- | The status of the broker. Possible values: CREATION_IN_PROGRESS, CREATION_FAILED, DELETION_IN_PROGRESS, RUNNING, REBOOT_IN_PROGRESS
-data BrokerState
-  = CreationFailed
-  | CreationInProgress
-  | DeletionInProgress
-  | RebootInProgress
-  | Running
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText BrokerState where
-    parser = takeLowerText >>= \case
-        "creation_failed" -> pure CreationFailed
-        "creation_in_progress" -> pure CreationInProgress
-        "deletion_in_progress" -> pure DeletionInProgress
-        "reboot_in_progress" -> pure RebootInProgress
-        "running" -> pure Running
-        e -> fromTextError $ "Failure parsing BrokerState from value: '" <> e
-           <> "'. Accepted values: creation_failed, creation_in_progress, deletion_in_progress, reboot_in_progress, running"
-
-instance ToText BrokerState where
-    toText = \case
-        CreationFailed -> "CREATION_FAILED"
-        CreationInProgress -> "CREATION_IN_PROGRESS"
-        DeletionInProgress -> "DELETION_IN_PROGRESS"
-        RebootInProgress -> "REBOOT_IN_PROGRESS"
-        Running -> "RUNNING"
-
-instance Hashable     BrokerState
-instance NFData       BrokerState
-instance ToByteString BrokerState
-instance ToQuery      BrokerState
-instance ToHeader     BrokerState
-
-instance FromJSON BrokerState where
-    parseJSON = parseJSONText "BrokerState"
-
--- | The type of change pending for the ActiveMQ user. Possible values: CREATE, UPDATE, DELETE
-data ChangeType
-  = Create
-  | Delete
-  | Update
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText ChangeType where
-    parser = takeLowerText >>= \case
-        "create" -> pure Create
-        "delete" -> pure Delete
-        "update" -> pure Update
-        e -> fromTextError $ "Failure parsing ChangeType from value: '" <> e
-           <> "'. Accepted values: create, delete, update"
-
-instance ToText ChangeType where
-    toText = \case
-        Create -> "CREATE"
-        Delete -> "DELETE"
-        Update -> "UPDATE"
-
-instance Hashable     ChangeType
-instance NFData       ChangeType
-instance ToByteString ChangeType
-instance ToQuery      ChangeType
-instance ToHeader     ChangeType
-
-instance FromJSON ChangeType where
-    parseJSON = parseJSONText "ChangeType"
-
-data DayOfWeek
-  = Friday
-  | Monday
-  | Saturday
-  | Sunday
-  | Thursday
-  | Tuesday
-  | Wednesday
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText DayOfWeek where
-    parser = takeLowerText >>= \case
-        "friday" -> pure Friday
-        "monday" -> pure Monday
-        "saturday" -> pure Saturday
-        "sunday" -> pure Sunday
-        "thursday" -> pure Thursday
-        "tuesday" -> pure Tuesday
-        "wednesday" -> pure Wednesday
-        e -> fromTextError $ "Failure parsing DayOfWeek from value: '" <> e
-           <> "'. Accepted values: friday, monday, saturday, sunday, thursday, tuesday, wednesday"
-
-instance ToText DayOfWeek where
-    toText = \case
-        Friday -> "FRIDAY"
-        Monday -> "MONDAY"
-        Saturday -> "SATURDAY"
-        Sunday -> "SUNDAY"
-        Thursday -> "THURSDAY"
-        Tuesday -> "TUESDAY"
-        Wednesday -> "WEDNESDAY"
-
-instance Hashable     DayOfWeek
-instance NFData       DayOfWeek
-instance ToByteString DayOfWeek
-instance ToQuery      DayOfWeek
-instance ToHeader     DayOfWeek
-
-instance ToJSON DayOfWeek where
-    toJSON = toJSONText
-
-instance FromJSON DayOfWeek where
-    parseJSON = parseJSONText "DayOfWeek"
-
--- | The deployment mode of the broker. Possible values: SINGLE_INSTANCE, ACTIVE_STANDBY_MULTI_AZ SINGLE_INSTANCE creates a single-instance broker in a single Availability Zone. ACTIVE_STANDBY_MULTI_AZ creates an active/standby broker for high availability.
-data DeploymentMode
-  = ActiveStandbyMultiAz
-  | SingleInstance
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText DeploymentMode where
-    parser = takeLowerText >>= \case
-        "active_standby_multi_az" -> pure ActiveStandbyMultiAz
-        "single_instance" -> pure SingleInstance
-        e -> fromTextError $ "Failure parsing DeploymentMode from value: '" <> e
-           <> "'. Accepted values: active_standby_multi_az, single_instance"
-
-instance ToText DeploymentMode where
-    toText = \case
-        ActiveStandbyMultiAz -> "ACTIVE_STANDBY_MULTI_AZ"
-        SingleInstance -> "SINGLE_INSTANCE"
-
-instance Hashable     DeploymentMode
-instance NFData       DeploymentMode
-instance ToByteString DeploymentMode
-instance ToQuery      DeploymentMode
-instance ToHeader     DeploymentMode
-
-instance ToJSON DeploymentMode where
-    toJSON = toJSONText
-
-instance FromJSON DeploymentMode where
-    parseJSON = parseJSONText "DeploymentMode"
-
--- | The type of broker engine. Note: Currently, Amazon MQ supports only ActiveMQ.
-data EngineType =
-  Activemq
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText EngineType where
-    parser = takeLowerText >>= \case
-        "activemq" -> pure Activemq
-        e -> fromTextError $ "Failure parsing EngineType from value: '" <> e
-           <> "'. Accepted values: activemq"
-
-instance ToText EngineType where
-    toText = \case
-        Activemq -> "ACTIVEMQ"
-
-instance Hashable     EngineType
-instance NFData       EngineType
-instance ToByteString EngineType
-instance ToQuery      EngineType
-instance ToHeader     EngineType
-
-instance ToJSON EngineType where
-    toJSON = toJSONText
-
-instance FromJSON EngineType where
-    parseJSON = parseJSONText "EngineType"
-
--- | The reason for which the XML elements or attributes were sanitized. Possible values: DISALLOWED_ELEMENT_REMOVED, DISALLOWED_ATTRIBUTE_REMOVED, INVALID_ATTRIBUTE_VALUE_REMOVED DISALLOWED_ELEMENT_REMOVED shows that the provided element isn't allowed and has been removed. DISALLOWED_ATTRIBUTE_REMOVED shows that the provided attribute isn't allowed and has been removed. INVALID_ATTRIBUTE_VALUE_REMOVED shows that the provided value for the attribute isn't allowed and has been removed.
-data SanitizationWarningReason
-  = DisallowedAttributeRemoved
-  | DisallowedElementRemoved
-  | InvalidAttributeValueRemoved
-  deriving (Eq, Ord, Read, Show, Enum, Bounded, Data, Typeable, Generic)
-
-
-instance FromText SanitizationWarningReason where
-    parser = takeLowerText >>= \case
-        "disallowed_attribute_removed" -> pure DisallowedAttributeRemoved
-        "disallowed_element_removed" -> pure DisallowedElementRemoved
-        "invalid_attribute_value_removed" -> pure InvalidAttributeValueRemoved
-        e -> fromTextError $ "Failure parsing SanitizationWarningReason from value: '" <> e
-           <> "'. Accepted values: disallowed_attribute_removed, disallowed_element_removed, invalid_attribute_value_removed"
-
-instance ToText SanitizationWarningReason where
-    toText = \case
-        DisallowedAttributeRemoved -> "DISALLOWED_ATTRIBUTE_REMOVED"
-        DisallowedElementRemoved -> "DISALLOWED_ELEMENT_REMOVED"
-        InvalidAttributeValueRemoved -> "INVALID_ATTRIBUTE_VALUE_REMOVED"
-
-instance Hashable     SanitizationWarningReason
-instance NFData       SanitizationWarningReason
-instance ToByteString SanitizationWarningReason
-instance ToQuery      SanitizationWarningReason
-instance ToHeader     SanitizationWarningReason
-
-instance FromJSON SanitizationWarningReason where
-    parseJSON = parseJSONText "SanitizationWarningReason"
diff --git a/gen/Network/AWS/MQ/UpdateBroker.hs b/gen/Network/AWS/MQ/UpdateBroker.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/UpdateBroker.hs
+++ /dev/null
@@ -1,152 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.UpdateBroker
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Adds a pending configuration change to a broker.
-module Network.AWS.MQ.UpdateBroker
-    (
-    -- * Creating a Request
-      updateBroker
-    , UpdateBroker
-    -- * Request Lenses
-    , ubConfiguration
-    , ubBrokerId
-
-    -- * Destructuring the Response
-    , updateBrokerResponse
-    , UpdateBrokerResponse
-    -- * Response Lenses
-    , ubrsConfiguration
-    , ubrsBrokerId
-    , ubrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Updates the broker using the specified properties.
---
--- /See:/ 'updateBroker' smart constructor.
-data UpdateBroker = UpdateBroker'
-  { _ubConfiguration :: !(Maybe ConfigurationId)
-  , _ubBrokerId      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateBroker' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ubConfiguration' - A list of information about the configuration.
---
--- * 'ubBrokerId' - The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-updateBroker
-    :: Text -- ^ 'ubBrokerId'
-    -> UpdateBroker
-updateBroker pBrokerId_ =
-  UpdateBroker' {_ubConfiguration = Nothing, _ubBrokerId = pBrokerId_}
-
-
--- | A list of information about the configuration.
-ubConfiguration :: Lens' UpdateBroker (Maybe ConfigurationId)
-ubConfiguration = lens _ubConfiguration (\ s a -> s{_ubConfiguration = a})
-
--- | The name of the broker. This value must be unique in your AWS account, 1-50 characters long, must contain only letters, numbers, dashes, and underscores, and must not contain whitespaces, brackets, wildcard characters, or special characters.
-ubBrokerId :: Lens' UpdateBroker Text
-ubBrokerId = lens _ubBrokerId (\ s a -> s{_ubBrokerId = a})
-
-instance AWSRequest UpdateBroker where
-        type Rs UpdateBroker = UpdateBrokerResponse
-        request = putJSON mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdateBrokerResponse' <$>
-                   (x .?> "configuration") <*> (x .?> "brokerId") <*>
-                     (pure (fromEnum s)))
-
-instance Hashable UpdateBroker where
-
-instance NFData UpdateBroker where
-
-instance ToHeaders UpdateBroker where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateBroker where
-        toJSON UpdateBroker'{..}
-          = object
-              (catMaybes
-                 [("configuration" .=) <$> _ubConfiguration])
-
-instance ToPath UpdateBroker where
-        toPath UpdateBroker'{..}
-          = mconcat ["/v1/brokers/", toBS _ubBrokerId]
-
-instance ToQuery UpdateBroker where
-        toQuery = const mempty
-
--- | /See:/ 'updateBrokerResponse' smart constructor.
-data UpdateBrokerResponse = UpdateBrokerResponse'
-  { _ubrsConfiguration  :: !(Maybe ConfigurationId)
-  , _ubrsBrokerId       :: !(Maybe Text)
-  , _ubrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateBrokerResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ubrsConfiguration' - The ID of the updated configuration.
---
--- * 'ubrsBrokerId' - Required. The unique ID that Amazon MQ generates for the broker.
---
--- * 'ubrsResponseStatus' - -- | The response status code.
-updateBrokerResponse
-    :: Int -- ^ 'ubrsResponseStatus'
-    -> UpdateBrokerResponse
-updateBrokerResponse pResponseStatus_ =
-  UpdateBrokerResponse'
-    { _ubrsConfiguration = Nothing
-    , _ubrsBrokerId = Nothing
-    , _ubrsResponseStatus = pResponseStatus_
-    }
-
-
--- | The ID of the updated configuration.
-ubrsConfiguration :: Lens' UpdateBrokerResponse (Maybe ConfigurationId)
-ubrsConfiguration = lens _ubrsConfiguration (\ s a -> s{_ubrsConfiguration = a})
-
--- | Required. The unique ID that Amazon MQ generates for the broker.
-ubrsBrokerId :: Lens' UpdateBrokerResponse (Maybe Text)
-ubrsBrokerId = lens _ubrsBrokerId (\ s a -> s{_ubrsBrokerId = a})
-
--- | -- | The response status code.
-ubrsResponseStatus :: Lens' UpdateBrokerResponse Int
-ubrsResponseStatus = lens _ubrsResponseStatus (\ s a -> s{_ubrsResponseStatus = a})
-
-instance NFData UpdateBrokerResponse where
diff --git a/gen/Network/AWS/MQ/UpdateConfiguration.hs b/gen/Network/AWS/MQ/UpdateConfiguration.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/UpdateConfiguration.hs
+++ /dev/null
@@ -1,197 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.UpdateConfiguration
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates the specified configuration.
-module Network.AWS.MQ.UpdateConfiguration
-    (
-    -- * Creating a Request
-      updateConfiguration
-    , UpdateConfiguration
-    -- * Request Lenses
-    , ucData
-    , ucDescription
-    , ucConfigurationId
-
-    -- * Destructuring the Response
-    , updateConfigurationResponse
-    , UpdateConfigurationResponse
-    -- * Response Lenses
-    , ucrsARN
-    , ucrsLatestRevision
-    , ucrsWarnings
-    , ucrsName
-    , ucrsId
-    , ucrsResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Updates the specified configuration.
---
--- /See:/ 'updateConfiguration' smart constructor.
-data UpdateConfiguration = UpdateConfiguration'
-  { _ucData            :: !(Maybe Text)
-  , _ucDescription     :: !(Maybe Text)
-  , _ucConfigurationId :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateConfiguration' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ucData' - Required. The base64-encoded XML configuration.
---
--- * 'ucDescription' - The description of the configuration.
---
--- * 'ucConfigurationId' - The unique ID that Amazon MQ generates for the configuration.
-updateConfiguration
-    :: Text -- ^ 'ucConfigurationId'
-    -> UpdateConfiguration
-updateConfiguration pConfigurationId_ =
-  UpdateConfiguration'
-    { _ucData = Nothing
-    , _ucDescription = Nothing
-    , _ucConfigurationId = pConfigurationId_
-    }
-
-
--- | Required. The base64-encoded XML configuration.
-ucData :: Lens' UpdateConfiguration (Maybe Text)
-ucData = lens _ucData (\ s a -> s{_ucData = a})
-
--- | The description of the configuration.
-ucDescription :: Lens' UpdateConfiguration (Maybe Text)
-ucDescription = lens _ucDescription (\ s a -> s{_ucDescription = a})
-
--- | The unique ID that Amazon MQ generates for the configuration.
-ucConfigurationId :: Lens' UpdateConfiguration Text
-ucConfigurationId = lens _ucConfigurationId (\ s a -> s{_ucConfigurationId = a})
-
-instance AWSRequest UpdateConfiguration where
-        type Rs UpdateConfiguration =
-             UpdateConfigurationResponse
-        request = putJSON mq
-        response
-          = receiveJSON
-              (\ s h x ->
-                 UpdateConfigurationResponse' <$>
-                   (x .?> "arn") <*> (x .?> "latestRevision") <*>
-                     (x .?> "warnings" .!@ mempty)
-                     <*> (x .?> "name")
-                     <*> (x .?> "id")
-                     <*> (pure (fromEnum s)))
-
-instance Hashable UpdateConfiguration where
-
-instance NFData UpdateConfiguration where
-
-instance ToHeaders UpdateConfiguration where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateConfiguration where
-        toJSON UpdateConfiguration'{..}
-          = object
-              (catMaybes
-                 [("data" .=) <$> _ucData,
-                  ("description" .=) <$> _ucDescription])
-
-instance ToPath UpdateConfiguration where
-        toPath UpdateConfiguration'{..}
-          = mconcat
-              ["/v1/configurations/", toBS _ucConfigurationId]
-
-instance ToQuery UpdateConfiguration where
-        toQuery = const mempty
-
--- | /See:/ 'updateConfigurationResponse' smart constructor.
-data UpdateConfigurationResponse = UpdateConfigurationResponse'
-  { _ucrsARN            :: !(Maybe Text)
-  , _ucrsLatestRevision :: !(Maybe ConfigurationRevision)
-  , _ucrsWarnings       :: !(Maybe [SanitizationWarning])
-  , _ucrsName           :: !(Maybe Text)
-  , _ucrsId             :: !(Maybe Text)
-  , _ucrsResponseStatus :: !Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateConfigurationResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'ucrsARN' - Required. The Amazon Resource Name (ARN) of the configuration.
---
--- * 'ucrsLatestRevision' - The latest revision of the configuration.
---
--- * 'ucrsWarnings' - The list of the first 20 warnings about the configuration XML elements or attributes that were sanitized.
---
--- * 'ucrsName' - Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
---
--- * 'ucrsId' - Required. The unique ID that Amazon MQ generates for the configuration.
---
--- * 'ucrsResponseStatus' - -- | The response status code.
-updateConfigurationResponse
-    :: Int -- ^ 'ucrsResponseStatus'
-    -> UpdateConfigurationResponse
-updateConfigurationResponse pResponseStatus_ =
-  UpdateConfigurationResponse'
-    { _ucrsARN = Nothing
-    , _ucrsLatestRevision = Nothing
-    , _ucrsWarnings = Nothing
-    , _ucrsName = Nothing
-    , _ucrsId = Nothing
-    , _ucrsResponseStatus = pResponseStatus_
-    }
-
-
--- | Required. The Amazon Resource Name (ARN) of the configuration.
-ucrsARN :: Lens' UpdateConfigurationResponse (Maybe Text)
-ucrsARN = lens _ucrsARN (\ s a -> s{_ucrsARN = a})
-
--- | The latest revision of the configuration.
-ucrsLatestRevision :: Lens' UpdateConfigurationResponse (Maybe ConfigurationRevision)
-ucrsLatestRevision = lens _ucrsLatestRevision (\ s a -> s{_ucrsLatestRevision = a})
-
--- | The list of the first 20 warnings about the configuration XML elements or attributes that were sanitized.
-ucrsWarnings :: Lens' UpdateConfigurationResponse [SanitizationWarning]
-ucrsWarnings = lens _ucrsWarnings (\ s a -> s{_ucrsWarnings = a}) . _Default . _Coerce
-
--- | Required. The name of the configuration. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 1-150 characters long.
-ucrsName :: Lens' UpdateConfigurationResponse (Maybe Text)
-ucrsName = lens _ucrsName (\ s a -> s{_ucrsName = a})
-
--- | Required. The unique ID that Amazon MQ generates for the configuration.
-ucrsId :: Lens' UpdateConfigurationResponse (Maybe Text)
-ucrsId = lens _ucrsId (\ s a -> s{_ucrsId = a})
-
--- | -- | The response status code.
-ucrsResponseStatus :: Lens' UpdateConfigurationResponse Int
-ucrsResponseStatus = lens _ucrsResponseStatus (\ s a -> s{_ucrsResponseStatus = a})
-
-instance NFData UpdateConfigurationResponse where
diff --git a/gen/Network/AWS/MQ/UpdateUser.hs b/gen/Network/AWS/MQ/UpdateUser.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/UpdateUser.hs
+++ /dev/null
@@ -1,165 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-{-# LANGUAGE OverloadedStrings  #-}
-{-# LANGUAGE RecordWildCards    #-}
-{-# LANGUAGE TypeFamilies       #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-unused-binds   #-}
-{-# OPTIONS_GHC -fno-warn-unused-matches #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.UpdateUser
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
--- Updates the information for an ActiveMQ user.
-module Network.AWS.MQ.UpdateUser
-    (
-    -- * Creating a Request
-      updateUser
-    , UpdateUser
-    -- * Request Lenses
-    , uuGroups
-    , uuConsoleAccess
-    , uuPassword
-    , uuUsername
-    , uuBrokerId
-
-    -- * Destructuring the Response
-    , updateUserResponse
-    , UpdateUserResponse
-    -- * Response Lenses
-    , uursResponseStatus
-    ) where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.MQ.Types.Product
-import Network.AWS.Prelude
-import Network.AWS.Request
-import Network.AWS.Response
-
--- | Updates the information for an ActiveMQ user.
---
--- /See:/ 'updateUser' smart constructor.
-data UpdateUser = UpdateUser'
-  { _uuGroups        :: !(Maybe [Text])
-  , _uuConsoleAccess :: !(Maybe Bool)
-  , _uuPassword      :: !(Maybe Text)
-  , _uuUsername      :: !Text
-  , _uuBrokerId      :: !Text
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateUser' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uuGroups' - The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'uuConsoleAccess' - Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
---
--- * 'uuPassword' - The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.
---
--- * 'uuUsername' - Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
---
--- * 'uuBrokerId' - The unique ID that Amazon MQ generates for the broker.
-updateUser
-    :: Text -- ^ 'uuUsername'
-    -> Text -- ^ 'uuBrokerId'
-    -> UpdateUser
-updateUser pUsername_ pBrokerId_ =
-  UpdateUser'
-    { _uuGroups = Nothing
-    , _uuConsoleAccess = Nothing
-    , _uuPassword = Nothing
-    , _uuUsername = pUsername_
-    , _uuBrokerId = pBrokerId_
-    }
-
-
--- | The list of groups (20 maximum) to which the ActiveMQ user belongs. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-uuGroups :: Lens' UpdateUser [Text]
-uuGroups = lens _uuGroups (\ s a -> s{_uuGroups = a}) . _Default . _Coerce
-
--- | Enables access to the the ActiveMQ Web Console for the ActiveMQ user.
-uuConsoleAccess :: Lens' UpdateUser (Maybe Bool)
-uuConsoleAccess = lens _uuConsoleAccess (\ s a -> s{_uuConsoleAccess = a})
-
--- | The password of the user. This value must be at least 12 characters long, must contain at least 4 unique characters, and must not contain commas.
-uuPassword :: Lens' UpdateUser (Maybe Text)
-uuPassword = lens _uuPassword (\ s a -> s{_uuPassword = a})
-
--- | Required. The username of the ActiveMQ user. This value can contain only alphanumeric characters, dashes, periods, underscores, and tildes (- . _ ~). This value must be 2-100 characters long.
-uuUsername :: Lens' UpdateUser Text
-uuUsername = lens _uuUsername (\ s a -> s{_uuUsername = a})
-
--- | The unique ID that Amazon MQ generates for the broker.
-uuBrokerId :: Lens' UpdateUser Text
-uuBrokerId = lens _uuBrokerId (\ s a -> s{_uuBrokerId = a})
-
-instance AWSRequest UpdateUser where
-        type Rs UpdateUser = UpdateUserResponse
-        request = putJSON mq
-        response
-          = receiveEmpty
-              (\ s h x ->
-                 UpdateUserResponse' <$> (pure (fromEnum s)))
-
-instance Hashable UpdateUser where
-
-instance NFData UpdateUser where
-
-instance ToHeaders UpdateUser where
-        toHeaders
-          = const
-              (mconcat
-                 ["Content-Type" =#
-                    ("application/x-amz-json-1.1" :: ByteString)])
-
-instance ToJSON UpdateUser where
-        toJSON UpdateUser'{..}
-          = object
-              (catMaybes
-                 [("groups" .=) <$> _uuGroups,
-                  ("consoleAccess" .=) <$> _uuConsoleAccess,
-                  ("password" .=) <$> _uuPassword])
-
-instance ToPath UpdateUser where
-        toPath UpdateUser'{..}
-          = mconcat
-              ["/v1/brokers/", toBS _uuBrokerId, "/users/",
-               toBS _uuUsername]
-
-instance ToQuery UpdateUser where
-        toQuery = const mempty
-
--- | /See:/ 'updateUserResponse' smart constructor.
-newtype UpdateUserResponse = UpdateUserResponse'
-  { _uursResponseStatus :: Int
-  } deriving (Eq, Read, Show, Data, Typeable, Generic)
-
-
--- | Creates a value of 'UpdateUserResponse' with the minimum fields required to make a request.
---
--- Use one of the following lenses to modify other fields as desired:
---
--- * 'uursResponseStatus' - -- | The response status code.
-updateUserResponse
-    :: Int -- ^ 'uursResponseStatus'
-    -> UpdateUserResponse
-updateUserResponse pResponseStatus_ =
-  UpdateUserResponse' {_uursResponseStatus = pResponseStatus_}
-
-
--- | -- | The response status code.
-uursResponseStatus :: Lens' UpdateUserResponse Int
-uursResponseStatus = lens _uursResponseStatus (\ s a -> s{_uursResponseStatus = a})
-
-instance NFData UpdateUserResponse where
diff --git a/gen/Network/AWS/MQ/Waiters.hs b/gen/Network/AWS/MQ/Waiters.hs
deleted file mode 100644
--- a/gen/Network/AWS/MQ/Waiters.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE TypeFamilies      #-}
-
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Network.AWS.MQ.Waiters
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Network.AWS.MQ.Waiters where
-
-import Network.AWS.Lens
-import Network.AWS.MQ.Types
-import Network.AWS.Prelude
-import Network.AWS.Waiter
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -2,20 +2,22 @@
 
 -- |
 -- Module      : Main
--- Copyright   : (c) 2013-2018 Brendan Hay
+-- Copyright   : (c) 2013-2023 Brendan Hay
 -- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
+-- Maintainer  : Brendan Hay
 -- Stability   : auto-generated
 -- Portability : non-portable (GHC extensions)
---
 module Main (main) where
 
+import Test.Amazonka.MQ
+import Test.Amazonka.MQ.Internal
 import Test.Tasty
-import Test.AWS.MQ
-import Test.AWS.MQ.Internal
 
 main :: IO ()
-main = defaultMain $ testGroup "MQ"
-    [ testGroup "tests"    tests
-    , testGroup "fixtures" fixtures
-    ]
+main =
+  defaultMain $
+    testGroup
+      "MQ"
+      [ testGroup "tests" tests,
+        testGroup "fixtures" fixtures
+      ]
diff --git a/test/Test/AWS/Gen/MQ.hs b/test/Test/AWS/Gen/MQ.hs
deleted file mode 100644
--- a/test/Test/AWS/Gen/MQ.hs
+++ /dev/null
@@ -1,345 +0,0 @@
-{-# OPTIONS_GHC -fno-warn-unused-imports #-}
-{-# OPTIONS_GHC -fno-warn-orphans        #-}
-
--- Derived from AWS service descriptions, licensed under Apache 2.0.
-
--- |
--- Module      : Test.AWS.Gen.MQ
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Test.AWS.Gen.MQ where
-
-import Data.Proxy
-import Network.AWS.MQ
-import Test.AWS.Fixture
-import Test.AWS.MQ.Internal
-import Test.AWS.Prelude
-import Test.Tasty
-
--- Auto-generated: the actual test selection needs to be manually placed into
--- the top-level so that real test data can be incrementally added.
---
--- This commented snippet is what the entire set should look like:
-
--- fixtures :: TestTree
--- fixtures =
---     [ testGroup "request"
---         [ requestCreateConfiguration $
---             createConfiguration
---
---         , requestCreateBroker $
---             createBroker
---
---         , requestDeleteBroker $
---             deleteBroker
---
---         , requestUpdateBroker $
---             updateBroker
---
---         , requestRebootBroker $
---             rebootBroker
---
---         , requestListConfigurationRevisions $
---             listConfigurationRevisions
---
---         , requestListUsers $
---             listUsers
---
---         , requestListConfigurations $
---             listConfigurations
---
---         , requestDescribeUser $
---             describeUser
---
---         , requestListBrokers $
---             listBrokers
---
---         , requestCreateUser $
---             createUser
---
---         , requestDescribeConfiguration $
---             describeConfiguration
---
---         , requestUpdateUser $
---             updateUser
---
---         , requestDeleteUser $
---             deleteUser
---
---         , requestDescribeConfigurationRevision $
---             describeConfigurationRevision
---
---         , requestDescribeBroker $
---             describeBroker
---
---         , requestUpdateConfiguration $
---             updateConfiguration
---
---           ]
-
---     , testGroup "response"
---         [ responseCreateConfiguration $
---             createConfigurationResponse
---
---         , responseCreateBroker $
---             createBrokerResponse
---
---         , responseDeleteBroker $
---             deleteBrokerResponse
---
---         , responseUpdateBroker $
---             updateBrokerResponse
---
---         , responseRebootBroker $
---             rebootBrokerResponse
---
---         , responseListConfigurationRevisions $
---             listConfigurationRevisionsResponse
---
---         , responseListUsers $
---             listUsersResponse
---
---         , responseListConfigurations $
---             listConfigurationsResponse
---
---         , responseDescribeUser $
---             describeUserResponse
---
---         , responseListBrokers $
---             listBrokersResponse
---
---         , responseCreateUser $
---             createUserResponse
---
---         , responseDescribeConfiguration $
---             describeConfigurationResponse
---
---         , responseUpdateUser $
---             updateUserResponse
---
---         , responseDeleteUser $
---             deleteUserResponse
---
---         , responseDescribeConfigurationRevision $
---             describeConfigurationRevisionResponse
---
---         , responseDescribeBroker $
---             describeBrokerResponse
---
---         , responseUpdateConfiguration $
---             updateConfigurationResponse
---
---           ]
---     ]
-
--- Requests
-
-requestCreateConfiguration :: CreateConfiguration -> TestTree
-requestCreateConfiguration = req
-    "CreateConfiguration"
-    "fixture/CreateConfiguration.yaml"
-
-requestCreateBroker :: CreateBroker -> TestTree
-requestCreateBroker = req
-    "CreateBroker"
-    "fixture/CreateBroker.yaml"
-
-requestDeleteBroker :: DeleteBroker -> TestTree
-requestDeleteBroker = req
-    "DeleteBroker"
-    "fixture/DeleteBroker.yaml"
-
-requestUpdateBroker :: UpdateBroker -> TestTree
-requestUpdateBroker = req
-    "UpdateBroker"
-    "fixture/UpdateBroker.yaml"
-
-requestRebootBroker :: RebootBroker -> TestTree
-requestRebootBroker = req
-    "RebootBroker"
-    "fixture/RebootBroker.yaml"
-
-requestListConfigurationRevisions :: ListConfigurationRevisions -> TestTree
-requestListConfigurationRevisions = req
-    "ListConfigurationRevisions"
-    "fixture/ListConfigurationRevisions.yaml"
-
-requestListUsers :: ListUsers -> TestTree
-requestListUsers = req
-    "ListUsers"
-    "fixture/ListUsers.yaml"
-
-requestListConfigurations :: ListConfigurations -> TestTree
-requestListConfigurations = req
-    "ListConfigurations"
-    "fixture/ListConfigurations.yaml"
-
-requestDescribeUser :: DescribeUser -> TestTree
-requestDescribeUser = req
-    "DescribeUser"
-    "fixture/DescribeUser.yaml"
-
-requestListBrokers :: ListBrokers -> TestTree
-requestListBrokers = req
-    "ListBrokers"
-    "fixture/ListBrokers.yaml"
-
-requestCreateUser :: CreateUser -> TestTree
-requestCreateUser = req
-    "CreateUser"
-    "fixture/CreateUser.yaml"
-
-requestDescribeConfiguration :: DescribeConfiguration -> TestTree
-requestDescribeConfiguration = req
-    "DescribeConfiguration"
-    "fixture/DescribeConfiguration.yaml"
-
-requestUpdateUser :: UpdateUser -> TestTree
-requestUpdateUser = req
-    "UpdateUser"
-    "fixture/UpdateUser.yaml"
-
-requestDeleteUser :: DeleteUser -> TestTree
-requestDeleteUser = req
-    "DeleteUser"
-    "fixture/DeleteUser.yaml"
-
-requestDescribeConfigurationRevision :: DescribeConfigurationRevision -> TestTree
-requestDescribeConfigurationRevision = req
-    "DescribeConfigurationRevision"
-    "fixture/DescribeConfigurationRevision.yaml"
-
-requestDescribeBroker :: DescribeBroker -> TestTree
-requestDescribeBroker = req
-    "DescribeBroker"
-    "fixture/DescribeBroker.yaml"
-
-requestUpdateConfiguration :: UpdateConfiguration -> TestTree
-requestUpdateConfiguration = req
-    "UpdateConfiguration"
-    "fixture/UpdateConfiguration.yaml"
-
--- Responses
-
-responseCreateConfiguration :: CreateConfigurationResponse -> TestTree
-responseCreateConfiguration = res
-    "CreateConfigurationResponse"
-    "fixture/CreateConfigurationResponse.proto"
-    mq
-    (Proxy :: Proxy CreateConfiguration)
-
-responseCreateBroker :: CreateBrokerResponse -> TestTree
-responseCreateBroker = res
-    "CreateBrokerResponse"
-    "fixture/CreateBrokerResponse.proto"
-    mq
-    (Proxy :: Proxy CreateBroker)
-
-responseDeleteBroker :: DeleteBrokerResponse -> TestTree
-responseDeleteBroker = res
-    "DeleteBrokerResponse"
-    "fixture/DeleteBrokerResponse.proto"
-    mq
-    (Proxy :: Proxy DeleteBroker)
-
-responseUpdateBroker :: UpdateBrokerResponse -> TestTree
-responseUpdateBroker = res
-    "UpdateBrokerResponse"
-    "fixture/UpdateBrokerResponse.proto"
-    mq
-    (Proxy :: Proxy UpdateBroker)
-
-responseRebootBroker :: RebootBrokerResponse -> TestTree
-responseRebootBroker = res
-    "RebootBrokerResponse"
-    "fixture/RebootBrokerResponse.proto"
-    mq
-    (Proxy :: Proxy RebootBroker)
-
-responseListConfigurationRevisions :: ListConfigurationRevisionsResponse -> TestTree
-responseListConfigurationRevisions = res
-    "ListConfigurationRevisionsResponse"
-    "fixture/ListConfigurationRevisionsResponse.proto"
-    mq
-    (Proxy :: Proxy ListConfigurationRevisions)
-
-responseListUsers :: ListUsersResponse -> TestTree
-responseListUsers = res
-    "ListUsersResponse"
-    "fixture/ListUsersResponse.proto"
-    mq
-    (Proxy :: Proxy ListUsers)
-
-responseListConfigurations :: ListConfigurationsResponse -> TestTree
-responseListConfigurations = res
-    "ListConfigurationsResponse"
-    "fixture/ListConfigurationsResponse.proto"
-    mq
-    (Proxy :: Proxy ListConfigurations)
-
-responseDescribeUser :: DescribeUserResponse -> TestTree
-responseDescribeUser = res
-    "DescribeUserResponse"
-    "fixture/DescribeUserResponse.proto"
-    mq
-    (Proxy :: Proxy DescribeUser)
-
-responseListBrokers :: ListBrokersResponse -> TestTree
-responseListBrokers = res
-    "ListBrokersResponse"
-    "fixture/ListBrokersResponse.proto"
-    mq
-    (Proxy :: Proxy ListBrokers)
-
-responseCreateUser :: CreateUserResponse -> TestTree
-responseCreateUser = res
-    "CreateUserResponse"
-    "fixture/CreateUserResponse.proto"
-    mq
-    (Proxy :: Proxy CreateUser)
-
-responseDescribeConfiguration :: DescribeConfigurationResponse -> TestTree
-responseDescribeConfiguration = res
-    "DescribeConfigurationResponse"
-    "fixture/DescribeConfigurationResponse.proto"
-    mq
-    (Proxy :: Proxy DescribeConfiguration)
-
-responseUpdateUser :: UpdateUserResponse -> TestTree
-responseUpdateUser = res
-    "UpdateUserResponse"
-    "fixture/UpdateUserResponse.proto"
-    mq
-    (Proxy :: Proxy UpdateUser)
-
-responseDeleteUser :: DeleteUserResponse -> TestTree
-responseDeleteUser = res
-    "DeleteUserResponse"
-    "fixture/DeleteUserResponse.proto"
-    mq
-    (Proxy :: Proxy DeleteUser)
-
-responseDescribeConfigurationRevision :: DescribeConfigurationRevisionResponse -> TestTree
-responseDescribeConfigurationRevision = res
-    "DescribeConfigurationRevisionResponse"
-    "fixture/DescribeConfigurationRevisionResponse.proto"
-    mq
-    (Proxy :: Proxy DescribeConfigurationRevision)
-
-responseDescribeBroker :: DescribeBrokerResponse -> TestTree
-responseDescribeBroker = res
-    "DescribeBrokerResponse"
-    "fixture/DescribeBrokerResponse.proto"
-    mq
-    (Proxy :: Proxy DescribeBroker)
-
-responseUpdateConfiguration :: UpdateConfigurationResponse -> TestTree
-responseUpdateConfiguration = res
-    "UpdateConfigurationResponse"
-    "fixture/UpdateConfigurationResponse.proto"
-    mq
-    (Proxy :: Proxy UpdateConfiguration)
diff --git a/test/Test/AWS/MQ.hs b/test/Test/AWS/MQ.hs
deleted file mode 100644
--- a/test/Test/AWS/MQ.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- |
--- Module      : Test.AWS.MQ
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Test.AWS.MQ
-    ( tests
-    , fixtures
-    ) where
-
-import Test.Tasty (TestTree)
-
-tests :: [TestTree]
-tests = []
-
-fixtures :: [TestTree]
-fixtures = []
diff --git a/test/Test/AWS/MQ/Internal.hs b/test/Test/AWS/MQ/Internal.hs
deleted file mode 100644
--- a/test/Test/AWS/MQ/Internal.hs
+++ /dev/null
@@ -1,9 +0,0 @@
--- |
--- Module      : Test.AWS.MQ.Internal
--- Copyright   : (c) 2013-2018 Brendan Hay
--- License     : Mozilla Public License, v. 2.0.
--- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
--- Stability   : auto-generated
--- Portability : non-portable (GHC extensions)
---
-module Test.AWS.MQ.Internal where
diff --git a/test/Test/Amazonka/Gen/MQ.hs b/test/Test/Amazonka/Gen/MQ.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/Gen/MQ.hs
@@ -0,0 +1,478 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+-- Derived from AWS service descriptions, licensed under Apache 2.0.
+
+-- |
+-- Module      : Test.Amazonka.Gen.MQ
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Test.Amazonka.Gen.MQ where
+
+import Amazonka.MQ
+import qualified Data.Proxy as Proxy
+import Test.Amazonka.Fixture
+import Test.Amazonka.MQ.Internal
+import Test.Amazonka.Prelude
+import Test.Tasty
+
+-- Auto-generated: the actual test selection needs to be manually placed into
+-- the top-level so that real test data can be incrementally added.
+--
+-- This commented snippet is what the entire set should look like:
+
+-- fixtures :: TestTree
+-- fixtures =
+--     [ testGroup "request"
+--         [ requestCreateBroker $
+--             newCreateBroker
+--
+--         , requestCreateConfiguration $
+--             newCreateConfiguration
+--
+--         , requestCreateTags $
+--             newCreateTags
+--
+--         , requestCreateUser $
+--             newCreateUser
+--
+--         , requestDeleteBroker $
+--             newDeleteBroker
+--
+--         , requestDeleteTags $
+--             newDeleteTags
+--
+--         , requestDeleteUser $
+--             newDeleteUser
+--
+--         , requestDescribeBroker $
+--             newDescribeBroker
+--
+--         , requestDescribeBrokerEngineTypes $
+--             newDescribeBrokerEngineTypes
+--
+--         , requestDescribeBrokerInstanceOptions $
+--             newDescribeBrokerInstanceOptions
+--
+--         , requestDescribeConfiguration $
+--             newDescribeConfiguration
+--
+--         , requestDescribeConfigurationRevision $
+--             newDescribeConfigurationRevision
+--
+--         , requestDescribeUser $
+--             newDescribeUser
+--
+--         , requestListBrokers $
+--             newListBrokers
+--
+--         , requestListConfigurationRevisions $
+--             newListConfigurationRevisions
+--
+--         , requestListConfigurations $
+--             newListConfigurations
+--
+--         , requestListTags $
+--             newListTags
+--
+--         , requestListUsers $
+--             newListUsers
+--
+--         , requestRebootBroker $
+--             newRebootBroker
+--
+--         , requestUpdateBroker $
+--             newUpdateBroker
+--
+--         , requestUpdateConfiguration $
+--             newUpdateConfiguration
+--
+--         , requestUpdateUser $
+--             newUpdateUser
+--
+--           ]
+
+--     , testGroup "response"
+--         [ responseCreateBroker $
+--             newCreateBrokerResponse
+--
+--         , responseCreateConfiguration $
+--             newCreateConfigurationResponse
+--
+--         , responseCreateTags $
+--             newCreateTagsResponse
+--
+--         , responseCreateUser $
+--             newCreateUserResponse
+--
+--         , responseDeleteBroker $
+--             newDeleteBrokerResponse
+--
+--         , responseDeleteTags $
+--             newDeleteTagsResponse
+--
+--         , responseDeleteUser $
+--             newDeleteUserResponse
+--
+--         , responseDescribeBroker $
+--             newDescribeBrokerResponse
+--
+--         , responseDescribeBrokerEngineTypes $
+--             newDescribeBrokerEngineTypesResponse
+--
+--         , responseDescribeBrokerInstanceOptions $
+--             newDescribeBrokerInstanceOptionsResponse
+--
+--         , responseDescribeConfiguration $
+--             newDescribeConfigurationResponse
+--
+--         , responseDescribeConfigurationRevision $
+--             newDescribeConfigurationRevisionResponse
+--
+--         , responseDescribeUser $
+--             newDescribeUserResponse
+--
+--         , responseListBrokers $
+--             newListBrokersResponse
+--
+--         , responseListConfigurationRevisions $
+--             newListConfigurationRevisionsResponse
+--
+--         , responseListConfigurations $
+--             newListConfigurationsResponse
+--
+--         , responseListTags $
+--             newListTagsResponse
+--
+--         , responseListUsers $
+--             newListUsersResponse
+--
+--         , responseRebootBroker $
+--             newRebootBrokerResponse
+--
+--         , responseUpdateBroker $
+--             newUpdateBrokerResponse
+--
+--         , responseUpdateConfiguration $
+--             newUpdateConfigurationResponse
+--
+--         , responseUpdateUser $
+--             newUpdateUserResponse
+--
+--           ]
+--     ]
+
+-- Requests
+
+requestCreateBroker :: CreateBroker -> TestTree
+requestCreateBroker =
+  req
+    "CreateBroker"
+    "fixture/CreateBroker.yaml"
+
+requestCreateConfiguration :: CreateConfiguration -> TestTree
+requestCreateConfiguration =
+  req
+    "CreateConfiguration"
+    "fixture/CreateConfiguration.yaml"
+
+requestCreateTags :: CreateTags -> TestTree
+requestCreateTags =
+  req
+    "CreateTags"
+    "fixture/CreateTags.yaml"
+
+requestCreateUser :: CreateUser -> TestTree
+requestCreateUser =
+  req
+    "CreateUser"
+    "fixture/CreateUser.yaml"
+
+requestDeleteBroker :: DeleteBroker -> TestTree
+requestDeleteBroker =
+  req
+    "DeleteBroker"
+    "fixture/DeleteBroker.yaml"
+
+requestDeleteTags :: DeleteTags -> TestTree
+requestDeleteTags =
+  req
+    "DeleteTags"
+    "fixture/DeleteTags.yaml"
+
+requestDeleteUser :: DeleteUser -> TestTree
+requestDeleteUser =
+  req
+    "DeleteUser"
+    "fixture/DeleteUser.yaml"
+
+requestDescribeBroker :: DescribeBroker -> TestTree
+requestDescribeBroker =
+  req
+    "DescribeBroker"
+    "fixture/DescribeBroker.yaml"
+
+requestDescribeBrokerEngineTypes :: DescribeBrokerEngineTypes -> TestTree
+requestDescribeBrokerEngineTypes =
+  req
+    "DescribeBrokerEngineTypes"
+    "fixture/DescribeBrokerEngineTypes.yaml"
+
+requestDescribeBrokerInstanceOptions :: DescribeBrokerInstanceOptions -> TestTree
+requestDescribeBrokerInstanceOptions =
+  req
+    "DescribeBrokerInstanceOptions"
+    "fixture/DescribeBrokerInstanceOptions.yaml"
+
+requestDescribeConfiguration :: DescribeConfiguration -> TestTree
+requestDescribeConfiguration =
+  req
+    "DescribeConfiguration"
+    "fixture/DescribeConfiguration.yaml"
+
+requestDescribeConfigurationRevision :: DescribeConfigurationRevision -> TestTree
+requestDescribeConfigurationRevision =
+  req
+    "DescribeConfigurationRevision"
+    "fixture/DescribeConfigurationRevision.yaml"
+
+requestDescribeUser :: DescribeUser -> TestTree
+requestDescribeUser =
+  req
+    "DescribeUser"
+    "fixture/DescribeUser.yaml"
+
+requestListBrokers :: ListBrokers -> TestTree
+requestListBrokers =
+  req
+    "ListBrokers"
+    "fixture/ListBrokers.yaml"
+
+requestListConfigurationRevisions :: ListConfigurationRevisions -> TestTree
+requestListConfigurationRevisions =
+  req
+    "ListConfigurationRevisions"
+    "fixture/ListConfigurationRevisions.yaml"
+
+requestListConfigurations :: ListConfigurations -> TestTree
+requestListConfigurations =
+  req
+    "ListConfigurations"
+    "fixture/ListConfigurations.yaml"
+
+requestListTags :: ListTags -> TestTree
+requestListTags =
+  req
+    "ListTags"
+    "fixture/ListTags.yaml"
+
+requestListUsers :: ListUsers -> TestTree
+requestListUsers =
+  req
+    "ListUsers"
+    "fixture/ListUsers.yaml"
+
+requestRebootBroker :: RebootBroker -> TestTree
+requestRebootBroker =
+  req
+    "RebootBroker"
+    "fixture/RebootBroker.yaml"
+
+requestUpdateBroker :: UpdateBroker -> TestTree
+requestUpdateBroker =
+  req
+    "UpdateBroker"
+    "fixture/UpdateBroker.yaml"
+
+requestUpdateConfiguration :: UpdateConfiguration -> TestTree
+requestUpdateConfiguration =
+  req
+    "UpdateConfiguration"
+    "fixture/UpdateConfiguration.yaml"
+
+requestUpdateUser :: UpdateUser -> TestTree
+requestUpdateUser =
+  req
+    "UpdateUser"
+    "fixture/UpdateUser.yaml"
+
+-- Responses
+
+responseCreateBroker :: CreateBrokerResponse -> TestTree
+responseCreateBroker =
+  res
+    "CreateBrokerResponse"
+    "fixture/CreateBrokerResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateBroker)
+
+responseCreateConfiguration :: CreateConfigurationResponse -> TestTree
+responseCreateConfiguration =
+  res
+    "CreateConfigurationResponse"
+    "fixture/CreateConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateConfiguration)
+
+responseCreateTags :: CreateTagsResponse -> TestTree
+responseCreateTags =
+  res
+    "CreateTagsResponse"
+    "fixture/CreateTagsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateTags)
+
+responseCreateUser :: CreateUserResponse -> TestTree
+responseCreateUser =
+  res
+    "CreateUserResponse"
+    "fixture/CreateUserResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy CreateUser)
+
+responseDeleteBroker :: DeleteBrokerResponse -> TestTree
+responseDeleteBroker =
+  res
+    "DeleteBrokerResponse"
+    "fixture/DeleteBrokerResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteBroker)
+
+responseDeleteTags :: DeleteTagsResponse -> TestTree
+responseDeleteTags =
+  res
+    "DeleteTagsResponse"
+    "fixture/DeleteTagsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteTags)
+
+responseDeleteUser :: DeleteUserResponse -> TestTree
+responseDeleteUser =
+  res
+    "DeleteUserResponse"
+    "fixture/DeleteUserResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DeleteUser)
+
+responseDescribeBroker :: DescribeBrokerResponse -> TestTree
+responseDescribeBroker =
+  res
+    "DescribeBrokerResponse"
+    "fixture/DescribeBrokerResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeBroker)
+
+responseDescribeBrokerEngineTypes :: DescribeBrokerEngineTypesResponse -> TestTree
+responseDescribeBrokerEngineTypes =
+  res
+    "DescribeBrokerEngineTypesResponse"
+    "fixture/DescribeBrokerEngineTypesResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeBrokerEngineTypes)
+
+responseDescribeBrokerInstanceOptions :: DescribeBrokerInstanceOptionsResponse -> TestTree
+responseDescribeBrokerInstanceOptions =
+  res
+    "DescribeBrokerInstanceOptionsResponse"
+    "fixture/DescribeBrokerInstanceOptionsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeBrokerInstanceOptions)
+
+responseDescribeConfiguration :: DescribeConfigurationResponse -> TestTree
+responseDescribeConfiguration =
+  res
+    "DescribeConfigurationResponse"
+    "fixture/DescribeConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeConfiguration)
+
+responseDescribeConfigurationRevision :: DescribeConfigurationRevisionResponse -> TestTree
+responseDescribeConfigurationRevision =
+  res
+    "DescribeConfigurationRevisionResponse"
+    "fixture/DescribeConfigurationRevisionResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeConfigurationRevision)
+
+responseDescribeUser :: DescribeUserResponse -> TestTree
+responseDescribeUser =
+  res
+    "DescribeUserResponse"
+    "fixture/DescribeUserResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy DescribeUser)
+
+responseListBrokers :: ListBrokersResponse -> TestTree
+responseListBrokers =
+  res
+    "ListBrokersResponse"
+    "fixture/ListBrokersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListBrokers)
+
+responseListConfigurationRevisions :: ListConfigurationRevisionsResponse -> TestTree
+responseListConfigurationRevisions =
+  res
+    "ListConfigurationRevisionsResponse"
+    "fixture/ListConfigurationRevisionsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListConfigurationRevisions)
+
+responseListConfigurations :: ListConfigurationsResponse -> TestTree
+responseListConfigurations =
+  res
+    "ListConfigurationsResponse"
+    "fixture/ListConfigurationsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListConfigurations)
+
+responseListTags :: ListTagsResponse -> TestTree
+responseListTags =
+  res
+    "ListTagsResponse"
+    "fixture/ListTagsResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListTags)
+
+responseListUsers :: ListUsersResponse -> TestTree
+responseListUsers =
+  res
+    "ListUsersResponse"
+    "fixture/ListUsersResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy ListUsers)
+
+responseRebootBroker :: RebootBrokerResponse -> TestTree
+responseRebootBroker =
+  res
+    "RebootBrokerResponse"
+    "fixture/RebootBrokerResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy RebootBroker)
+
+responseUpdateBroker :: UpdateBrokerResponse -> TestTree
+responseUpdateBroker =
+  res
+    "UpdateBrokerResponse"
+    "fixture/UpdateBrokerResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateBroker)
+
+responseUpdateConfiguration :: UpdateConfigurationResponse -> TestTree
+responseUpdateConfiguration =
+  res
+    "UpdateConfigurationResponse"
+    "fixture/UpdateConfigurationResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateConfiguration)
+
+responseUpdateUser :: UpdateUserResponse -> TestTree
+responseUpdateUser =
+  res
+    "UpdateUserResponse"
+    "fixture/UpdateUserResponse.proto"
+    defaultService
+    (Proxy.Proxy :: Proxy.Proxy UpdateUser)
diff --git a/test/Test/Amazonka/MQ.hs b/test/Test/Amazonka/MQ.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/MQ.hs
@@ -0,0 +1,20 @@
+-- |
+-- Module      : Test.Amazonka.MQ
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Test.Amazonka.MQ
+  ( tests,
+    fixtures,
+  )
+where
+
+import Test.Tasty (TestTree)
+
+tests :: [TestTree]
+tests = []
+
+fixtures :: [TestTree]
+fixtures = []
diff --git a/test/Test/Amazonka/MQ/Internal.hs b/test/Test/Amazonka/MQ/Internal.hs
new file mode 100644
--- /dev/null
+++ b/test/Test/Amazonka/MQ/Internal.hs
@@ -0,0 +1,8 @@
+-- |
+-- Module      : Test.Amazonka.MQ.Internal
+-- Copyright   : (c) 2013-2023 Brendan Hay
+-- License     : Mozilla Public License, v. 2.0.
+-- Maintainer  : Brendan Hay
+-- Stability   : auto-generated
+-- Portability : non-portable (GHC extensions)
+module Test.Amazonka.MQ.Internal where
